echarts图表两种下载图片的方法:
1.使用 toolbox里saveAsImage方法;
2.使用getDataURL方法获取base64图片,然后下载图片。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts</title>
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
</head>
<body>
<div id="app">
<el-button type="primary" size="small" style="margin-bottom: 30px;" @click="downloadChart">下载echarts图片
</el-button>
<div id="main" style="width: 600px;height:400px;"></div>
</div>
<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.13/vue.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script src="https://cdn.bootcss.com/echarts/4.7.0/echarts-en.js"></script>
<script>
new Vue({
el: "#app",
data() {
return {
myChart: null
}
},
methods: {
downloadUrlFile(url, fileName) {
const a = document.createElement('a')
document.body.appendChild(a)
a.style = 'display: none'
a.href = url
if (fileName) {
a.download = fileName
}
a.click()
window.URL.revokeObjectURL(url)
},
downloadChart() {
// 获取base64图片
const chartImgUrl = this.myChart.getDataURL({
pixelRatio: 2,
backgroundColor: '#fff'
})
console.log(chartImgUrl)
// 下载base64图片
this.downloadUrlFile(chartImgUrl, 'ECharts 2倍图')
}
},
mounted() {
// 基于准备好的dom,初始化echarts实例
this.myChart = echarts.init(document.getElementById('main'));
// 指定图表的配置项和数据
var option = {
color: ['#0099ff', '#bbbbbb'],
title: {
text: 'ECharts 示例'
},
tooltip: {},
legend: {
data: ['已到', '未到']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
data: ["渠道one", "渠道two", "渠道three", "渠道four", "渠道five", "渠道six"]
},
yAxis: [{
type: 'value'
}],
series: [{
name: '已到',
type: 'bar',
stack: '渠道',
data: [10, 20, 32, 10, 14, 28]
},
{
name: '未到',
type: 'bar',
stack: '渠道',
data: [5, 10, 26, 8, 10, 20]
}
]
};
// 使用刚指定的配置项和数据显示图表。
this.myChart.setOption(option);
}
})
</script>
</body>
</html>
网友评论