echarts仪表盘如何设置图例(legend)
echarts 图表中经常需要对不同的颜色设置图例标识不同的意义,而仪表盘的指针只存在一个值,如何表示不同颜色的意义,官网配置项并未给出该功能;
不同段的颜色是通过axisLine->lineStyle->color来设置的;
搜索了很多的资料都没有找到用来标识各颜色段的图例;
反复琢磨,可不可以使用有图例的图来强制加上这个图例呢?
这里熟悉echarts的童鞋可能想到解决方法了;
那我们就来使用一招“移花接木”大法;
主要思想:使用柱状图的legend图例,然后设置柱状图和仪表图的层级,然后再隐藏柱状图,禁用legend的点击事件;
注意点:
1.series中既有type为‘gauge’的配置项,也有type为‘bar’的配置项,而'bar'类型的配置项只要关注其legend的颜色即可;
2.对于柱状图要隐藏的项较多,必须全部设置成不显示,其中包括轴线和分割线等;
3.防止奇怪的体验最好将legend的点击事件禁用掉;
- var option = {
- legend: { //配置legend,这里的data,要对应type为‘bar’的series数据项的‘name’名称,作为图例的说明
- data:['预热期','导入期','成长期','成熟期','衰退期'],
- selectedMode:false, //图例禁止点击
- top:20,
- itemWidth:23,
- itemHeight:6,
- textStyle: {
- color: '#707070',
- fontStyle: 'normal',
- fontWeight: 'normal',
- fontFamily: 'sans-serif',
- fontSize: 11,
- },
- },
- grid: {
- z:1, //grid作为柱状图的坐标系,其层级要和仪表图层级不同,同时隐藏
- show:false,
- left: '-30%',
- right: '4%',
- bottom: '3%',
- containLabel: true,
- splitLine:{
- show: false //隐藏分割线
- },
- },
- xAxis : [ //这里有很多的show,必须都设置成不显示
- {
- type : 'category',
- data : [],
- axisLine: {
- show: false
- },
- splitLine:{
- show: false
- },
- splitArea: {
- interval: 'auto',
- show: false
- }
- }
- ],
- yAxis : [ //这里有很多的show,必须都设置成不显示
- {
- type : 'value',
- axisLine: {
- show: false
- },
- splitLine:{
- show: false
- },
- }
- ],
- toolbox: {
- show: false,
- },
- series : [
- {
- name:'刻度盘',
- type: 'gauge',
- startAngle: 180,
- endAngle: 0,
- "center": ["50%", "80%"], //整体的位置设置
- z: 3,
- min: min,
- max: max+min,
- splitNumber: max,
- radius: '110%',
- axisLine: { // 坐标轴线
- lineStyle: { // 属性lineStyle控制线条样式
- width: 10,
- color:optionUsedColors
- }
- },
- axisTick: { // 坐标轴小标记
- length: 19, // 属性length控制线长
- splitNumber: 2,
- lineStyle: { // 属性lineStyle控制线条样式
- color: '#cdcdcd'
- }
- },
- splitLine: { // 分隔线
- length: 20, // 属性length控制线长
- lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式
- color: 'auto'
- }
- },
- axisLabel: {
- textStyle: {
- color:'#454A57'
- }
- },
- pointer: {
- show: true,
- length: '70%',
- width: 5,
- },
- itemStyle:{
- normal:{
- color:'#454A57',
- borderWidth:0
- }
- },
- title: { //仪表盘标题
- show: true,
- offsetCenter: ['0', '20'],
- textStyle: {
- color: '#444A56',
- fontSize: 12,
- fontFamily: 'Microsoft YaHei'
- }
- },
- detail: {
- textStyle: {
- fontSize: 12,
- color: '#707070'
- },
- offsetCenter: offsetConfig,
- formatter: function(){
- return '上市时间\n'+time;
- }
- },
- data:[{value: (status/100*max || 0), name: '当前阶段'}]
- },
- {
- name: '灰色内圈',
- type: 'gauge',
- z:2,
- radius: '110%',
- startAngle: 180,
- endAngle: 0,
- "center": ["50%", "80%"], //整体的位置设置
- splitNumber: 4,
- axisLine: { // 坐标轴线
- lineStyle: { // 属性lineStyle控制线条样式
- color: [
- [1, '#F2F4F8']
- ],
- width: 24,
- opacity: 1,
- }
- },
- splitLine: { //分隔线样式
- show: false,
- },
- axisLabel: { //刻度标签
- show: false,
- },
- axisTick: { //刻度样式
- show: false,
- },
- detail : {
- show:false,
- textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE
- fontWeight: 'bolder',
- fontSize:12
- }
- },
- },
- {
- name:'预热期',
- type:'bar',
- barWidth: '60%', //不显示,可以随便设置
- data:[0],
- itemStyle: {
- normal: {
- color: '#41C468', //这里的图例要注意,颜色设置和仪表盘的颜色对应起来
- }
- }
- },
- {
- name:'导入期',
- type:'bar',
- barWidth: '60%',
- data:[0],
- itemStyle: {
- normal: {
- color: '#70C1B3',
- }
- }
- },
- {
- name:'成长期',
- type:'bar',
- barWidth: '60%',
- data:[0],
- itemStyle: {
- normal: {
- color: '#00A1E9',
- }
- }
- },
- {
- name:'成熟期',
- type:'bar',
- barWidth: '60%',
- data:[0],
- itemStyle: {
- normal: {
- color: '#EE4444',
- }
- }
- },
- {
- name:'衰退期',
- type:'bar',
- barWidth: '60%',
- data:[0],
- itemStyle: {
- normal: {
- color: '#DCF2C4',
- }
- }
- }
- ]
- }
最终的效果图如下,是不是很简单呢。
echarts仪表盘如何设置图例(legend)的更多相关文章
- gnuplot图例legend设置
//将图例放在右下角 set key bottom //将图例放在中间 set key center //将图例放在左边 set key left //将图例放在指定位置右下角的坐标为(10,0.7) ...
- echarts基础 handleIcon 设置
1.自己引入echarts库 2.找到代码中dataZoom中的handleIcon ,看见对应的是"M0,0 v9.7h5 v-9.7h-5 Z",这是由svg画出来的图形,其中 ...
- echarts相关属性设置(1)折线图篇
option = { tooltip: { trigger: 'axis', // axisPointer: { // type: 'cross', // label: { // background ...
- highcharts图表的图例legend怎么改变显示位置
一.将图例Legend放于图表右侧1.设置chart的marginRight属性值:chart: { marginRight: 120}2.设置legend图例属性值如下 legend: { alig ...
- echarts图表属性设置
原地址:http://blog.csdn.net/she_lover/article/details/51448967theme = { // 全图默认背景 // backgroundColor: ‘ ...
- echarts属性的设置(完整大全)
// 全图默认背景 // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...
- highcharts图表的图例legend
一.将图例Legend放于图表右侧1.设置chart的marginRight属性值:chart: { marginRight: 120}2.设置legend图例属性值如下 legend: { alig ...
- echarts相关属性设置(3)环状图
option = { grid: { left: '3%', top: '0%', // height: 500, right: '30%', containLabel: true, }, legen ...
- echarts属性的设置
// 全图默认背景 // backgroundColor: ‘rgba(0,0,0,0)’, // 默认色板 color: ['#ff7f50','#87cefa','#da70d6','#32cd ...
随机推荐
- Homebrew - macOS 不可或缺的套件管理器
一.Homebrew 是什么? Unix/Linux 安装软件的时候有个很常见.也很令人头疼的事情,那就是软件包依赖.值得高兴的是,当前主流的 Linux 两大发行版本都自带了解决方案,Red hat ...
- Numpy的使用
Numpy的主要功能: 可以观察以上的规律,会发现,代码类型的简写,计量都是以8作为起始1的. # -*- coding: utf-8 -*- #向量相加-Python def pythonsum(n ...
- Python变量运算字符串等
一,作用域 操作 name = 'liuyueming' if 1==1:... print name... liuyueming 两次回车执行 修改代码 >>> if 1==1:. ...
- 支付宝app支付服务器签名代码(C#)
1,引入支付宝的sdk(AopSdk) 支付宝接口文档网站可下载,注意下载C#版本: 2,代码写的比较简单 public static string RSASign(string OrderNo,de ...
- 转:简单的Mysql主从复制设置
步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql 1.3.修改root的密码 2.修改主服务器master: #vim /etc/my.cn ...
- 如何在Unity中分别实现Flat Shading(平面着色)、Gouraud Shading(高洛德着色)、Phong Shading(冯氏着色)
写在前面: 先说一下为什么决定写这篇文章,我也是这两年开始学习3D物体的光照还有着色方式的,对这个特别感兴趣,在Wiki还有NVIDIA官网看了相关资料后,基本掌握了渲染物体时的渲染管道(The re ...
- spring boot --- 初级体验
Spring boot的介绍我就不多说了,网上可以自己看一下. 它的优点就是:快!适合小白,没有复杂的配置文件. 缺点也很明显:坑有些多, 文档略少,报错有时不知道该如何处理. 下面做个最简单的入门: ...
- 【JAVAWEB学习笔记】05_jQuery基础
晨读单词: toggle:切换 each:每个(遍历) append:追加(内部追加,将B追加到A的内部结尾处) appendTo:追加(内部追加,将A追加到B的内部结尾处) prepend:追加(内 ...
- 开涛spring3(2.3) - IoC的配置使用
2.3.1 XML配置的结构 一般配置文件结构如下: <beans> <import resource=”resource1.xml”/> <bean id=”bean ...
- 前端小课堂 js:函数的创建方式及区别
js 函数的创建大体有这几种方式: -1-函数表达式(函数字面量): 说白了就是把一个函数赋值给了一个变量. var fun1 = function(index){ alert(index); } f ...