飞道的博客

ECharts学习笔记

517人阅读  评论(0)

数据可视化

数据可视化主要目的:借助于图形化手段,清晰有效地传达与沟通信息。
数据可视化可以把数据从冰冷的数字转换成图形,揭示蕴含在数据中的规律和道理。

常见的数据可视化库:

  • D3.js 目前 Web 端评价最高的 Javascript 可视化工具库(入手难)

  • ECharts.js 百度出品的一个开源 Javascript 数据可视化库

  • Highcharts.js 国外的前端数据可视化库,非商用免费,被许多国外大公司所使用

  • AntV 蚂蚁金服全新一代数据可视化解决方案 等等

  • Highcharts 和 Echarts 就像是 Office 和 WPS 的关系

ECharts,一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等),底层依赖矢量图形库 ZRender,提供直观,交互丰富,可高度个性化定制的数据可视化图表。

大白话:

官网地址:https://echarts.apache.org/zh/index.html

ECharts入门

ECharts初体验

ECharts入门教程整理来自于B站的UP主

使用步骤:

1、引入echarts 插件文件到html页面中

选择合适版本进行下载

然后引入

<script src="js/echarts.min.js"></script>

2、准备一个具备大小的DOM容器

基本语法:


  
  1. <div id="main" style="width: 600px;height:400px;"> </div>
  2. <!-- 必须要有宽度和高度 -->

示例:

3、初始化echarts实例对象

var myChart = echarts.init(document.getElementById('main'));

4、指定配置项和数据(option)


  
  1. var option = {
  2. xAxis: {
  3. type: 'category',
  4. data: [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  5. },
  6. yAxis: {
  7. type: 'value'
  8. },
  9. series: [{
  10. data: [ 820, 932, 901, 934, 1290, 1330, 1320],
  11. type: 'line'
  12. }]
  13. };

5、将配置项设置给echarts实例对象

myChart.setOption(option);

完整实例:


  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>数据可视化-ECharts </title>
  6. <style type="text/css">
  7. .echarts-box {
  8. widows: 400px;
  9. height: 400px;
  10. background-color: #B3D8FF;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <!-- 1.准备一个带长度和宽度的盒子 -->
  16. <div class="echarts-box"> </div>
  17. <!-- 2.引入echarts.js -->
  18. <script src="js/echarts.min.js"> </script>
  19. <script>
  20. /* 3.初始化实例对象,语法:echarts.init(dom容器) */
  21. var myChart = echarts.init( document.querySelector( ".echarts-box"));
  22. /* 4.指定配置项和数据 */
  23. var option = {
  24. title: {
  25. text: "ECharts 入门示例"
  26. },
  27. tooltip: {},
  28. legend: {
  29. data: [ "销量"]
  30. },
  31. xAxis: {
  32. data: [ "衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
  33. },
  34. yAxis: {},
  35. series: [{
  36. name: "销量",
  37. type: "bar",
  38. data: [ 5, 20, 36, 10, 10, 20]
  39. }]
  40. };
  41. /* 把配置项给实例对象 */
  42. myChart.setOption(option);
  43. </script>
  44. </body>
  45. </html>

浏览器查看结果

ECharts常用基础配置

各配置介绍如下:

  • title:设置图表的标题
  • tooltip:图表的提示框组件。其中trigger表示触发方式。
  • legend:图例组件,提示图表中线代表着什么。
  • toolbox:工具箱组件,可以另存为图片等功能。
  • color:调色盘颜色列表,设置线条的演示,后面跟个数组,设置每条线的颜色。
  • grid:网格配置。控制柱状图等图表的大小。
    • left:图表距离左侧DOM容器的。
    • right:距离右侧DOM容器。
    • bottom:距离下侧DOM容器。
    • containLabel:是否显示刻度标签,如果为true就显示,否则就不显示。
  • xAxis:设置x轴的相关配置
    • type:可以是category、value等。可以设置使数据横轴显示或纵轴显示
    • boundaryGap:是否让我们的线条和坐标轴有缝隙。
    • data:x轴显示的相关信息。
  • yAxis:设置y轴的相关配置
  • series:系列图表配置,决定着显示那种类型的图表。是一个数组,数组里面存放着对象,每一个对象代表一条数据。
    • stack:数据堆叠,同个类目轴上系列配置相同的stack值后 后一个系列的值会在前一个系列的值上相加。
    • data:每一条线中的数据,是一个数字数组。
    • type:
    • name:series里面有了name值则legend里面的data值可以删除。

参考图:

示例:


  
  1. option = {
  2. // color设置我们线条的颜色 注意后面是个数组
  3. color: [ 'pink', 'red', 'green', 'skyblue'],
  4. // 设置图表的标题
  5. title: {
  6. text: '折线图堆叠123'
  7. },
  8. // 图表的提示框组件
  9. tooltip: {
  10. // 触发方式
  11. trigger: 'axis'
  12. },
  13. // 图例组件
  14. legend: {
  15. // series里面有了 name值则 legend里面的data可以删掉
  16. },
  17. // 网格配置 grid可以控制线形图 柱状图 图表大小
  18. grid: {
  19. left: '3%',
  20. right: '4%',
  21. bottom: '3%',
  22. // 是否显示刻度标签 如果是true 就显示 否则反之
  23. containLabel: true
  24. },
  25. // 工具箱组件 可以另存为图片等功能
  26. toolbox: {
  27. feature: {
  28. saveAsImage: {}
  29. }
  30. },
  31. // 设置x轴的相关配置
  32. xAxis: {
  33. type: 'category',
  34. // 是否让我们的线条和坐标轴有缝隙
  35. boundaryGap: false,
  36. data: [ '星期一', '周二', '周三', '周四', '周五', '周六', '周日']
  37. },
  38. // 设置y轴的相关配置
  39. yAxis: {
  40. type: 'value'
  41. },
  42. // 系列图表配置 它决定着显示那种类型的图表
  43. series: [
  44. {
  45. name: '邮件营销',
  46. type: 'line',
  47. data: [ 120, 132, 101, 134, 90, 230, 210]
  48. },
  49. {
  50. name: '联盟广告',
  51. type: 'line',
  52. data: [ 220, 182, 191, 234, 290, 330, 310]
  53. },
  54. {
  55. name: '视频广告',
  56. type: 'line',
  57. data: [ 150, 232, 201, 154, 190, 330, 410]
  58. },
  59. {
  60. name: '直接访问',
  61. type: 'line',
  62. data: [ 320, 332, 301, 334, 390, 330, 320]
  63. }
  64. ]
  65. };

效果:

柱形图

那么如何来做这个柱形图呢?

第一步:查看官网类似案例

  • 官网找到类似实例, 适当分析,并且引入到HTML页面中

复制里面的option配置到本地文件


  
  1. option = {
  2. xAxis: {
  3. type: 'category',
  4. data: [ 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
  5. },
  6. yAxis: {
  7. type: 'value'
  8. },
  9. series: [{
  10. data: [ 120, 200, 150, 80, 70, 110, 130],
  11. type: 'bar',
  12. showBackground: true,
  13. backgroundStyle: {
  14. color: 'rgba(220, 220, 220, 0.8)'
  15. }
  16. }]
  17. };

本地运行

根据需求定制图表

  • 设置柱状图的大小

  • 改变X轴标签颜色为红色

  • 不显示X轴的样式

  • 设置y轴的文字标签样式

  • 设置y轴的轴线的样式

  • y轴分割线的样式

  • 修改柱形图的柱子宽度和圆角

  • 修改柱状图的工具提示

  • 更换对应数据

  • 图表随屏幕自适应

完整代码:


  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>数据可视化-ECharts </title>
  6. <style type="text/css">
  7. .echarts-box {
  8. width: 400px;
  9. height: 400px;
  10. background-color: #B3D8FF;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <!-- 1.准备一个带长度和宽度的盒子 -->
  16. <div class="echarts-box"> </div>
  17. <!-- 2.引入echarts.js -->
  18. <script src="js/echarts.min.js"> </script>
  19. <script>
  20. /* 3.初始化实例对象,语法:echarts.init(dom容器) */
  21. var myChart = echarts.init( document.querySelector( ".echarts-box"));
  22. /* 4.指定配置项和数据 */
  23. var option = {
  24. // 设置柱状图的颜色
  25. color: [ "#2F89CF"],
  26. // 设置工具提示
  27. tooltip: {
  28. trigger: 'axis',
  29. axisPointer: {
  30. // 坐标轴指示器, 坐标轴触发有效
  31. type: "shadow" // 默认为直线,可选为"line"/"shadow"
  32. }
  33. },
  34. // 设置柱状图的大小
  35. grid: {
  36. left: "0%",
  37. top: "10px",
  38. right: '0%',
  39. bottom: "4%",
  40. containLabel: true
  41. },
  42. // X轴的配置
  43. xAxis: {
  44. type: 'category',
  45. data: [ '小学生', '初中生', '高中生', '大学生', '研究生', '博士生'],
  46. axisTick: {
  47. alignWithLabel: true
  48. },
  49. // 修改刻度标签相关样式
  50. axisLabel: {
  51. color: 'red',
  52. fontSize: '12'
  53. },
  54. // 显示x坐标轴的样式
  55. show: true
  56. },
  57. // Y轴的配置
  58. yAxis: {
  59. type: 'value',
  60. // y轴文字标签的样式
  61. axisLabel: {
  62. color: "rgba(255, 255, 255, 0.6)",
  63. fontSize: '12'
  64. },
  65. // y轴线的样式
  66. axisLine: {
  67. lineStyle: {
  68. color: "rgba(255, 255, 255, 0.6)",
  69. width: 2,
  70. }
  71. },
  72. // y轴分割线的样式
  73. splitLine: {
  74. lineStyle: {
  75. color: 'rgba(220, 220, 220, 0.8)',
  76. width: 1
  77. }
  78. }
  79. },
  80. series: [{
  81. data: [ 100, 90, 80, 50, 20, 5],
  82. type: 'bar',
  83. showBackground: true,
  84. backgroundStyle: {
  85. color: 'rgba(220, 220, 220, 0.8)'
  86. },
  87. // 修改柱形图中柱子的宽度
  88. barWidth: '20%',
  89. itemStyle: {
  90. // 修改柱子圆角
  91. barBorderRadius: 20
  92. }
  93. }]
  94. };
  95. /* 把配置项给实例对象 */
  96. myChart.setOption(option);
  97. /* 让图表跟随屏幕自动的去适应 */
  98. window.addEventListener( "resize", function() {
  99. myChart.resize();
  100. })
  101. </script>
  102. </body>
  103. </html>

水平柱形图

第一步:查看官网示例

复制option配置


  
  1. option = {
  2. title: {
  3. text: '世界人口总量',
  4. subtext: '数据来自网络'
  5. },
  6. tooltip: {
  7. trigger: 'axis',
  8. axisPointer: {
  9. type: 'shadow'
  10. }
  11. },
  12. legend: {
  13. data: [ '2011年', '2012年']
  14. },
  15. grid: {
  16. left: '3%',
  17. right: '4%',
  18. bottom: '3%',
  19. containLabel: true
  20. },
  21. xAxis: {
  22. type: 'value',
  23. boundaryGap: [ 0, 0.01]
  24. },
  25. yAxis: {
  26. type: 'category',
  27. data: [ '巴西', '印尼', '美国', '印度', '中国', '世界人口(万)']
  28. },
  29. series: [
  30. {
  31. name: '2011年',
  32. type: 'bar',
  33. data: [ 18203, 23489, 29034, 104970, 131744, 630230]
  34. },
  35. {
  36. name: '2012年',
  37. type: 'bar',
  38. data: [ 19325, 23438, 31000, 121594, 134141, 681807]
  39. }
  40. ]
  41. };

引入后,运行

自定义定制

  • 修改图表大小

  • 不显示x轴相关信息

  • 不显示y轴线条和刻度

  • 设置刻度标签的文本颜色

  • 设置嵌套柱形图

设置成如下图的样式:

首先将第一组柱子设置样式

设置数据显示在柱子里面

不同的柱子设置不同的颜色

设置两组y轴,将yAxis设置为一个数组,数组是两个对象,分别表示两组y轴。

完成嵌套柱形图

完整代码:


  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>数据可视化-ECharts </title>
  6. <style type="text/css">
  7. .echarts-box {
  8. width: 400px;
  9. height: 400px;
  10. background-color: #B3D8FF;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <!-- 1.准备一个带长度和宽度的盒子 -->
  16. <div class="echarts-box"> </div>
  17. <!-- 2.引入echarts.js -->
  18. <script src="js/echarts.min.js"> </script>
  19. <script>
  20. var myColor = [ "#1089E7", "#F57474", "#56D0E3", "#F8B448", "#8B78F6"];
  21. /* 3.初始化实例对象,语法:echarts.init(dom容器) */
  22. var myChart = echarts.init( document.querySelector( ".echarts-box"));
  23. /* 4.指定配置项和数据 */
  24. var option = {
  25. // 修改图表位置
  26. grid: {
  27. top: "10%",
  28. left: "22%",
  29. bottom: "10%",
  30. containLabel: true
  31. },
  32. title: {
  33. text: '世界人口总量',
  34. subtext: '数据来自网络'
  35. },
  36. tooltip: {
  37. trigger: 'axis',
  38. axisPointer: {
  39. type: 'shadow'
  40. }
  41. },
  42. legend: {
  43. data: [ '2011年', '2012年']
  44. },
  45. // x轴
  46. xAxis: {
  47. // 不显示x轴样式
  48. show: false
  49. },
  50. // y轴
  51. yAxis: [{
  52. type: 'category',
  53. data: [ '巴西', '印尼', '美国', '印度', '中国'],
  54. // 不显示y轴线条
  55. axisLine: {
  56. show: false
  57. },
  58. // 不显示刻度
  59. axisTick: {
  60. show: false
  61. },
  62. // 把刻度标签里面的文字颜色设置为白色
  63. axisLabel: {
  64. color: "#fff"
  65. }
  66. },
  67. {
  68. data: [ 702, 350, 610, 793, 664],
  69. // 不显示y轴线条
  70. axisLine: {
  71. show: false
  72. },
  73. // 不显示刻度
  74. axisTick: {
  75. show: false
  76. },
  77. // 把刻度标签里面的文字颜色设置为白色
  78. axisLabel: {
  79. color: "#fff"
  80. }
  81. }
  82. ],
  83. series: [
  84. // 第一组数据(即第一个柱子)
  85. {
  86. name: '条',
  87. type: 'bar',
  88. data: [ 70, 34, 60, 78, 69],
  89. yAxisIndex: 0,
  90. // 修改第一组柱子的圆角
  91. itemStyle: {
  92. barBorderRadius: 20,
  93. // 次数的color可以修改柱子的颜色
  94. // params是传进来的柱子对象
  95. color: function(params) {
  96. // console.log(params);
  97. // dataIndex是当前柱子的索引号
  98. return myColor[params.dataIndex];
  99. }
  100. },
  101. // 柱子之间的距离
  102. barCategoryGap: 50,
  103. // 柱子的宽度
  104. barWidth: 10,
  105. // 显示柱子内的文字
  106. label: {
  107. show: true,
  108. position: "inside",
  109. // {c}会自动解析为数据data里面的数据
  110. formaater: "{c}%"
  111. }
  112. },
  113. // 第二组数据(即第二个柱子)
  114. {
  115. name: '框',
  116. type: 'bar',
  117. data: [ 100, 100, 100, 100, 100],
  118. yAxisIndex: 1,
  119. barCategoryGap: 50,
  120. barWidth: 15,
  121. itemStyle: {
  122. color: "none",
  123. borderColor: "#00C1DE",
  124. borderWidth: 3,
  125. barBorderRadius: 15
  126. }
  127. }
  128. ]
  129. };
  130. /* 把配置项给实例对象 */
  131. myChart.setOption(option);
  132. /* 让图表跟随屏幕自动的去适应 */
  133. window.addEventListener( "resize", function() {
  134. myChart.resize();
  135. })
  136. </script>
  137. </body>
  138. </html>

折线图

第一步:查看官网实例

复制示例代码:


  
  1. option = {
  2. title: {
  3. text: '折线图堆叠'
  4. },
  5. tooltip: {
  6. trigger: 'axis'
  7. },
  8. legend: {
  9. data: [ '邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
  10. },
  11. grid: {
  12. left: '3%',
  13. right: '4%',
  14. bottom: '3%',
  15. containLabel: true
  16. },
  17. toolbox: {
  18. feature: {
  19. saveAsImage: {}
  20. }
  21. },
  22. xAxis: {
  23. type: 'category',
  24. boundaryGap: false,
  25. data: [ '周一', '周二', '周三', '周四', '周五', '周六', '周日']
  26. },
  27. yAxis: {
  28. type: 'value'
  29. },
  30. series: [
  31. {
  32. name: '邮件营销',
  33. type: 'line',
  34. stack: '总量',
  35. data: [ 120, 132, 101, 134, 90, 230, 210]
  36. },
  37. {
  38. name: '联盟广告',
  39. type: 'line',
  40. stack: '总量',
  41. data: [ 220, 182, 191, 234, 290, 330, 310]
  42. },
  43. {
  44. name: '视频广告',
  45. type: 'line',
  46. stack: '总量',
  47. data: [ 150, 232, 201, 154, 190, 330, 410]
  48. },
  49. {
  50. name: '直接访问',
  51. type: 'line',
  52. stack: '总量',
  53. data: [ 320, 332, 301, 334, 390, 330, 320]
  54. },
  55. {
  56. name: '搜索引擎',
  57. type: 'line',
  58. stack: '总量',
  59. data: [ 820, 932, 901, 934, 1290, 1330, 1320]
  60. }
  61. ]
  62. };

第二步:自定义定制

  • 修改折线图大小

  • 修改图例组件中的文字颜色及位置

  • x轴相关配置

  • y轴相关配置

  • 设置折线光滑

饼形图

第一步:查看官网查找示例

查找合适的示例

复制其配置项


  
  1. option = {
  2. tooltip: {
  3. trigger: 'item',
  4. formatter: '{a} <br/>{b}: {c} ({d}%)'
  5. },
  6. legend: {
  7. orient: 'vertical',
  8. left: 10,
  9. data: [ '直接访问', '邮件营销', '联盟广告', '视频广告', '搜索引擎']
  10. },
  11. series: [
  12. {
  13. name: '访问来源',
  14. type: 'pie',
  15. radius: [ '50%', '70%'],
  16. avoidLabelOverlap: false,
  17. label: {
  18. show: false,
  19. position: 'center'
  20. },
  21. emphasis: {
  22. label: {
  23. show: true,
  24. fontSize: '30',
  25. fontWeight: 'bold'
  26. }
  27. },
  28. labelLine: {
  29. show: false
  30. },
  31. data: [
  32. { value: 335, name: '直接访问'},
  33. { value: 310, name: '邮件营销'},
  34. { value: 234, name: '联盟广告'},
  35. { value: 135, name: '视频广告'},
  36. { value: 1548, name: '搜索引擎'}
  37. ]
  38. }
  39. ]
  40. };

第二步:定制图表

  • 修改小图标的宽度和高度

  • 修改饼图位置

ECharts社区

社区就是一些,活跃的echart使用者,交流和贡献定制好的图表的地方。

配置项整理

以下是基于setOption()函数中的配置项的整理,都参考自官网

title属性

配置项


  
  1. title: {
  2. id: 1, // 组件ID, 默认不指定
  3. show: true, // 是否显示标题组件, true表示显示, false表示不显示
  4. text: '我是标题', // 主标题文本,支持使用"\n"换行
  5. link: 'http://www.baidu.com', // 主标题文本超链接, 点击主标题跳转超链接
  6. target: 'blank', // 指定窗口打开超链接,可选: 'selft'|'blank'。self表示当前窗口打开; blank表示新窗口打开
  7. textStyle: { // 主标题文字的样式, 是一个对象
  8. color: '#333', // 主标题文字的颜色
  9. fontStyle: 'normal', // 主标题文字字体的风格,可选: 'normal'|'italic'|'oblique'。normal表示正常字体; italic表示斜体; oblique也是斜体
  10. fontWeight: 'lighter', // 主标题文字字体的粗细, 可选: 'noraml'|'bold'|'bolder'|'lighter'|100|200|300|400...
  11. fontFamily: 'Arial', // 主标题文字的字体系列, 可选: 'sans-serif'|'serif'|'monospace'|'Courier New'|...
  12. fontSize: 20, // 主标题文字的字体大小
  13. lineHeight: 10, // 行高, 注意: rich 中如果没有设置 lineHeight,则会取父层级的 lineHeight。
  14. width: '100%', // 文字块的宽度。一般不用指定,不指定则自动是文字的宽度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。width 也可以是百分比字符串,如 '100%'。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  15. height: '100%', // 文字块的高度。一般不用指定,不指定则自动是文字的高度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  16. textBorderColor: '#FF0000', // 文字本身的描边颜色
  17. textBorderWidth: 3, // 文字本身的描边宽度
  18. textShadowColor: '#FF00AB', // 文字本身的阴影颜色。
  19. textShadownBlur: 3, // 文字本身的阴影长度。
  20. textShadowOffsetX: -5, // 文字本身的阴影 X 偏移, 即阴影距离文字本身位置的横向偏移量(如果是正数阴影向右偏移多少,如果是负数则表示向左偏移多少)
  21. textShadowOffsetY: 5, // 文字本身的阴影 Y 偏移, 即阴影距离文字本身位置的纵向偏移量(如果是正数阴影向下偏移多少,如果是负数则表示向上偏移多少)
  22. rich: {}, // 在rich中可以自定义富文本样式, 具体参考: https://echarts.apache.org/zh/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE
  23. },
  24. subtext: '我是副标题', // 副标题文本,支持使用 \n 换行。
  25. sublink: 'http://www.bilibili.com', // 副标题文本超链接。
  26. subtarget: 'blank', // 指定窗口打开超链接,可选: 'selft'|'blank'。self表示当前窗口打开; blank表示新窗口打开
  27. subtextStyle: { // 副标题文字的样式, 是一个对象
  28. color: '#333', // 副标题文字的颜色
  29. fontStyle: 'normal', // 副标题文字字体的风格,可选: 'normal'|'italic'|'oblique'。normal表示正常字体; italic表示斜体; oblique也是斜体
  30. fontWeight: 'lighter', // 副标题文字字体的粗细, 可选: 'noraml'|'bold'|'bolder'|'lighter'|100|200|300|400...
  31. fontFamily: 'Arial', // 副标题文字的字体系列, 可选: 'sans-serif'|'serif'|'monospace'|'Courier New'|...
  32. fontSize: 20, // 副标题文字的字体大小
  33. align: 'center', // 注意,这是副标题文字的水平对其方式,默认自动, 可选: 'left'|'center'|'right'。rich 中如果没有设置 align,则会取父层级的 align。
  34. verticalAlign: 'middle', // 副标题文字垂直对齐方式,默认自动。可选: 'top'|'middle'|'bottom'。rich 中如果没有设置 verticalAlign,则会取父层级的 verticalAlign。
  35. lineHeight: 10, // 行高, 注意: rich 中如果没有设置 lineHeight,则会取父层级的 lineHeight。
  36. width: '100%', // 文字块的宽度。一般不用指定,不指定则自动是文字的宽度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。width 也可以是百分比字符串,如 '100%'。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  37. height: '100%', // 文字块的高度。一般不用指定,不指定则自动是文字的高度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  38. textBorderColor: '#FF0000', // 文字本身的描边颜色
  39. textBorderWidth: 3, // 文字本身的描边宽度
  40. textShadowColor: '#FF00AB', // 文字本身的阴影颜色。
  41. textShadownBlur: 3, // 文字本身的阴影长度。
  42. textShadowOffsetX: -5, // 文字本身的阴影 X 偏移, 即阴影距离文字本身位置的横向偏移量(如果是正数阴影向右偏移多少,如果是负数则表示向左偏移多少)
  43. textShadowOffsetY: 5, // 文字本身的阴影 Y 偏移, 即阴影距离文字本身位置的纵向偏移量(如果是正数阴影向下偏移多少,如果是负数则表示向上偏移多少)
  44. rich: {}, // 在rich中可以自定义富文本样式, 具体参考: https://echarts.apache.org/zh/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE
  45. },
  46. textAlign: 'auto', // 标题文字整体(包括 text 和 subtext)的水平对齐。可选值:'auto'|'left'|'right'|'center'。
  47. textVerticalAlign: 'auto', // 整体(包括 text 和 subtext)的垂直对齐。可选值:'auto'|'top'|'bottom'|'middle'。
  48. triggerEvent: false, // 表示是否触发事件, 是一个布尔值
  49. padding: [ 10, 5, 10, 5], // 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。示例: "padding: 5"设置内边距为5; "padding: [5, 10]"设置上下内边距为5,左右内边距为10; "padding: [5,10,5,10]"设置上右下左的内边距
  50. itemGap: 40, // 主副标题之间的间隔距离
  51. zlevel: 2, // 所有图形的 zlevel 值。zlevel用于 Canvas 分层,不同zlevel值的图形会放置在不同的 Canvas 中,Canvas 分层是一种常见的优化手段。zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面。
  52. Z: 2, // 组件的所有图形的z值。控制图形的前后顺序。z值小的图形会被z值大的图形覆盖。z相比zlevel优先级更低,而且不会创建新的 Canvas。
  53. left: '50%', // title 组件离容器左侧的距离。left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'left', 'center', 'right'。如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
  54. top: '20px', // title 组件离容器上侧的距离。top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'top', 'middle', 'bottom'。如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。默认自适应auto。
  55. right: '50%', // title 组件离容器右侧的距离。right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
  56. bottom: '50px', // title 组件离容器下侧的距离。bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。默认自适应auto。
  57. backgroundColor: '#eee', // 标题背景色,默认透明transparent。颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)' ,如果想要加上 alpha 通道,可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'
  58. borderColor: '#00f', //标题的边框颜色。支持的颜色格式同 backgroundColor。
  59. borderWidth: 15, // 标题的边框线宽。
  60. borderRadius: 15, // 圆角半径,单位px,支持传入数组分别指定 4 个圆角半径。示例: "borderRadius:5"统一设置四个角的圆角大小; "borderRadius:[5,5,0,0]"设置左上、右上、右下、左下的圆角大小。
  61. shadowBlur: 15, // 图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。注意:此配置项生效的前提是,设置了 show: true 以及值不为 tranparent 的背景色 backgroundColor。
  62. shadowColor: '#e6c', // 阴影颜色。支持的格式同color。注意:此配置项生效的前提是,设置了 show: true。
  63. shadowOffsetX: 15, // 阴影水平方向上的偏移距离。注意:此配置项生效的前提是,设置了 show: true。
  64. shadowOffsetY: 20, // 阴影垂直方向上的偏移距离。注意:此配置项生效的前提是,设置了 show: true。
  65. }

示例


  
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>数据可视化-ECharts </title>
  6. <style type="text/css">
  7. .echarts-box {
  8. width: 400px;
  9. height: 400px;
  10. background-color: #B3D8FF;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <!-- 1.准备一个带长度和宽度的盒子 -->
  16. <div class="echarts-box"> </div>
  17. <!-- 2.引入echarts.js和echarts-wordcloud.js -->
  18. <script src="js/echarts.min.js"> </script>
  19. <script src="js/echarts-wordcloud.min.js"> </script>
  20. <!-- 3.进行配置 -->
  21. <script>
  22. /* 3.初始化实例对象,语法:echarts.init(dom容器) */
  23. var myChart = echarts.init( document.querySelector( ".echarts-box"));
  24. /* 4.指定配置项和数据 */
  25. var option = {
  26. /* title:标题组件,包含主标题和副标题 */
  27. title: {
  28. id: 1, // 组件ID, 默认不指定
  29. show: true, // 是否显示标题组件, true表示显示, false表示不显示
  30. text: '我是标题', // 主标题文本,支持使用"\n"换行
  31. link: 'http://www.baidu.com', // 主标题文本超链接, 点击主标题跳转超链接
  32. target: 'blank', // 指定窗口打开超链接,可选: 'selft'|'blank'。self表示当前窗口打开; blank表示新窗口打开
  33. textStyle: { // 主标题文字的样式, 是一个对象
  34. color: '#333', // 主标题文字的颜色
  35. fontStyle: 'normal', // 主标题文字字体的风格,可选: 'normal'|'italic'|'oblique'。normal表示正常字体; italic表示斜体; oblique也是斜体
  36. fontWeight: 'lighter', // 主标题文字字体的粗细, 可选: 'noraml'|'bold'|'bolder'|'lighter'|100|200|300|400...
  37. fontFamily: 'Arial', // 主标题文字的字体系列, 可选: 'sans-serif'|'serif'|'monospace'|'Courier New'|...
  38. fontSize: 20, // 主标题文字的字体大小
  39. lineHeight: 10, // 行高, 注意: rich 中如果没有设置 lineHeight,则会取父层级的 lineHeight。
  40. width: '100%', // 文字块的宽度。一般不用指定,不指定则自动是文字的宽度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。width 也可以是百分比字符串,如 '100%'。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  41. height: '100%', // 文字块的高度。一般不用指定,不指定则自动是文字的高度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  42. textBorderColor: '#FF0000', // 文字本身的描边颜色
  43. textBorderWidth: 3, // 文字本身的描边宽度
  44. textShadowColor: '#FF00AB', // 文字本身的阴影颜色。
  45. textShadownBlur: 3, // 文字本身的阴影长度。
  46. textShadowOffsetX: -5, // 文字本身的阴影 X 偏移, 即阴影距离文字本身位置的横向偏移量(如果是正数阴影向右偏移多少,如果是负数则表示向左偏移多少)
  47. textShadowOffsetY: 5, // 文字本身的阴影 Y 偏移, 即阴影距离文字本身位置的纵向偏移量(如果是正数阴影向下偏移多少,如果是负数则表示向上偏移多少)
  48. rich: {}, // 在rich中可以自定义富文本样式, 具体参考: https://echarts.apache.org/zh/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE
  49. },
  50. subtext: '我是副标题', // 副标题文本,支持使用 \n 换行。
  51. sublink: 'http://www.bilibili.com', // 副标题文本超链接。
  52. subtarget: 'blank', // 指定窗口打开超链接,可选: 'selft'|'blank'。self表示当前窗口打开; blank表示新窗口打开
  53. subtextStyle: { // 副标题文字的样式, 是一个对象
  54. color: '#333', // 副标题文字的颜色
  55. fontStyle: 'normal', // 副标题文字字体的风格,可选: 'normal'|'italic'|'oblique'。normal表示正常字体; italic表示斜体; oblique也是斜体
  56. fontWeight: 'lighter', // 副标题文字字体的粗细, 可选: 'noraml'|'bold'|'bolder'|'lighter'|100|200|300|400...
  57. fontFamily: 'Arial', // 副标题文字的字体系列, 可选: 'sans-serif'|'serif'|'monospace'|'Courier New'|...
  58. fontSize: 20, // 副标题文字的字体大小
  59. align: 'center', // 注意,这是副标题文字的水平对其方式,默认自动, 可选: 'left'|'center'|'right'。rich 中如果没有设置 align,则会取父层级的 align。
  60. verticalAlign: 'middle', // 副标题文字垂直对齐方式,默认自动。可选: 'top'|'middle'|'bottom'。rich 中如果没有设置 verticalAlign,则会取父层级的 verticalAlign。
  61. lineHeight: 10, // 行高, 注意: rich 中如果没有设置 lineHeight,则会取父层级的 lineHeight。
  62. width: '100%', // 文字块的宽度。一般不用指定,不指定则自动是文字的宽度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。width 也可以是百分比字符串,如 '100%'。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  63. height: '100%', // 文字块的高度。一般不用指定,不指定则自动是文字的高度。注意,文字块的 width 和 height 指定的是内容高宽,不包含 padding。注意,如果不定义 rich 属性,则不能指定 width 和 height。
  64. textBorderColor: '#FF0000', // 文字本身的描边颜色
  65. textBorderWidth: 3, // 文字本身的描边宽度
  66. textShadowColor: '#FF00AB', // 文字本身的阴影颜色。
  67. textShadownBlur: 3, // 文字本身的阴影长度。
  68. textShadowOffsetX: -5, // 文字本身的阴影 X 偏移, 即阴影距离文字本身位置的横向偏移量(如果是正数阴影向右偏移多少,如果是负数则表示向左偏移多少)
  69. textShadowOffsetY: 5, // 文字本身的阴影 Y 偏移, 即阴影距离文字本身位置的纵向偏移量(如果是正数阴影向下偏移多少,如果是负数则表示向上偏移多少)
  70. rich: {}, // 在rich中可以自定义富文本样式, 具体参考: https://echarts.apache.org/zh/tutorial.html#%E5%AF%8C%E6%96%87%E6%9C%AC%E6%A0%87%E7%AD%BE
  71. },
  72. textAlign: 'auto', // 标题文字整体(包括 text 和 subtext)的水平对齐。可选值:'auto'|'left'|'right'|'center'。
  73. textVerticalAlign: 'auto', // 整体(包括 text 和 subtext)的垂直对齐。可选值:'auto'|'top'|'bottom'|'middle'。
  74. triggerEvent: false, // 表示是否触发事件, 是一个布尔值
  75. padding: [ 10, 5, 10, 5], // 标题内边距,单位px,默认各方向内边距为5,接受数组分别设定上右下左边距。示例: "padding: 5"设置内边距为5; "padding: [5, 10]"设置上下内边距为5,左右内边距为10; "padding: [5,10,5,10]"设置上右下左的内边距
  76. itemGap: 40, // 主副标题之间的间隔距离
  77. zlevel: 2, // 所有图形的 zlevel 值。zlevel用于 Canvas 分层,不同zlevel值的图形会放置在不同的 Canvas 中,Canvas 分层是一种常见的优化手段。zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面。
  78. Z: 2, // 组件的所有图形的z值。控制图形的前后顺序。z值小的图形会被z值大的图形覆盖。z相比zlevel优先级更低,而且不会创建新的 Canvas。
  79. left: '50%', // title 组件离容器左侧的距离。left 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'left', 'center', 'right'。如果 left 的值为'left', 'center', 'right',组件会根据相应的位置自动对齐。
  80. top: '20px', // title 组件离容器上侧的距离。top 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比,也可以是 'top', 'middle', 'bottom'。如果 top 的值为'top', 'middle', 'bottom',组件会根据相应的位置自动对齐。默认自适应auto。
  81. right: '50%', // title 组件离容器右侧的距离。right 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。
  82. bottom: '50px', // title 组件离容器下侧的距离。bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。默认自适应auto。
  83. backgroundColor: '#eee', // 标题背景色,默认透明transparent。颜色可以使用 RGB 表示,比如 'rgb(128, 128, 128)' ,如果想要加上 alpha 通道,可以使用 RGBA,比如 'rgba(128, 128, 128, 0.5)',也可以使用十六进制格式,比如 '#ccc'
  84. borderColor: '#00f', //标题的边框颜色。支持的颜色格式同 backgroundColor。
  85. borderWidth: 15, // 标题的边框线宽。
  86. borderRadius: 15, // 圆角半径,单位px,支持传入数组分别指定 4 个圆角半径。示例: "borderRadius:5"统一设置四个角的圆角大小; "borderRadius:[5,5,0,0]"设置左上、右上、右下、左下的圆角大小。
  87. shadowBlur: 15, // 图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果。注意:此配置项生效的前提是,设置了 show: true 以及值不为 tranparent 的背景色 backgroundColor。
  88. shadowColor: '#e6c', // 阴影颜色。支持的格式同color。注意:此配置项生效的前提是,设置了 show: true。
  89. shadowOffsetX: 15, // 阴影水平方向上的偏移距离。注意:此配置项生效的前提是,设置了 show: true。
  90. shadowOffsetY: 20, // 阴影垂直方向上的偏移距离。注意:此配置项生效的前提是,设置了 show: true。
  91. }
  92. }
  93. myChart.setOption(option);
  94. /* 让图表跟随屏幕自动的去适应 */
  95. window.addEventListener( "resize", function() {
  96. myChart.resize();
  97. })
  98. </script>
  99. </body>
  100. </html>

待完......


转载:https://blog.csdn.net/cnds123321/article/details/109104658
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场