echarts 图表中经常需要对不同的颜色设置图例标识不同的意义,而仪表盘的指针只存在一个值,如何表示不同颜色的意义,官网配置项并未给出该功能;

不同段的颜色是通过axisLine->lineStyle->color来设置的;

搜索了很多的资料都没有找到用来标识各颜色段的图例;

反复琢磨,可不可以使用有图例的图来强制加上这个图例呢?

这里熟悉echarts的童鞋可能想到解决方法了;

那我们就来使用一招“移花接木”大法;

主要思想:使用柱状图的legend图例,然后设置柱状图和仪表图的层级,然后再隐藏柱状图,禁用legend的点击事件;

注意点:

  1.series中既有type为‘gauge’的配置项,也有type为‘bar’的配置项,而'bar'类型的配置项只要关注其legend的颜色即可;

  2.对于柱状图要隐藏的项较多,必须全部设置成不显示,其中包括轴线和分割线等;

  3.防止奇怪的体验最好将legend的点击事件禁用掉;

  1. var option = {
  2. legend: { //配置legend,这里的data,要对应type为‘bar’的series数据项的‘name’名称,作为图例的说明
  3. data:['预热期','导入期','成长期','成熟期','衰退期'],
  4. selectedMode:false, //图例禁止点击
  5. top:20,
  6. itemWidth:23,
  7. itemHeight:6,
  8. textStyle: {
  9. color: '#707070',
  10. fontStyle: 'normal',
  11. fontWeight: 'normal',
  12. fontFamily: 'sans-serif',
  13. fontSize: 11,
  14. },
  15. },
  16. grid: {
  17. z:1, //grid作为柱状图的坐标系,其层级要和仪表图层级不同,同时隐藏
  18. show:false,
  19. left: '-30%',
  20. right: '4%',
  21. bottom: '3%',
  22. containLabel: true,
  23. splitLine:{
  24. show: false //隐藏分割线
  25. },
  26.  
  27. },
  28. xAxis : [ //这里有很多的show,必须都设置成不显示
  29. {
  30. type : 'category',
  31. data : [],
  32. axisLine: {
  33. show: false
  34. },
  35. splitLine:{
  36. show: false
  37. },
  38. splitArea: {
  39. interval: 'auto',
  40. show: false
  41. }
  42. }
  43. ],
  44. yAxis : [ //这里有很多的show,必须都设置成不显示
  45. {
  46. type : 'value',
  47. axisLine: {
  48. show: false
  49. },
  50. splitLine:{
  51. show: false
  52. },
  53. }
  54. ],
  55. toolbox: {
  56. show: false,
  57. },
  58. series : [
  59. {
  60. name:'刻度盘',
  61. type: 'gauge',
  62. startAngle: 180,
  63. endAngle: 0,
  64. "center": ["50%", "80%"], //整体的位置设置
  65. z: 3,
  66. min: min,
  67. max: max+min,
  68. splitNumber: max,
  69. radius: '110%',
  70. axisLine: { // 坐标轴线
  71. lineStyle: { // 属性lineStyle控制线条样式
  72. width: 10,
  73. color:optionUsedColors
  74. }
  75. },
  76. axisTick: { // 坐标轴小标记
  77. length: 19, // 属性length控制线长
  78. splitNumber: 2,
  79. lineStyle: { // 属性lineStyle控制线条样式
  80. color: '#cdcdcd'
  81. }
  82. },
  83. splitLine: { // 分隔线
  84. length: 20, // 属性length控制线长
  85. lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
  86. color: 'auto'
  87. }
  88. },
  89. axisLabel: {
  90. textStyle: {
  91. color:'#454A57'
  92. }
  93. },
  94. pointer: {
  95. show: true,
  96. length: '70%',
  97. width: 5,
  98. },
  99. itemStyle:{
  100. normal:{
  101. color:'#454A57',
  102. borderWidth:0
  103. }
  104. },
  105. title: { //仪表盘标题
  106. show: true,
  107. offsetCenter: ['0', '20'],
  108. textStyle: {
  109. color: '#444A56',
  110. fontSize: 12,
  111. fontFamily: 'Microsoft YaHei'
  112. }
  113. },
  114. detail: {
  115. textStyle: {
  116. fontSize: 12,
  117. color: '#707070'
  118. },
  119. offsetCenter: offsetConfig,
  120. formatter: function(){
  121. return '上市时间\n'+time;
  122. }
  123. },
  124. data:[{value: (status/100*max || 0), name: '当前阶段'}]
  125. },
  126. {
  127. name: '灰色内圈',
  128. type: 'gauge',
  129. z:2,
  130. radius: '110%',
  131. startAngle: 180,
  132. endAngle: 0,
  133. "center": ["50%", "80%"], //整体的位置设置
  134. splitNumber: 4,
  135. axisLine: { // 坐标轴线
  136. lineStyle: { // 属性lineStyle控制线条样式
  137. color: [
  138. [1, '#F2F4F8']
  139. ],
  140. width: 24,
  141. opacity: 1,
  142. }
  143.  
  144. },
  145. splitLine: { //分隔线样式
  146. show: false,
  147. },
  148. axisLabel: { //刻度标签
  149. show: false,
  150. },
  151. axisTick: { //刻度样式
  152. show: false,
  153. },
  154. detail : {
  155. show:false,
  156. textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
  157. fontWeight: 'bolder',
  158. fontSize:12
  159. }
  160. },
  161. },
  162. {
  163. name:'预热期',
  164. type:'bar',
  165. barWidth: '60%', //不显示,可以随便设置
  166. data:[0],
  167. itemStyle: {
  168. normal: {
  169. color: '#41C468', //这里的图例要注意,颜色设置和仪表盘的颜色对应起来
  170. }
  171. }
  172. },
  173. {
  174. name:'导入期',
  175. type:'bar',
  176. barWidth: '60%',
  177. data:[0],
  178. itemStyle: {
  179. normal: {
  180. color: '#70C1B3',
  181. }
  182. }
  183. },
  184. {
  185. name:'成长期',
  186. type:'bar',
  187. barWidth: '60%',
  188. data:[0],
  189. itemStyle: {
  190. normal: {
  191. color: '#00A1E9',
  192. }
  193. }
  194. },
  195. {
  196. name:'成熟期',
  197. type:'bar',
  198. barWidth: '60%',
  199. data:[0],
  200. itemStyle: {
  201. normal: {
  202. color: '#EE4444',
  203. }
  204. }
  205. },
  206. {
  207. name:'衰退期',
  208. type:'bar',
  209. barWidth: '60%',
  210. data:[0],
  211. itemStyle: {
  212. normal: {
  213. color: '#DCF2C4',
  214. }
  215. }
  216. }
  217. ]
  218. }

最终的效果图如下,是不是很简单呢。

echarts仪表盘如何设置图例(legend)的更多相关文章

  1. gnuplot图例legend设置

    //将图例放在右下角 set key bottom //将图例放在中间 set key center //将图例放在左边 set key left //将图例放在指定位置右下角的坐标为(10,0.7) ...

  2. echarts基础 handleIcon 设置

    1.自己引入echarts库 2.找到代码中dataZoom中的handleIcon ,看见对应的是"M0,0 v9.7h5 v-9.7h-5 Z",这是由svg画出来的图形,其中 ...

  3. echarts相关属性设置(1)折线图篇

    option = { tooltip: { trigger: 'axis', // axisPointer: { // type: 'cross', // label: { // background ...

  4. highcharts图表的图例legend怎么改变显示位置

    一.将图例Legend放于图表右侧1.设置chart的marginRight属性值:chart: { marginRight: 120}2.设置legend图例属性值如下 legend: { alig ...

  5. echarts图表属性设置

    原地址:http://blog.csdn.net/she_lover/article/details/51448967theme = { // 全图默认背景 // backgroundColor: ‘ ...

  6. echarts属性的设置(完整大全)

    // 全图默认背景  // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...

  7. highcharts图表的图例legend

    一.将图例Legend放于图表右侧1.设置chart的marginRight属性值:chart: { marginRight: 120}2.设置legend图例属性值如下 legend: { alig ...

  8. echarts相关属性设置(3)环状图

    option = { grid: { left: '3%', top: '0%', // height: 500, right: '30%', containLabel: true, }, legen ...

  9. echarts属性的设置

    // 全图默认背景  // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...

随机推荐

  1. Homebrew - macOS 不可或缺的套件管理器

    一.Homebrew 是什么? Unix/Linux 安装软件的时候有个很常见.也很令人头疼的事情,那就是软件包依赖.值得高兴的是,当前主流的 Linux 两大发行版本都自带了解决方案,Red hat ...

  2. Numpy的使用

    Numpy的主要功能: 可以观察以上的规律,会发现,代码类型的简写,计量都是以8作为起始1的. # -*- coding: utf-8 -*- #向量相加-Python def pythonsum(n ...

  3. Python变量运算字符串等

    一,作用域 操作 name = 'liuyueming' if 1==1:... print name... liuyueming 两次回车执行 修改代码 >>> if 1==1:. ...

  4. 支付宝app支付服务器签名代码(C#)

    1,引入支付宝的sdk(AopSdk) 支付宝接口文档网站可下载,注意下载C#版本: 2,代码写的比较简单 public static string RSASign(string OrderNo,de ...

  5. 转:简单的Mysql主从复制设置

    步骤如下: 1.主从服务器分别作以下操作:  1.1.版本一致  1.2.初始化表,并在后台启动mysql  1.3.修改root的密码 2.修改主服务器master: #vim /etc/my.cn ...

  6. 如何在Unity中分别实现Flat Shading(平面着色)、Gouraud Shading(高洛德着色)、Phong Shading(冯氏着色)

    写在前面: 先说一下为什么决定写这篇文章,我也是这两年开始学习3D物体的光照还有着色方式的,对这个特别感兴趣,在Wiki还有NVIDIA官网看了相关资料后,基本掌握了渲染物体时的渲染管道(The re ...

  7. spring boot --- 初级体验

    Spring boot的介绍我就不多说了,网上可以自己看一下. 它的优点就是:快!适合小白,没有复杂的配置文件. 缺点也很明显:坑有些多, 文档略少,报错有时不知道该如何处理. 下面做个最简单的入门: ...

  8. 【JAVAWEB学习笔记】05_jQuery基础

    晨读单词: toggle:切换 each:每个(遍历) append:追加(内部追加,将B追加到A的内部结尾处) appendTo:追加(内部追加,将A追加到B的内部结尾处) prepend:追加(内 ...

  9. 开涛spring3(2.3) - IoC的配置使用

    2.3.1  XML配置的结构 一般配置文件结构如下: <beans> <import resource=”resource1.xml”/> <bean id=”bean ...

  10. 前端小课堂 js:函数的创建方式及区别

    js 函数的创建大体有这几种方式: -1-函数表达式(函数字面量): 说白了就是把一个函数赋值给了一个变量. var fun1 = function(index){ alert(index); } f ...