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多平台公布