用html和任意框架写出折线图可以放大缩小自由切换柱形折线形
时间: 2024-03-19 21:43:19 浏览: 98
一款html折线统计图
好的,我可以为你提供一个使用 echarts.js 框架实现的折线图,可以自由切换柱形和折线形,并且支持放大缩小功能。以下是代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>折线图/柱形图切换</title>
<!-- 引入 echarts.js -->
<script src="https://cdn.staticfile.org/echarts/4.7.0/echarts.min.js"></script>
</head>
<body>
<div id="chart" style="width: 800px;height:400px;"></div>
<button onclick="toggleChart()">切换图形</button>
<script type="text/javascript">
// 初始化 echarts 实例
var chart = echarts.init(document.getElementById('chart'));
// 定义折线图和柱形图的数据
var lineData = [120, 132, 101, 134, 90, 230, 210];
var barData = [220, 182, 191, 234, 290, 330, 310];
// 配置折线图和柱形图的样式
var option = {
title: {
text: '折线图/柱形图切换'
},
tooltip: {},
xAxis: {
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {},
series: [{
name: '折线图',
type: 'line',
data: lineData
}, {
name: '柱形图',
type: 'bar',
data: barData
}]
};
// 将配置项设置到 echarts 实例中
chart.setOption(option);
// 定义切换图形的函数
function toggleChart() {
// 判断当前图形类型
var currentType = chart.getOption().series[0].type;
if (currentType === 'line') {
// 切换到柱形图
chart.setOption({
series: [{
name: '柱形图',
type: 'bar',
data: barData
}]
});
} else {
// 切换到折线图
chart.setOption({
series: [{
name: '折线图',
type: 'line',
data: lineData
}]
});
}
}
// 添加放大缩小功能
chart.on('dblclick', function() {
var zoom = chart.getOption().dataZoom[0];
if (zoom.start === 0 && zoom.end === 100) {
chart.setOption({
dataZoom: {
start: 0,
end: 50
}
});
} else {
chart.setOption({
dataZoom: {
start: 0,
end: 100
}
});
}
});
</script>
</body>
</html>
```
在这个示例中,我们使用了 echarts.js 框架来绘制折线图和柱形图,并且通过切换 series 中的 type 属性来实现折线图和柱形图的切换。同时,我们还使用了 echarts 的 dataZoom 组件来实现图形的放大缩小功能。
阅读全文