ECharts 复杂折线图示例
创作时间:
作者:
@小白创作中心
ECharts 复杂折线图示例
引用
CSDN
1.
https://m.blog.csdn.net/qq_22182989/article/details/145370011
本文将详细介绍如何使用ECharts实现复杂的自定义折线图,并添加丰富的样式和交互功能。通过本文的学习,你将掌握如何实现一个美观且功能丰富的数据可视化图表。
复杂折线图简介
复杂折线图通常包含多个数据系列、自定义样式、交互功能(如数据区域缩放、提示框等)。它适合展示多维数据的趋势和对比情况,常用于金融、统计、监控等领域。
实现步骤
1. 初始化 ECharts 实例
首先,我们需要初始化一个 ECharts 实例,并绑定到一个 DOM 容器上。
var myChart = echarts.init(document.getElementById('main'));
2. 配置标题与副标题
通过 title 配置项,我们可以为图表添加标题和副标题。
title: {
text: '复杂折线图示例', // 主标题
subtext: '多系列折线图', // 副标题
left: 'center' // 标题居中
}
3. 配置提示框(Tooltip)
通过 tooltip 配置项,我们可以设置鼠标悬停时的提示框内容。
tooltip: {
trigger: 'axis', // 触发类型为坐标轴
axisPointer: {
type: 'line' // 指示器类型为直线
},
formatter: function(params) {
var result = params[0].name + '<br>'; // 提示框标题
params.forEach(function(item) {
result += item.marker + ' ' + item.seriesName + ': ' + item.value + '<br>'; // 提示框内容
});
return result;
}
}
4. 配置图例(Legend)
通过 legend 配置项,我们可以设置图例的位置和数据。
legend: {
data: ['系列1', '系列2', '系列3'], // 图例数据
left: '10%', // 图例位置
top: '10%' // 图例位置
}
5. 配置工具箱(Toolbox)
通过 toolbox 配置项,我们可以添加工具箱,支持数据视图、保存图片等功能。
toolbox: {
show: true, // 显示工具箱
feature: {
dataZoom: { // 数据区域缩放
yAxisIndex: 'none' // 不关联 Y 轴
},
restore: { show: true }, // 显示还原按钮
saveAsImage: { show: true } // 显示保存图片按钮
}
}
6. 配置 X 轴与 Y 轴
通过 xAxis 和 yAxis 配置项,我们可以设置 X 轴和 Y 轴的样式和数据。
xAxis: {
type: 'category', // X 轴类型为类目轴
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月'], // X 轴数据
boundaryGap: false // 不留空白
},
yAxis: {
type: 'value', // Y 轴类型为数值轴
splitLine: {
show: true // 显示分割线
}
}
7. 配置数据系列(Series)
通过 series 配置项,我们可以添加多个数据系列。每个系列可以设置不同的类型、样式等。
折线图系列
{
name: '系列1', // 系列名称
type: 'line', // 图表类型为折线图
data: [120, 132, 101, 134, 90, 230, 210], // 数据内容
itemStyle: {
color: '#5470C6' // 折线颜色
},
lineStyle: {
width: 3 // 折线宽度
},
symbol: 'circle', // 数据点形状为圆形
symbolSize: 10 // 数据点大小
}
区域填充系列
{
name: '系列2', // 系列名称
type: 'line', // 图表类型为折线图
data: [220, 182, 191, 234, 290, 330, 310], // 数据内容
areaStyle: { // 区域填充样式
color: 'rgba(145, 204, 117, 0.5)' // 填充颜色
},
lineStyle: {
width: 2 // 折线宽度
},
symbol: 'rect', // 数据点形状为矩形
symbolSize: 12 // 数据点大小
}
自定义样式与交互
1. 自定义折线颜色与样式
通过 itemStyle 和 lineStyle 配置项,我们可以自定义折线的颜色和样式。
itemStyle: {
color: '#EE6666' // 折线颜色
},
lineStyle: {
width: 4, // 折线宽度
type: 'dashed' // 折线类型为虚线
}
2. 自定义数据点样式
通过 symbol 和 symbolSize 配置项,我们可以自定义数据点的形状和大小。
symbol: 'triangle', // 数据点形状为三角形
symbolSize: 14 // 数据点大小
3. 添加动画效果
通过 animation 和 animationDuration 配置项,我们可以为图表添加动画效果。
animation: true, // 开启动画
animationDuration: 1000, // 动画时长 1000ms
animationEasing: 'cubicInOut' // 动画缓动效果
4. 添加数据区域缩放
通过 dataZoom 配置项,我们可以添加数据区域缩放功能。
dataZoom: [
{
type: 'inside', // 内置型数据区域缩放
start: 0, // 初始缩放范围
end: 100 // 初始缩放范围
},
{
type: 'slider', // 滑动条型数据区域缩放
start: 0, // 初始缩放范围
end: 100 // 初始缩放范围
}
]
完整代码示例(带详细注释)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ECharts 复杂折线图示例</title>
<!-- 引入 ECharts 的 CDN 文件 -->
<script src="https://cdn.jsdelivr.net/npm/echarts@5.3.2/dist/echarts.min.js"></script>
</head>
<body>
<!-- 创建一个 div 容器,用于放置 ECharts 图表 -->
<div id="main" style="width: 1000px;height:600px;"></div>
<script>
// 初始化 ECharts 实例,绑定到 id 为 'main' 的 DOM 元素上
var myChart = echarts.init(document.getElementById('main'));
// 配置项
var option = {
// 标题配置
title: {
text: '复杂折线图示例', // 主标题
subtext: '多系列折线图', // 副标题
left: 'center' // 标题居中
},
// 提示框配置
tooltip: {
trigger: 'axis', // 触发类型为坐标轴
axisPointer: {
type: 'line' // 指示器类型为直线
},
formatter: function(params) {
var result = params[0].name + '<br>'; // 提示框标题
params.forEach(function(item) {
result += item.marker + ' ' + item.seriesName + ': ' + item.value + '<br>'; // 提示框内容
});
return result;
}
},
// 图例配置
legend: {
data: ['系列1', '系列2', '系列3'], // 图例数据
left: '10%', // 图例位置
top: '10%' // 图例位置
},
// 工具箱配置
toolbox: {
show: true, // 显示工具箱
feature: {
dataZoom: { // 数据区域缩放
yAxisIndex: 'none' // 不关联 Y 轴
},
restore: { show: true }, // 显示还原按钮
saveAsImage: { show: true } // 显示保存图片按钮
}
},
// X 轴配置
xAxis: {
type: 'category', // X 轴类型为类目轴
data: ['1月', '2月', '3月', '4月', '5月', '6月', '7月'], // X 轴数据
boundaryGap: false // 不留空白
},
// Y 轴配置
yAxis: {
type: 'value', // Y 轴类型为数值轴
splitLine: {
show: true // 显示分割线
}
},
// 数据系列配置
series: [
{
name: '系列1', // 系列名称
type: 'line', // 图表类型为折线图
data: [120, 132, 101, 134, 90, 230, 210], // 数据内容
itemStyle: {
color: '#5470C6' // 折线颜色
},
lineStyle: {
width: 3 // 折线宽度
},
symbol: 'circle', // 数据点形状为圆形
symbolSize: 10 // 数据点大小
},
{
name: '系列2', // 系列名称
type: 'line', // 图表类型为折线图
data: [220, 182, 191, 234, 290, 330, 310], // 数据内容
areaStyle: { // 区域填充样式
color: 'rgba(145, 204, 117, 0.5)' // 填充颜色
},
lineStyle: {
width: 2 // 折线宽度
},
symbol: 'rect', // 数据点形状为矩形
symbolSize: 12 // 数据点大小
},
{
name: '系列3', // 系列名称
type: 'line', // 图表类型为折线图
data: [150, 232, 201, 154, 190, 330, 410], // 数据内容
itemStyle: {
color: '#EE6666' // 折线颜色
},
lineStyle: {
width: 4, // 折线宽度
type: 'dashed' // 折线类型为虚线
},
symbol: 'triangle', // 数据点形状为三角形
symbolSize: 14 // 数据点大小
}
],
// 数据区域缩放配置
dataZoom: [
{
type: 'inside', // 内置型数据区域缩放
start: 0, // 初始缩放范围
end: 100 // 初始缩放范围
},
{
type: 'slider', // 滑动条型数据区域缩放
start: 0, // 初始缩放范围
end: 100 // 初始缩放范围
}
],
// 动画配置
animation: true, // 开启动画
animationDuration: 1000, // 动画时长 1000ms
animationEasing: 'cubicInOut' // 动画缓动效果
};
// 将配置项应用到图表中,渲染图表
myChart.setOption(option);
</script>
</body>
</html>
总结
通过本文的学习,你应该已经掌握了如何使用 ECharts 实现复杂的自定义折线图,并添加丰富的样式和交互功能。折线图适合展示数据的变化趋势,能够为你的数据可视化项目增添更多可能性。希望这篇教程对你有所帮助!
热门推荐
我生古人后,乃见古人未见书:《群经单疏古钞本丛刊》出版
宋旻浩涉嫌逃避兵役:或面临有期徒刑,韩媒详解兵役制度
两只小猪的故事
济南到泰山,哪种出行方式最适合你?
二手车买卖又出新规,新政策太方便了,不知道的赶紧了解一下
重庆到北京火车票仅44元,业内人士:对部分非紧张时段和方向实行优惠票价
芝士100克营养价值全解析:高蛋白、高钙、高热量,如何健康食用?
项目经理解释错误怎么办
茶晶的功效与作用,茶晶对人体的好处
2025年低成本移民欧洲全攻略,政策窗口的最后机会!
眼镜材质:如何选择最适合你的那一款
咖啡烘焙--如何决定入豆温度
文案中如何使用心理学技巧打动读者
订单流交易说明:您需要了解的一切
颍川陈氏家谱字辈大全:一个家族的历史传承与文化积淀
深圳能否超越上海?从经济、科技到城市规划的全方位解析
身体缺钾时,容易出现不适感,若是有这4个表现,一定及时补充
美式复古家居设计全解析:从色彩搭配到细节打造,教你轻松营造经典温馨家居
高考志愿填报如何避免被高校调剂到不喜欢的专业中去?
如何利用社交媒体拓展职业网络
头皮损伤的治疗原则
瘦≠健康 体重管理要避开这些认知误区
头皮健康关键与日常保养攻略:全方位饮食与生活习性指引
利率变动如何影响外汇市场?这种影响有哪些具体表现?
无籽西瓜是怎么来的?我种过西瓜,我来告诉大家真相
筏板基础施工技术详解:从概念到施工要点
“猫猫运动方程”首次被科学家破解,登上《美国物理学杂志》
什么是红眼病?症状、病因及治疗方法全解析
新手必看:剐蹭事故后的正确处理五步法
ELK企业级日志分析系统(分布式文件系统与企业级应用)