热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ECharts折线图堆叠设置方法及配置详解

一.问题汇总:折线图问题与解决折线图中的多条折线,怎么设置?怎么设置echarts的背景颜色?怎么设置X轴,Y

一 . 问题汇总: 折线图问题与解决折线图中的多条折线,怎么设置?

怎么设置echarts的背景颜色?

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

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

怎么让你的折线有弧度?

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

二. 前提准备条件要使用echarts,首先要在你的页面中引入echarts.js;

要在.html文件中,设置一个容器,并给它设置宽高属性;再次声明,必须给容器设置宽高,它是用来给画布提供一个空间,否则是不会显示的;

最后就是关于echarts的配置;可以单独写一个js文件,然后引进来;

也可以直接在index.html中写一个

index.html文件代码如下:

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

// 获取到这个DOM节点,然后初始化

var myChart = echarts.init(document.getElementById("box"));

// option 里面的内容基本涵盖你要画的图表的所有内容

var option = {

// 定义样式和数据

}

// 一定不要忘了这个,具体是干啥的我忘了,官网是这样写的使用刚指定的配置项和数据显示图表。

myChart.setOption(option);

注意:

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

举个栗子吧:

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

var oMyChart = echarts.init(document.getElementById("box"));

var option = {

// 定义样式和数据 }

oMyChart.setOption(option);

关键内容都在option中:

var option = {

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 (){

var list = [];

for (var i &#61; 10; i <&#61; 18; i&#43;&#43;) {

if(i<&#61; 12){

list.push(&#39;2016-&#39;&#43;i &#43; &#39;-01&#39;);

}else{

list.push(&#39;2017-&#39;&#43;(i-12) &#43; &#39;-01&#39;);

}

}

return list;

}()

}

],

yAxis : [

{

type : &#39;value&#39;,

axisLine:{

lineStyle :{

color: &#39;#CECECE&#39;

}

}

}

],

series : [

{

name:&#39;充值&#39;,

type:&#39;line&#39;,

symbol:&#39;none&#39;,

smooth: 0.2,

color:[&#39;#66AEDE&#39;],

data:[800, 300, 500, 800, 300, 600,500,600]

},

{

name:&#39;消费&#39;,

type:&#39;line&#39;,

symbol:&#39;none&#39;,

smooth: 0.2,

color:[&#39;#90EC7D&#39;],

data:[600, 300, 400, 200, 300, 300,200,400]

}

]

};

三. 问题解决

3.1 怎么给echarts的容器添加背景色&#xff1f;

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

代码如下&#xff1a;

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

解决办法&#xff1a;要在optionecharts图的配置中进行配置&#xff0c;添加background-color属性&#xff1b;

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

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

代码如下&#xff1a;

// 获取到这个DOM节点&#xff0c;然后初始化

var myChart &#61; echarts.init(document.getElementById("box"));

// option 里面的内容基本涵盖你要画的图表的所有内容 // 定义样式和数据 var option &#61; {

// 给echarts图设置背景色 backgroundColor: &#39;#FBFBFB&#39;, // -----------> // 给echarts图设置背景色 tooltip: {

trigger: &#39;axis&#39;

},

legend: {

data: [&#39;充值&#39;, &#39;消费&#39;]

},

calculable: true,

xAxis: [{

type: &#39;category&#39;,

// boundaryGap: false, data: function() {

var list &#61; [];

for (var i &#61; 10; i <&#61; 18; i&#43;&#43;) {

if (i <&#61; 12) {

list.push(&#39;2016-&#39; &#43; i &#43; &#39;-01&#39;);

} else {

list.push(&#39;2017-&#39; &#43; (i - 12) &#43; &#39;-01&#39;);

}

}

return list;

}()

}],

yAxis: [{

type: &#39;value&#39;

}],

series: [{

name: &#39;充值&#39;,

type: &#39;line&#39;,

data: [800, 300, 500, 800, 300, 600, 500, 600]

}, {

name: &#39;消费&#39;,

type: &#39;line&#39;,

data: [600, 300, 400, 200, 300, 300, 200, 400]

}]

};

// 一定不要忘了这个&#xff0c;具体是干啥的我忘了&#xff0c;官网是这样写的使用刚指定的配置项和数据显示图表。 myChart.setOption(option);

区别以及效果&#xff1a;在这里我同时给容器添加背景色&#xff0c;在echarts配置中设置背景色&#xff0c;一会我们看看是哪个背景色作用上了&#xff0c;代码如下&#xff1a;很显然&#xff0c;配置里的背景色应用上了&#xff0c;所以直接给容器设置背景是行不通的&#xff0c;效果如图所示&#xff1a;

3.2 怎么设置多条折线以及每条折线的颜色在series中以数组形式添加多组数据即可&#xff1b;

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

代码如下&#xff1a;

效果图如下&#xff1a;

3.3 去掉小圆点设置symbol: &#39;none&#39;

代码对比&#xff1a;

效果对比&#xff1a;

3.4 设置折线图的弧度设置smooth属性

属性值在0-1之间

代码对比图&#xff1a;

效果对比图&#xff1a;

3.5 设置坐标轴的颜色

为了让效果颜色更加明显&#xff0c;就给坐标轴添加比较显眼的颜色&#xff0c;只做个示范用&#xff0c;项目中肯定不会用这么重的颜色&#xff0c;一般使用灰色系的颜色比较淡的设置X轴颜色为红色在xAxis下添加

axisLine: {

lineStyle: {

color: &#39;red&#39;

}

},同理设置Y轴

代码&#xff1a;

效果图&#xff1a;

3.6 怎么让折线图从X轴0刻度开始设置boundaryGap: false,

代码如下&#xff1a;

效果如下&#xff1a;

3.7 怎么让X轴的时间这组数据旋转有时候我们X轴数据比较长又比较多的时候&#xff0c;水平放置肯定成不下&#xff0c;那我们就让它倾斜着放&#xff0c;这样就可以放更多的数据。

好了&#xff0c;废话不多说&#xff0c;看代码&#xff1a;

效果如图&#xff1a;

四. 突然发现我写的有个小问题&#xff0c;少了一组数据&#xff0c;很尴尬的赶脚你可以直接在data中添加一组数据

哈哈&#xff0c;我比较懒&#xff0c;就直接修改那个判断条件&#xff0c;将i<&#61;18改成i<18;

完整的代码如下&#xff1a;

// 获取到这个DOM节点&#xff0c;然后初始化

var myChart &#61; echarts.init(document.getElementById("box"));

// option 里面的内容基本涵盖你要画的图表的所有内容 var option &#61; {

// 定义样式和数据 backgroundColor: &#39;#FBFBFB&#39;,

tooltip: {

trigger: &#39;axis&#39;

},

legend: {

data: [&#39;充值&#39;, &#39;消费&#39;]

},

calculable: true,

xAxis: [{

axisLabel: {

rotate: 30,

interval: 0

},

axisLine: {

lineStyle: {

color: &#39;red&#39;

}

},

type: &#39;category&#39;,

boundaryGap: false,

data: function() {

var list &#61; [];

for (var i &#61; 10; i <18; i&#43;&#43;) {

if (i <&#61; 12) {

list.push(&#39;2016-&#39; &#43; i &#43; &#39;-01&#39;);

} else {

list.push(&#39;2017-&#39; &#43; (i - 12) &#43; &#39;-01&#39;);

}

}

return list;

}()

}],

yAxis: [{

type: &#39;value&#39;,

axisLine: {

lineStyle: {

color: &#39;#CECECE&#39;

}

}

}],

series: [{

name: &#39;充值&#39;,

type: &#39;line&#39;,

symbol: &#39;none&#39;,

smooth: 0.3,

color: [&#39;#66AEDE&#39;],

data: [800, 300, 500, 800, 300, 600, 500, 600]

}, {

name: &#39;消费&#39;,

type: &#39;line&#39;,

symbol: &#39;none&#39;,

smooth: 0.3,

color: [&#39;#90EC7D&#39;],

data: [600, 300, 400, 200, 300, 300, 200, 400]

}]

};

// 一定不要忘了这个&#xff0c;具体是干啥的我忘了&#xff0c;官网是这样写的使用刚指定的配置项和数据显示图表。 myChart.setOption(option);

效果如图&#xff1a;

五. 鼠标放在折线上&#xff0c;显示该折点的数据

在series中添加itemStyle : { normal: {label : {show: true}}},

效果如下&#xff1a;

注&#xff1a;鼠标不放在上面是不会显示该点数据的。

折点数据 设置背景色

在series中添加样式

我在echarts 官方demo上加了一下&#xff0c;效果如下&#xff1a;

把以下代码&#xff0c;放到echarts的一个demo下&#xff0c;替换之后&#xff0c;运行可查看效果&#xff1a;

地址简书​links.jianshu.com

option &#61; {

title: {

text: &#39;未来一周气温变化&#39;,

subtext: &#39;纯属虚构&#39;

},

tooltip: {

trigger: &#39;axis&#39;

},

legend: {

data:[&#39;最高气温&#39;,&#39;最低气温&#39;]

},

toolbox: {

show: true,

feature: {

dataZoom: {

yAxisIndex: &#39;none&#39;

},

dataView: {readOnly: false},

magicType: {type: [&#39;line&#39;, &#39;bar&#39;]},

restore: {},

saveAsImage: {}

}

},

xAxis: {

type: &#39;category&#39;,

boundaryGap: false,

data: [&#39;周一&#39;,&#39;周二&#39;,&#39;周三&#39;,&#39;周四&#39;,&#39;周五&#39;,&#39;周六&#39;,&#39;周日&#39;]

},

yAxis: {

type: &#39;value&#39;,

axisLabel: {

formatter: &#39;{value} °C&#39;

}

},

series: [

{

name:&#39;最高气温&#39;,

type:&#39;line&#39;,

data:[11, 11, 15, 13, 12, 13, 10],

itemStyle : { normal: {

label : {show: true,color:&#39;white&#39;,backgroundColor:&#39;black&#39;}

}},

markPoint: {

data: [

{type: &#39;max&#39;, name: &#39;最大值&#39;},

{type: &#39;min&#39;, name: &#39;最小值&#39;}

]

},

markLine: {

data: [

{type: &#39;average&#39;, name: &#39;平均值&#39;}

]

}

},

{

name:&#39;最低气温&#39;,

type:&#39;line&#39;,

data:[1, -2, 2, 5, 3, 2, 0],

markPoint: {

data: [

{name: &#39;周最低&#39;, value: -2, xAxis: 1, yAxis: -1.5}

]

},

markLine: {

data: [

{type: &#39;average&#39;, name: &#39;平均值&#39;},

[{

symbol: &#39;none&#39;,

x: &#39;90%&#39;,

yAxis: &#39;max&#39;

}, {

symbol: &#39;circle&#39;,

label: {

normal: {

position: &#39;start&#39;,

formatter: &#39;最大值&#39;

}

},

type: &#39;max&#39;,

name: &#39;最高点&#39;

}]

]

}

}

]

};



推荐阅读
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 本文探讨了在 SQL Server 中使用 JDBC 插入数据时遇到的问题。通过详细分析代码和数据库配置,提供了解决方案并解释了潜在的原因。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • CSS高级技巧:动态高亮当前页面导航
    本文介绍了如何使用CSS实现网站导航栏中当前页面的高亮显示,提升用户体验。通过为每个页面的body元素添加特定ID,并结合导航项的类名,可以轻松实现这一功能。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 深入解析动态代理模式:23种设计模式之三
    在设计模式中,动态代理模式是应用最为广泛的一种代理模式。它允许我们在运行时动态创建代理对象,并在调用方法时进行增强处理。本文将详细介绍动态代理的实现机制及其应用场景。 ... [详细]
  • 深入解析ESFramework中的AgileTcp组件
    本文详细介绍了ESFramework框架中AgileTcp组件的设计与实现。AgileTcp是ESFramework提供的ITcp接口的高效实现,旨在优化TCP通信的性能和结构清晰度。 ... [详细]
  • 本文介绍了一种基于选择排序思想的高效排序方法——堆排序。通过使用堆数据结构,堆排序能够在每次查找最大元素时显著提高效率。文章详细描述了堆排序的工作原理,并提供了完整的C语言代码实现。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文探讨了如何利用HTML5和JavaScript在浏览器中进行本地文件的读取和写入操作,并介绍了获取本地文件路径的方法。HTML5提供了一系列API,使得这些操作变得更加简便和安全。 ... [详细]
  • Django 使用slug field时遇到的问题 ... [详细]
  • 本文详细介绍了C语言中的基本数据类型,包括整型、浮点型、字符型及其各自的子类型,并探讨了这些类型在不同编译环境下的表现。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 本文详细探讨了 PHP 中常见的 '未定义索引' 错误,包括其原因、解决方案及最佳实践。通过实例和代码片段,帮助开发者更好地理解和处理这一常见问题。 ... [详细]
author-avatar
潮人-小麦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有