### 实现 Vue 项目中带有多个 Y 轴的 Echarts 折线图和柱状图
#### 配置环境
为了在 Vue 项目中集成 ECharts 并创建带有多 Y 轴的图表,首先需要安装 `echarts` 和 `vue-echarts` 插件。
```bash
npm install echarts vue-echarts
```
#### 创建组件结构
定义一个新的 Vue 组件用于展示图表:
```html
<template>
<v-chart :options="chartOptions" />
</template>
<script>
import ECharts from 'vue-echarts'
import 'echarts'
export default {
components: {
'v-chart': ECharts,
},
data() {
return {
chartOptions: {}
}
},
}
</script>
```
#### 设置多 Y 轴配置
对于折线图与柱状图混合使用的场景,可以设置两个不同的 y 轴,并通过 series 的 yAxisIndex 属性指明数据系列对应的坐标系索引[^3]。
以下是具体的配置实例:
```javascript
data() {
return {
chartOptions: {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
legend: {
selectedMode: false,
data: ['温度/℃', '雨量/mm'],
right: '20px',
top: '20px',
textStyle: {
color: '#fff',
fontWeight: 'lighter'
}
},
grid: {
top: '5%',
bottom: '5%',
left: 0,
right: 0
},
xAxis: [{
type: 'category',
boundaryGap: false,
axisLine: {lineStyle: {color: '#fff'}},
axisTick: {show: false},
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"]
}],
yAxis: [
{
name: '温度 (°C)',
type: 'value',
position: 'left',
min: 0,
max: 100,
interval: 20,
axisLabel: {
formatter: '{value} °C'
}
},
{
name: '降雨量 (mm)',
type: 'value',
position: 'right',
min: 0,
max: 250,
interval: 50,
offset: 80,
axisLabel: {
formatter: '{value} mm'
}
}
],
series: [
{
name:'温度/℃',
type:'bar',// 柱状图
barWidth: '60%', // 定义宽度
itemStyle:{
normal:{label:{show:true}}
},
data:[2.0, 4.9, 7.0, 23.2, 25.6, 76.7, 135.6],
yAxisIndex: 0 // 使用左侧Y轴
},
{
name:'雨量/mm',
type:'line',// 折线图
data:[2.6, 5.9, 9.0, 26.4, 28.7, 70.7, 175.6],
yAxisIndex: 1 // 使用右侧Y轴
}
]
}
};
}
```
此段代码展示了如何在一个图表里同时绘制两种不同类型的图形——柱状图表示温度变化趋势以及折线图代表降水量的变化情况;并且这两个变量分别对应着各自独立的纵坐标尺度。