echarts 折线图、饼状图、圆环图应用总结
这篇博客次要记录咱们应用罕用图表时,常常遇到的一些问题,这些问题是在 echarts demo 上没有写到的,具体具体的代码,请看这篇博客 demo 的源码,每个配置都有具体的正文。
点这里查看 demo 成果
绘制图表
获取 echarts 有好几种形式:
- 应用 npm 或者 yarn 下载
- 应用 cdn 引入
- 间接把对应的 js 代码拷贝到我的项目中
咱们在理论我的项目开发中能够依据我的项目须要在线定制所须要的图标性能,如图:
我这里为了不便间接应用 cdn 引入,代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- 引入 ECharts 文件 -->
<script src="https://cdn.bootcss.com/echarts/4.2.0-rc.2/echarts.min.js"></script>
</head>
<body>
<!-- 为 ECharts 筹备一个具备大小(宽高)的 Dom -->
<div id="main" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于筹备好的 dom,初始化 echarts 实例
var myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
title: {text: 'ECharts 入门示例'},
tooltip: {},
legend: {data:['销量']
},
xAxis: {data: ["衬衫","羊毛衫","雪纺衫","裤子","高跟鞋","袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
};
// 应用刚指定的配置项和数据显示图表。myChart.setOption(option);
</script>
</body>
</html>
图表中罕用的配置参数
- title: 配置题目组件,蕴含主题目和副标题
- legend: 配置图例组件
- grid: 配置直角坐标系内绘图网格
- xAxis: 直角坐标系 grid 中的 x 轴
- yAxis: 直角坐标系 grid 中的 y 轴
- tooltip: 配置提示框组件
- series: 配置系列列表。每个系列通过 type 决定本人的图表类型,比方,line(折线图)、pie(饼状图)等等
- color: 配置调色盘色彩列表。如果系列没有设置色彩,则会顺次循环从该列表中取色彩作为系列色彩
- graphic: 配置原生图形元素组件,比方文本块、增加水印等
每个配置具体细节详见配置项
绘制图表常常遇到的问题
最根本的性能就不具体解说了,间接看 api 文档配置项或者图表 demo 就能够了
echarts 折线图四周空白区域解决
咱们在绘制折线图的时候常常会遇到折线图四周的空白区域太大了,这是咱们须要进行配置,让放大折线图四周的空白区域,具体代码如下:
var option = {
grid: { // 直角坐标系内绘图网格,单个 grid 内最多能够搁置高低两个 X 轴,左右两个 Y 轴。show: true, // 是否显示直角坐标系网格
borderWidth: 0, // 网格的边框线宽
borderColor: '#fff', // 网格的边框色彩
backgroundColor: '#CCF0F7', // 网格背景色
// 也能够应用 top,left,right,bottom
x: 50, // 图表 canvas 距左上角 x 轴的间隔
y: 30, // 图表 canvas 距左上角 y 轴的间隔
x2: 30, // 图表 canvas 距右下角 x 轴的间隔
y2: 40, // 图表 canvas 距右下角 y 轴的间隔
},
}
成果如图:
给 echarts 图标增加文本块或者水印
咱们绘制图表时,常常会增加一些文本块或者水印,比方下面的折线图给特定月份增加节日,以及上面的圆环图减少文本块,具体配置代码如下:
var option = {
graphic: { // graphic 是原生图形元素组件
type: 'text', // 一个图形元素,类型是 text
top: 'center',
left: 'center',
style: {
text: '区域占比 \n\n' + '9.18%',
textAlign: 'center',
fontSize: 22,
}
},
}
成果如图:
echarts 图表标签文本超长展现不全或者重叠解决
挪动端在绘制饼状图表时,常常会遇到图表标签文本太长展现不下或者标签重叠在一起等问题,解决这个问题有以下几种解决方案:
- 调整标签文字的大小,以展现更多文字
- 放大饼状图的大小
- 缩短标签文本视觉疏导线长度
- 饼状图或者圆环图设置扇形区域最小角度
minAngle
,最小的扇区角度(0 ~ 360),同时能够避免某个值过小导致扇区太小影响交互。 - 应用
formatter
标签文本内容格局器,反对字符串模板和回调函数两种模式,字符串模板与回调函数返回的字符串均反对用\n
换行
具体配置代码如下:
var option = {
series: [
{
name: '服务类型占比',
type: 'pie',
radius: '50%',
center: ['50%', '50%'],
silent: true, // 图形是否不响应和触发鼠标事件,默认为 false,即响应和触发鼠标事件。minAngle: 30, // 最小的扇区角度(0 ~ 360),用于避免某个值过小导致扇区太小影响交互。avoidLabelOverlap: true, // 是否启用避免标签重叠策略
label: { // 饼图图形上的文本标签,可用于阐明图形的一些数据信息,比方值,名称等
show: true, // 是否显示文本标签
// formatter: '{b} {d}%', // 文本标签格局
formatter: function (params) {
// 类目名长度大于 5
if (params.name.length >= 5) {return params.name + '\n' + params.value + '%';} else {return params.name + params.value + '%';}
}, // 文本标签格局
color: '#333', // 文本标签字体色彩
align: 'left', // 文字水平对齐形式,默认主动
fontSize: 22,
},
labelLine: { // 标签文本疏导线款式
show: true,
length: 10, // 视觉疏导线第一段的长度
length2: 10, // 视觉疏导线第二段的长度
// lineStyle: {
// width: 2
// }
},
}
]
}
成果如图:
以上就是我的项目中应用 echarts 图表遇到的一些问题总结,更具体的配置能够参考 demo 源码,如图:
本文由 mdnice 多平台公布