echars 折线图配置

之前自学的时候也使用过echarts来制作柱状图,折线图,地图,现在想想那时候做的简直是太LOW了,就是简单的在官网上,模仿人家的示例代码,改改数据,就可以了,原生态的,样子果然是很丑。

在我们的项目中,我们自己封装了echarts指令,只用自己定义一下样式,然后调用数据接口,就可以了,这里先不多说封装指令了,现在先说说怎么调整样式

我自己写的一个代码为例,以折线图为例

一 . 问题汇总: 折线图问题与解决

折线图中的多条折线,怎么设置?

怎么设置echarts的背景颜色?

怎么设置X轴,Y轴的坐标线的颜色?

怎么将X轴的数据倾斜显示?

怎么让你的折线有弧度?

初始样式如图,以及要解决的问题:

我的博客地址 http://blog.zhouminghang.xyz

二.  前提准备条件

要使用echarts,首先要在你的页面中引入echarts.js;

要在.html文件中,设置一个容器,并给它设置宽高属性;

再次声明,必须给容器设置宽高,它是用来给画布提供一个空间,否则是不会显示的;

最后就是关于echarts的配置;

可以单独写一个js文件,然后引进来;

也可以直接在index.html中写一个 // 相关代码

index.html文件代码如下:

我这里图方便,js就直接写在html文件里了

// 获取到这个DOM节点,然后初始化varmyChart = echarts.init(document.getElementById("box"));// option 里面的内容基本涵盖你要画的图表的所有内容varoption = {// 定义样式和数据}// 一定不要忘了这个,具体是干啥的我忘了,官网是这样写的使用刚指定的配置项和数据显示图表。  myChart.setOption(option);

注意:

你在写myChart.setOption(option);这行代码的时候一定不要忘了这个myChart是要和你上面定义的var 变量名对应起来,比如var myChart = echarts.init(document.getElementById("box"));

举个栗子吧:

如果你定义的变量名是oMyChart,那你就这样写:

varoMyChart = echarts.init(document.getElementById("box"));varoption = {// 定义样式和数据}oMyChart.setOption(option);

关键内容都在option中

varoption = {                        backgroundColor:'#FBFBFB',                        tooltip : {                            trigger:'axis'},                        legend: {                            data:['充值','消费']                        },                        calculable :true,                        xAxis : [                            {                                axisLabel:{                                    rotate:30,                                    interval:0},                                axisLine:{                                  lineStyle :{                                      color:'#CECECE'}                                },                                type :'category',                                boundaryGap :false,                                data :function(){varlist= [];for(vari =10; i <=18; i++) {if(i<=12){list.push('2016-'+i +'-01');                                        }else{list.push('2017-'+(i-12) +'-01');                                        }                                    }returnlist;                                }()                            }                        ],                        yAxis : [                            {                                type :'value',                                axisLine:{                                    lineStyle :{                                        color:'#CECECE'}                                }                            }                        ],                        series : [                            {                                name:'充值',                                type:'line',                                symbol:'none',                                smooth:0.2,                                color:['#66AEDE'],                                data:[800,300,500,800,300,600,500,600]                            },                            {                                name:'消费',                                type:'line',                                symbol:'none',                                smooth:0.2,                                color:['#90EC7D'],                                data:[600,300,400,200,300,300,200,400]                            }                        ]                    };

三. 问题解决

3.1 怎么给echarts的容器添加背景色?

这是我碰到的第一个坑,你是不是和我一样,直接给容器添加了background-color属性,但是你会发现并没有什么卵用

代码如下:

效果如下:

我的博客地址 http://blog.zhouminghang.xyz

你会发现背景色应用不上,这里我自己认为,echarts画折线图什么的,就相当于是使用canvas在画图,它在画图前已经将画布初始化了,所以给容器添加背景色是不行的,那么怎么办呢?

解决办法:

要在optionecharts图的配置中进行配置,添加background-color属性;

为了区别,看看到底是给容器添加的背景色应用上了,还是option中的背景色应用上了;

我们设置容器背景为粉色,设置echarts中的option为#FBFBFB;

代码如下:

// 获取到这个DOM节点,然后初始化varmyChart = echarts.init(document.getElementById("box"));// option 里面的内容基本涵盖你要画的图表的所有内容// 定义样式和数据varoption = {// 给echarts图设置背景色backgroundColor:'#FBFBFB',// -----------> // 给echarts图设置背景色  tooltip: {trigger:'axis'},legend: {data: ['充值','消费']        },calculable:true,xAxis: [{type:'category',// boundaryGap: false,data:function(){varlist = [];for(vari =10; i

区别以及效果:

在这里我同时给容器添加背景色,在echarts配置中设置背景色,一会我们看看是哪个背景色作用上了,代码如下:

我的博客地址 http://blog.zhouminghang.xyz

很显然,配置里的背景色应用上了,所以直接给容器设置背景是行不通的,效果如图所示:

我的博客地址 http://blog.zhouminghang.xyz

3.2 怎么设置多条折线以及每条折线的颜色

在series中以数组形式添加多组数据即可;

在每条折线里面直接添加color: ['相应的颜色']

代码如下:

我的博客地址 http://blog.zhouminghang.xyz

效果图如下:

我的博客地址 http://blog.zhouminghang.xyz

3.3 去掉小圆点

设置symbol: 'none'

代码对比:

我的博客地址 http://blog.zhouminghang.xyz

效果对比:

我的博客地址 http://blog.zhouminghang.xyz

3.4 设置折线图的弧度

设置smooth属性

属性值在0-1之间

代码对比图:

我的博客地址 http://blog.zhouminghang.xyz

效果对比图:

我的博客地址 http://blog.zhouminghang.xyz

3.5 设置坐标轴的颜色

为了让效果颜色更加明显,就给坐标轴添加比较显眼的颜色,只做个示范用,项目中肯定不会用这么重的颜色,一般使用灰色系的颜色比较淡的

设置X轴颜色为红色

在xAxis下添加

axisLine: {lineStyle: {                    color:'red'}            },

同理设置Y轴

代码:

我的博客地址 http://blog.zhouminghang.xyz

效果图:

我的博客地址 http://blog.zhouminghang.xyz

3.6 怎么让折线图从X轴0刻度开始

设置boundaryGap: false,

代码如下:

我的博客地址 http://blog.zhouminghang.xyz

效果如下:

我的博客地址 http://blog.zhouminghang.xyz

3.7 怎么让X轴的时间这组数据旋转

有时候我们X轴数据比较长又比较多的时候,水平放置肯定成不下,那我们就让它倾斜着放,这样就可以放更多的数据。

好了,废话不多说,看代码:

我的博客地址 http://blog.zhouminghang.xyz

效果如图:

我的博客地址 http://blog.zhouminghang.xyz

四.  突然发现我写的有个小问题,少了一组数据,很尴尬的赶脚

你可以直接在data中添加一组数据

哈哈,我比较懒,就直接修改那个判断条件,将i<=18改成i<18;

完整的代码如下:

// 获取到这个DOM节点,然后初始化varmyChart = echarts.init(document.getElementById("box"));// option 里面的内容基本涵盖你要画的图表的所有内容varoption = {// 定义样式和数据backgroundColor:'#FBFBFB',tooltip: {trigger:'axis'},legend: {data: ['充值','消费']        },calculable:true,xAxis: [{axisLabel: {rotate:30,interval:0},axisLine: {lineStyle: {color:'red'}            },type:'category',boundaryGap:false,data:function(){varlist = [];for(vari =10; i

效果如图:

链接:https://www.jianshu.com/p/8cac22daca98

來源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,723评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,080评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,604评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,440评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,431评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,499评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,893评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,541评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,751评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,547评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,619评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,320评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,890评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,896评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,137评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,796评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,335评论 2 342

推荐阅读更多精彩内容