echarts解决一些大屏图形配置方案汇总
本文主要记录使用echarts解决各种大屏图形配置方案。
1、说在前面
去年经常使用echarts解决一些可视化大屏项目,一直想记录下使用经验,便于日后快速实现。正好最近在整理文档,顺道一起记录在博客中。
2、基本使用
Echarts3.0是通过配置实现图形的,根据不同的配置或者组合配置生成想要的图形。后面主要介绍options中的配置内容。
setOption
// dom表示对应的dom节点,必须指定宽高
var ec = echart.init(dom);
// 根据配置初始化图形,其中options就是配置核心
ec.setOption(options)
tooltip
用于显示提示框
| 名称 | 效果 |
|---|---|
| trigger | 触发类型:item表示数据项,axis表示坐标轴触发(柱状图/折线图用的多) |
| formatter | 提示框浮层内容格式器,支持字符串模板和回调函数两种形式。 |
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c} ({d}%)"
},
折线(区域)图、柱状(条形)图、K线图 : {a}(系列名称),{b}(类目值),{c}(数值), {d}(无)
散点图(气泡)图 : {a}(系列名称),{b}(数据名称),{c}(数值数组), {d}(无)
地图 : {a}(系列名称),{b}(区域名称),{c}(合并数值), {d}(无)
饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
legend
用于显示图例。
legend: {
data: data,
itemGap: 0,
itemWidth: 15,
itemHeight: 10,
bottom: -5,
left: 30,
width: '500px',
textStyle: {
color: "#fff",
fontSize: 14
}
},
axis
用于显示坐标。
| 名称 | 效果 |
|---|---|
| type | 坐标轴类型:'value' 数值轴,适用于连续数据。'category' 类目轴,适用于离散的类目数据,为该类型时必须通过 data 设置类目数据 |
| boundaryGap | 坐标轴两边留白策略 |
| splitNumber | 坐标轴的分割段数 |
| axisLine | 坐标轴轴线相关设置 |
| axisTick | 坐标轴刻度相关设置 |
| axisLabel | 坐标轴文本相关设置 |
//纵坐标设置相似
xAxis: [{
type: 'category',
boundaryGap: false,
splitNumber: 5,
data: xAxis,
axisLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
show: true,
textStyle: {
color: '#fff',
fontSize: 14
}
}
}]
更多基础使用,详见官网配置项文档
3、图形配置
饼图叠加
饼图是echart的自带的图形,这里只要把颜色设置一下就可以了。难点在于在图上再覆盖一个半透明的圆环,圆环是不可以有hover效果的。

| 名称 | 效果 |
|---|---|
| name | 图标名称 |
| type | 指明图形的类型'pie','line'等 |
| hoverAnimation | 鼠标hover是否需要动画 |
| radius | 饼图的半径,数组的第一项是内半径,第二项是外半径 |
| center | 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标。 |
| label | 饼图图形上的文本标签,可用于说明图形的一些数据信息 |
| labelLine | 标签的视觉引导线样式 |
| data | 渲染数据 |
series: [{
name: '主要致贫原因',
type: 'pie',
hoverAnimation: false,
radius: [10, radiusMax],
center: ['50%', '50%'],
label: {
normal: {
formatter: "{b} {d}%",
color: '#fff',
fontSize: 14
}
},
labelLine: {
normal: {
lineStyle: {
color: '#fff',
opacity: 0.5
},
length: 1
}
},
data: data
},
{
type: 'pie',
radius: [10, 18],
hoverAnimation: false,
center: ['50%', '50%'],
cursor: 'text',
tooltip: {
show: false
},
label: {
normal: {
show: false
}
},
labelLine: {
normal: {
show: false
}
},
data: [{
//透明圆
value: 100,
itemStyle: {
normal: {
color: '#000',
opacity: 0.3
}
}
}]
}
]
渐变折线
折线图是echart的自带的图形,这里的难点在于渐变色的设置

| 名称 | 效果 |
|---|---|
| itemStyle | 图形样式(3.0内部必须加入normal) |
| areaStyle | 区域填充样式。 |
var option = {
//仅列举一个,其他2个类似
series: [{
name: type === '访问用户数(人)',
type: 'line',
itemStyle: {
normal: {
color: "#cefe56",
borderWidth: 2,
areaStyle: {
//渐变色的设置
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1, [{
offset: 0,
color: '#cefe56'
}, {
offset: 0.5,
color: '#6d703d'
}, {
offset: 1,
color: '#4d513a'
}]
)
},
lineStyle: {
color: "#cefe56",
width: 2
}
}
},
data: data
}
]
}
叠加刻度线(仪表盘)
图示的图形在echarts中是没有原型的,由于是显示的刻度,因此可以考虑使用type:'gauge' (即仪表盘)来实现,然后隐藏所有只显示仪表盘分割线;通过分析可知该图形是由2个刻度圆形组成,蓝色刻度表示背景,绿色刻度表示具体的占比,总比100%。

| 名称 | 效果 |
|---|---|
| radius | 仪表盘半径 |
| startAngle | 仪表盘起始角度 |
| endAngle | 仪表盘结束角度 |
| clockwise | 仪表盘刻度是否是顺时针增长 |
| min | 最小的数据值 |
| max | 最大的数据值 |
| axisTick | 刻度样式 |
| splitNumber | 仪表盘刻度的分割段数 |
| splitLine | 仪表盘分割线样式 |
| axisLine | 仪表盘轴线相关配置 |
| pointer | 仪表盘指针 |
| detail | 仪表盘详情 |
series: [
{
//绿色刻度,蓝色刻度precent值是1
name: '脱贫人数占比',
type: 'gauge',
animation: true,
radius: '80%',
startAngle: 359.99 * precent / 100,
endAngle: 0,
clockwise: false,
min: 0,
max: 100,
axisTick: {
show: false
},
axisLabel: {
show: false,
},
splitNumber: 30 * precent / 100,
splitLine: {
show: true,
length: 7,
lineStyle: {
color: '#30c3a7',
width: 2
},
},
axisLine: {
show: false,
lineStyle: {
width: 0,
opacity: 0
}
},
pointer: {
show: false
},
detail: {
color: '#32cfaf',
formatter: '{value}%',
fontSize: 14,
offsetCenter: ['0%', '-20%']
},
title: {
show: true,
color: "#fff",
fontSize: 14,
offsetCenter: ['0%', '20%']
},
data: [{ value: precent, name: '占比' }],
}
]
刻度柱状图
图示的图形在echarts中是没有原型的,其实它提供了另外一个类型:象形柱图,这里可以通过与柱状图的结合叠加组合成效果图。即使用柱状图(type:bar)实现带渐变的柱状图,使用象形柱图(type:pictorialBar)实现中间的间隔,间隔的颜色与背景色相同,造成中间柱状图“缺失”的假象。

| 名称 | 效果 |
|---|---|
| barWidth | 柱状图显示宽度 |
| itemStyle | 柱状图样式 |
| symbol | 图形类型提供的标记类型包括 'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow',也可以自定义指定图片 |
| symbolSize | 图形的大小 |
| symbolMargin | 图形的两边间隔 |
| symbolRepeat | 指定图形元素是否重复 |
series: [{
name: '贫困户人均纯收入',
type: 'bar',
barWidth: '15',
itemStyle: {
normal: {
//柱状图渐变
color: new echarts.graphic.LinearGradient(
0, 0, 0, 1, [
{ offset: 0, color: '#55c8fe' },
{ offset: 0.3, color: '#4dbcf6' },
{ offset: 0.5, color: '#3ca3e6' },
{ offset: 0.7, color: '#3193db' },
{ offset: 1, color: '#2683d0' }
]
),
//刻度显示在顶部
label: {
show: true,
color: '#fff',
position: 'top'
}
},
},
data: data
}, {
type: 'pictorialBar',
symbol: 'rect',
symbolSize: [15, 2],
symbolMargin: 2,
symbolRepeat: true,
itemStyle: {
normal: {
color: '#101634'
}
},
tooltip: {
show: false
},
data: data
}]
echarts解决一些大屏图形配置方案汇总的更多相关文章
- php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结)
php面试题二--解决网站大流量高并发方案(从url到硬盘来解决高并发方案总结) 一.总结 从外到内解决网站大流量高并发问题---从提交一个url开始(从用户按下搜索栏回车键开始) url最开始会到d ...
- ECharts + Jquery 做大屏展示
HTML <!doctype html> <html> <head> <meta charset="utf-8"> <meta ...
- (转)解决Win7/8硬盘占用高方案汇总
写在前面 在Windows7时代,很少人会抱怨硬盘占用率高的问题.但是到了Windows7/8.1时,硬盘占用率成为一个扰人的问题.硬盘占用率经常100%会导致系统卡.慢,而且也很伤硬 ...
- MacbookPro15 2019 闪屏雪花现象方案汇总
1. 系统偏好设置,显示器,关闭 "自动调节亮度" "原彩显示",即取消勾选. 2. 系统偏好设置,节能,关闭 "自动切换图形卡模式",即取 ...
- 海量大数据大屏分析展示一步到位:DataWorks数据服务对接DataV最佳实践
1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com) 是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟 ...
- 15分钟构建超低成本数据大屏:DataV + DLA
第一步:准备低成本存储的业务数据和DLA表 OSS(https://www.aliyun.com/product/oss)是云上低成本数据存储的优选方案 DLA(https://www.aliyun. ...
- 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践
1. 概述 数据服务(https://ds-cn-shanghai.data.aliyun.com) 是DataWorks产品家族的一员,提供了快速将数据表生成API的能力,通过可视化的向导,一分钟“ ...
- 使用rem配置PC端自适应大屏
效果如下 使得大屏不论在什么宽高比例依然能展示全部数据 安装 npm install -S postcss-pxtorem rem配置思路 原先的rem函数是能解决大部分的问题的,如果展示不全,也可以 ...
- Qt编写数据可视化大屏界面电子看板2-配色方案
一.前言 做完整个数据可视化大屏界面电子看板系统后,为了提升点逼格,需要提供好几套默认的风格样式以供选择,这样用户可以选择自己喜欢的配色方案来作为整个系统的颜色方案,去看了下市面上大部分的大屏电子看板 ...
随机推荐
- 190221协程与IO模型
一.协程 又称微线程 协程是一种用户态的轻量级的线程 在单线程下实现的并发,例如:yield 优点: 无需线程上下文切换的开销 无需原子操作锁定及同步的开销 方便切换控制流,简化编程模型 高并发,高扩 ...
- 百度分享,简单的一步操作解决你的网站不支持https访问的问题!
百度分享,应该是目前最好用的前端分享插件了.然而,官方却没有支持https.现在越来越多的网站都走入https的安全加密队列了,那么在找不到更好地替代品的情况下,怎么能让它支持https呢? 答案当然 ...
- Win10 修改 开始 菜单样式..
因为不是平板,所以改成了这个样子 下面说步骤... 打开 菜单栏位置... 将快捷方式 拷贝到 里面 来... 快捷方式 以 #开头.是为了 让其排列在最前面.... 快捷方式有个技巧...快捷方式 ...
- clustalX2使用以及相关的问题
Clustalx的操作 第一步:输入序列文件. 第二步:设定比对的一些参数. 参数设定窗口. 第三步:开始序列比对. 第四步:比对完成,选择保存结果文件的格式 相关问题 CLUSTALX-是CLUST ...
- rest-assured的xmlPath使用方法总结
xmlPath的使用方法跟JsonPath的使用方法相近,下面简单总结一下: 准备xml文件数据: <records> <car name='HSV Maloo' make='Hol ...
- 基于 Pymsql 数据库连接池
helper.py import pymysql from settings import Config def connect(): conn = Config.POOL.connection() ...
- P3066 [USACO12DEC]逃跑的BarnRunning Away From (树上二分)
题意 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个. 树上二分.这个做法还是基于树上差分的,也就是对于每一个点uu,我们要找到它向上跳LL的长度最高能够跳到的祖先.(当 ...
- vue的props和$emit / 父子组件通信
props 父级: 父级组件中引用子组件,并将自己data下面的giveChild数据绑定在 giveChildData 传给子 <myChild :giveChildData=" ...
- POJ - 2676 暴搜 注意实现细节
经典sudoku问题 按部就班就好 一定要注意细节 大于1还是大于等于1 r c越界判断 judge时0的特判 blabla居然磨了2个小时 改了很多地方所以实现得有点冗余,反正能A吧 /*H E A ...
- 1093 字符串A+B (20 分)
给定两个字符串 A 和 B,本题要求你输出 A+B,即两个字符串的并集.要求先输出 A,再输出 B,但重复的字符必须被剔除. 输入格式: 输入在两行中分别给出 A 和 B,均为长度不超过 106 ...