echarts制作两个纵轴的折线图

在开发过程中,我们经常会遇到两个y轴数据标准不同的情况,而一般情况下echarts只有一个纵轴,这时就要花点心思了。

技术关键: yAxis写成数组,包含自己需要的纵轴; yAxisIndex:纵轴的下标

实现效果:
在这里插入图片描述

代码如下:

只截取了重要部分代码。

yAxis: [
        {
				boundaryGap: [0, '50%'],
				type: 'value',
				name: '满足率',
          position: 'left',
          axisLabel: {
						formatter: function(value, index) {
							return value;
						}
					},
					axisTick: {
						inside: 'false',
						length: 10,
					}
        },
        {
          boundaryGap: [0, '50%'],
					type: 'value',
          name: '满足率目标',
          axisLabel: {
						formatter: function(value, index) {
              console.log('val', value)
							return value;
						}
					},
					//offset: 50, //坐标轴移动50
					position: 'right',
					axisTick: {
						inside: 'false',
						length: 10,
					}
				}
      ],
      series: [
        {
					name: '满足率',
					type: 'line',
					data: [],
					yAxisIndex: 0
        },
        {
					name: '满足率目标',
					type: 'line',
					data: [],
					yAxisIndex: 1
				}
      ]

其中有一个要点:多纵轴的情况下,很大概率会导致x轴不均分的情况,如下:
在这里插入图片描述
这时只需调整下纵轴的分配即可,

yAxis: [
    {
        name: "单位:(人)",
        type: 'value',
        min:Min1,
        max:Max1,
        splitNumber: 5,
        interval: (Max1 - Min1) / 5
    },
    {
        type: 'value',
        min:Min2,
        max:Max2,
        splitNumber: 5,
        interval: (Max2 - Min2) / 5
    }
]

另外一个坑,如果因为tooltip内容太多导致超出屏幕的时候可以尝试:

echarts tooltip应用的是绝对定位,且overflow属性为hidden。所以超出部分不会展示。

tooltip: {
	confine: true
}
首先,你需要引入 Echarts 和 Axios 库。在 Vue 组件的 mounted 钩子函数中,通过 Axios 发送请求获取数据,然后在回调函数中使用 Echarts 绘制图表。 下面是一个简单的示例代码: ```html <template> <div> <div ref="chart" style="height: 400px;"></div> </div> </template> <script> import axios from 'axios' import echarts from 'echarts' export default { mounted() { axios.get('/api/data').then(response => { const data = response.data const chart = echarts.init(this.$refs.chart) chart.setOption({ title: { text: '折线图和柱状图混合展示' }, tooltip: {}, legend: { data: ['销量', '收入'] }, xAxis: { data: data.categories }, yAxis: [ { type: 'value', name: '销量' }, { type: 'value', name: '收入' } ], series: [ { name: '销量', type: 'line', data: data.sales }, { name: '收入', type: 'bar', yAxisIndex: 1, data: data.income } ] }) }) } } </script> ``` 在这个示例中,我们通过 Axios 发送 GET 请求获取数据,然后在回调函数中使用 Echarts 绘制图表。Echarts 的初始化函数需要传入一个 DOM 元素,我们通过 `$refs` 引用到了这个元素。 在 Echarts 的配置中,我们定义了标题、提示框、图例、横轴、两个纵轴以及两个系列。其中,第一个系列是折线图,第二个系列是柱状图。我们使用了两个纵轴,分别对应两个系列的数据。`yAxisIndex` 属性指定了柱状图使用第二个纵轴。 注意,这个示例中的数据是从服务器端获取的,因此你需要在后端编写一个 API 接口来提供数据。在开发环境中,可以使用 Mock.js 库模拟数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码搬运媛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值