echarts

博客介绍了使用最新ECharts的相关技巧。强调需下载最新版,旧版功能可能受限。具体技巧包括在饼图中心写文字、设置坐标轴和分割线、改变柱状图柱子间隔、改变一组数据柱状图颜色,以及让折线图不同数值区间显示不同颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要下载最新echarts,旧版可能很多功能不支持

1.饼图中心写文字

  1. var myChart = echarts.init(document.getElementById('row-1-1'));
  2. var option = {
  3. color:["#53647E","#05B6F0"],
  4. title: {
  5. text: '23.5',
  6. textStyle: {
  7. fontSize:18,
  8. //fontFamily:'sans-serif',
  9. fontStyle:'normal',
  10. color:'#05B5EE',
  11. verticalAlign:"top"
  12. },
  13. subtext: ['系统总体容量\n'],
  14. subtextStyle:{
  15. fontSize:10,
  16. color: '#05B5EE'
  17. },
  18. /*itemGap:'50px',*/
  19. x: 'center',
  20. y: 'center',
  21. top:'35%'
  22. },
  23. tooltip: {
  24. trigger: 'item',
  25. formatter: "{a} <br/>{b}: {c} ({d}%)"
  26. },
  27. series: [
  28. {
  29. //name:'系统容量',
  30. type:'pie',
  31. radius: ['65%', '80%'],
  32. avoidLabelOverlap: false,
  33. label: {
  34. normal: {
  35. show: false,
  36. position: 'center'
  37. },
  38. emphasis: {
  39. show: false,
  40. textStyle: {
  41. fontSize: '30',
  42. fontWeight: 'bold'
  43. }
  44. }
  45. },
  46. labelLine: {
  47. normal: {
  48. show: false
  49. }
  50. },
  51. data:[
  52. {value:11, name:'系统剩余容量'},
  53. {value:12.5, name:'系统使用容量'},
  54. ]
  55. }
  56. ]
  57. };
  58. myChart.setOption(option);

设置title中的text和subtext即可,样式可以自定义

2.关于坐标轴和分割线的设置

  1. var myChart = echarts.init(document.getElementById('row-2-2'));
  2. var option = {
  3. color: ['#60CF54','#5EB95E','#c23531', '#61a0a8', '#d48265', '#91c7ae','#749f83', '#ca8622', '#bda29a','#6e7074', '#546570', '#c4ccd3'],
  4. tooltip : {
  5. trigger: 'axis',
  6. axisPointer : { // 坐标轴指示器,坐标轴触发有效
  7. type : 'shadow' // 默认为直线,可选为:'line' | 'shadow'
  8. }
  9. },
  10. grid: {
  11. top:'15%',
  12. left: '3%',
  13. right: '4%',
  14. bottom: '5%',
  15. containLabel: true,
  16. borderColor:"#F5F5F5"
  17. },
  18. xAxis :{ //x坐标
  19. type : 'category',
  20. data : [],
  21. axisTick: { //刻度
  22. show:false, //不显示刻度
  23. },
  24. show:false, //横坐标直接不显示
  25. },
  26. yAxis : [
  27. {
  28. type : 'value',
  29. nameTextStyle: {
  30. color:'#fff'
  31. },
  32. axisLine:{ //坐标轴轴线
  33. show:false, //不显示坐标线
  34. lineStyle:{
  35. color:'#fff'
  36. }
  37. },
  38. splitNumber:1, //左边分割数,1位分割一次
  39. axisTick: { //刻度
  40. show:false, //不显示刻度
  41. },
  42. axisLabel:{ //刻度标签
  43. color:"white",
  44. show:true,
  45. fontSize:10
  46. },
  47. splitLine: {
  48. show:false //分割线
  49. }
  50. }
  51. ],
  52. series : [{
  53. type:"bar",
  54. barCategoryGap:'50%',
  55. data:[100,80,60,50,20,60,70,90,20,100,50]
  56. }]
  57. };
  58. myChart.setOption(option);

主要就是设置xAxis和yAxis中的axisLine,axisLabel,axisTick,splitLine,splitNumber等,具体参数看手册即可

3.关于柱状图改变柱子间隔问题

  1. series : [{
  2. type:"bar",
  3. barCategoryGap:'50%',
  4. data:[100,80,60,50,20,60,70,90,20,100,50]
  5. }]

如果只有一组数据,想调整柱子间隔,在series中使用barCategoryGap调整即可

如果有多组数据,则需要使用barGap来调整类目之间的间距

4.关于一组数据改变柱状图颜色问题

  1. series : [{
  2. type:"bar",
  3. barCategoryGap:'70%',
  4. data:[100,80,60,50,20],
  5. itemStyle: {
  6. normal:{
  7. color: function (params){
  8. var colorList = ['#455B72','#A5AFB5','#D44191', '#45A5D5', '#15BCB5'];
  9. return colorList[params.dataIndex];
  10. }
  11. },
  12. },
  13. markLine : {
  14. data : [
  15. {type : 'average', name: '平均值'}
  16. ],
  17. lineStyle: {
  18. color: '#ddd',
  19. width: 1,
  20. type: 'dashed',
  21. /*shadowBlur: ...,
  22. shadowColor: ...,
  23. shadowOffsetX: 0,
  24. shadowOffsetY: 0,
  25. opacity: ...,
  26. curveness: 0,*/
  27. }
  28. }
  29. }]

在series中设置itemStyle,像这个设置颜色即可

5.关于折线图不同数值区间颜色不同问题

  1. var option = {
  2. title: {
  3. text: 'ECharts 入门示例'
  4. },
  5. tooltip: {},
  6. legend: {
  7. data:['销量']
  8. },
  9. xAxis: {
  10. data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
  11. },
  12. yAxis: {},
  13. visualMap: {//区间内控制显示颜色
  14. show: false,
  15. dimension: 1,
  16. pieces: [[{gte: 7, lte: 15, color: '#7547A2'},{gte: 15, lte: 30, color: '#000'}]],//设置折线什么区间显示什么颜色
  17. seriesIndex:0,
  18. outOfRange: { //设置区间外的颜色
  19. color: 'red'
  20. }
  21. },
  22. series: [{
  23. name: '销量',
  24. type: 'line',
  25. areaStyle: {normal: {}},//加上这个使折线下方填充颜色
  26. data: [5, 20, 36, 10, 10, 20]
  27. }
  28. ]
  29. };

在visualMap中设置pieces,其中可设置最大最小区间内折线的颜色,series中如果设置了areaStyle,则对应的区间内填充颜色也会相应改变,就像图中那样

附visualMap的配置

  1. visualMap=[ //视觉映射组件,用于进行『视觉编码』,也就是将数据映射到视觉元素。视觉元素可以是:symbol: 图元的图形类别。symbolSize: 图元的大小。color: 图元的颜色。
  2. // colorAlpha: 图元的颜色的透明度。opacity: 图元以及其附属物(如文字标签)的透明度。colorLightness: 颜色的明暗度。colorSaturation: 颜色的饱和度。colorHue: 颜色的色调。
  3. {
  4. show:true, //是否显示 visualMap-continuous 组件。如果设置为 false,不会显示,但是数据映射的功能还存在
  5. type: 'continuous', // 定义为连续型 viusalMap
  6. min:10, //指定 visualMapContinuous 组件的允许的最小值
  7. max:100, //指定 visualMapContinuous 组件的允许的最大值
  8. range:[15, 40], //指定手柄对应数值的位置。range 应在 min max 范围内
  9. calculable:true, //是否显示拖拽用的手柄(手柄能拖拽调整选中范围)
  10. realtime:true, //拖拽时,是否实时更新
  11. inverse:false, //是否反转 visualMap 组件
  12. precision:0, //数据展示的小数精度,默认为0,无小数点
  13. itemWidth:20, //图形的宽度,即长条的宽度。
  14. itemHeight:140, //图形的高度,即长条的高度。
  15. align:"auto", //指定组件中手柄和文字的摆放位置.可选值为:'auto' 自动决定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
  16. text:['High', 'Low'], //两端的文本
  17. textGap:10, //两端文字主体之间的距离,单位为px
  18. dimension:2, //指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,其中每个列是一个维度,默认取 data 中最后一个维度
  19. seriesIndex:1, //指定取哪个系列的数据,即哪个系列的 series.data,默认取所有系列
  20. hoverLink:true, //鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮
  21. inRange:{ //定义 在选中范围中 的视觉元素
  22. color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
  23. symbolSize: [30, 100]
  24. },
  25. outOfRange:{ //定义 在选中范围外 的视觉元素。
  26. color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
  27. symbolSize: [30, 100]
  28. },
  29. zlevel:0, //所属图形的Canvas分层,zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
  30. z:2, //所属组件的z分层,z值小的图形会被z值大的图形覆盖
  31. left:"center", //组件离容器左侧的距离,'left', 'center', 'right','20%'
  32. top:"top", //组件离容器上侧的距离,'top', 'middle', 'bottom','20%'
  33. right:"auto", //组件离容器右侧的距离,'20%'
  34. bottom:"auto", //组件离容器下侧的距离,'20%'
  35. orient:"vertical", //图例排列方向
  36. padding:5, //图例内边距,单位px 5 [5, 10] [5,10,5,10]
  37. backgroundColor:"transparent", //标题背景色
  38. borderColor:"#ccc", //边框颜色
  39. borderWidth:0, //边框线宽
  40. textStyle:mytextStyle, //文本样式
  41. formatter: function (value) { //标签的格式化工具。
  42. return 'aaaa' + value; // 范围标签显示内容。
  43. }
  44. },
  45. {
  46. show:true, //是否显示 visualMap-continuous 组件。如果设置为 false,不会显示,但是数据映射的功能还存在
  47. type: 'piecewise', // 定义为分段型 visualMap
  48. splitNumber:5, //对于连续型数据,自动平均切分成几段。默认为5段
  49. pieces: [ //自定义『分段式视觉映射组件(visualMapPiecewise)』的每一段的范围,以及每一段的文字,以及每一段的特别的样式
  50. {min: 1500}, // 不指定 max,表示 max 为无限大(Infinity)。
  51. {min: 900, max: 1500},
  52. {min: 310, max: 1000},
  53. {min: 200, max: 300},
  54. {min: 10, max: 200, label: '10 到 200(自定义label)'},
  55. {value: 123, label: '123(自定义特殊颜色)', color: 'grey'}, // 表示 value 等于 123 的情况。
  56. {max: 5} // 不指定 min,表示 min 为无限大(-Infinity)。
  57. ],
  58. categories:['严重污染', '重度污染', '中度污染', '轻度污染', '良', '优'], //用于表示离散型数据(或可以称为类别型数据、枚举型数据)的全集
  59. min:10, //指定 visualMapContinuous 组件的允许的最小值
  60. max:100, //指定 visualMapContinuous 组件的允许的最大值
  61. minOpen:true, //界面上会额外多出一个『< min』的选块
  62. maxOpen:true, //界面上会额外多出一个『> max』的选块。
  63. selectedMode:"multiple", //选择模式,可以是:'multiple'(多选)。'single'(单选)。
  64. inverse:false, //是否反转 visualMap 组件
  65. precision:0, //数据展示的小数精度,默认为0,无小数点
  66. itemWidth:20, //图形的宽度,即长条的宽度。
  67. itemHeight:140, //图形的高度,即长条的高度。
  68. align:"auto", //指定组件中手柄和文字的摆放位置.可选值为:'auto' 自动决定。'left' 手柄和label在右。'right' 手柄和label在左。'top' 手柄和label在下。'bottom' 手柄和label在上。
  69. text:['High', 'Low'], //两端的文本
  70. textGap:10, //两端文字主体之间的距离,单位为px
  71. showLabel:true, //是否显示每项的文本标签
  72. itemGap:10, //每两个图元之间的间隔距离,单位为px
  73. itemSymbol:"roundRect", //默认的图形。可选值为: 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
  74. dimension:2, //指定用数据的『哪个维度』,映射到视觉元素上。『数据』即 series.data。 可以把 series.data 理解成一个二维数组,其中每个列是一个维度,默认取 data 中最后一个维度
  75. seriesIndex:1, //指定取哪个系列的数据,即哪个系列的 series.data,默认取所有系列
  76. hoverLink:true, //鼠标悬浮到 visualMap 组件上时,鼠标位置对应的数值 在 图表中对应的图形元素,会高亮
  77. inRange:{ //定义 在选中范围中 的视觉元素
  78. color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
  79. symbolSize: [30, 100]
  80. },
  81. outOfRange:{ //定义 在选中范围外 的视觉元素。
  82. color: ['#121122', 'rgba(3,4,5,0.4)', 'red'],
  83. symbolSize: [30, 100]
  84. },
  85. zlevel:0, //所属图形的Canvas分层,zlevel 大的 Canvas 会放在 zlevel 小的 Canvas 的上面
  86. z:2, //所属组件的z分层,z值小的图形会被z值大的图形覆盖
  87. left:"center", //组件离容器左侧的距离,'left', 'center', 'right','20%'
  88. top:"top", //组件离容器上侧的距离,'top', 'middle', 'bottom','20%'
  89. right:"auto", //组件离容器右侧的距离,'20%'
  90. bottom:"auto", //组件离容器下侧的距离,'20%'
  91. orient:"vertical", //图例排列方向
  92. padding:5, //图例内边距,单位px 5 [5, 10] [5,10,5,10]
  93. backgroundColor:"transparent", //标题背景色
  94. borderColor:"#ccc", //边框颜色
  95. borderWidth:0, //边框线宽
  96. textStyle:mytextStyle, //文本样式
  97. formatter: function (value) { //标签的格式化工具。
  98. return 'aaaa' + value; // 范围标签显示内容。
  99. }
  100. }
  101. ];

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值