要想实现ECharts双Y轴左右刻度线一致,需要进行如下步骤:
1. 设置双Y轴的刻度最大值和最小值一致
首先,在ECharts图表的yAxis
属性中,分别设置左右两个Y轴的min
和max
属性值相同,这样可以保证两个Y轴的范围一致,代码示例如下:
yAxis: [
{
type: 'value',
name: '第一个Y轴',
min: 0,
max: 100
},
{
type: 'value',
name: '第二个Y轴',
min: 0,
max: 100
}
]
2. 设置双Y轴的刻度间隔一致
在设置了Y轴范围一致后,需要对Y轴的刻度进行同步,这可以通过设置左右两个Y轴的interval
属性来实现,代码示例如下:
yAxis: [
{
type: 'value',
name: '第一个Y轴',
min: 0,
max: 100,
interval: 10
},
{
type: 'value',
name: '第二个Y轴',
min: 0,
max: 100,
interval: 10
}
]
示例说明
为了更好的说明如何实现ECharts双Y轴左右刻度线一致,这里提供两个示例:
示例一:饼图和柱状图双重标尺
这个示例展示了饼图和柱状图同屏展示,且饼图在左侧的Y轴和柱状图在右侧的Y轴刻度线一致。代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts双Y轴左右刻度线一致示例</title>
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>
<div id="container" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('container'));
// 饼图所需要的数据
var pieData = [
{value: 335, name: '直接访问'},
{value: 310, name: '邮件营销'},
{value: 234, name: '联盟广告'},
{value: 135, name: '视频广告'},
{value: 1548, name: '搜索引擎'}
];
// 柱状图所需要的数据
var barData = [820, 932, 901, 934, 1290, 1330, 1320];
// 通用的Y轴配置
var yAxisConfig = {
type: 'value',
min: 0,
max: Math.max(4000, Math.max.apply(null, barData)),
interval: 1000
};
// 图表的配置项
var option = {
yAxis: [
yAxisConfig,
Object.assign({}, yAxisConfig, {
axisLine: {
show: false
},
axisLabel: {
show: false
},
splitLine: {
show: false
}
})
],
series: [
{
type: 'pie',
radius: '40%',
center: ['25%', '50%'],
data: pieData
},
{
type: 'bar',
xAxisIndex: 1,
yAxisIndex: 1,
barWidth: 20,
data: barData
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
示例二:同一坐标系下显示双Y轴
这个示例展示了同一坐标系下同时展示线性图和柱状图,且保证左侧线性图和右侧柱状图的Y轴刻度线一致。代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ECharts双Y轴左右刻度线一致示例</title>
<script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script>
</head>
<body>
<div id="container" style="width: 600px;height:400px;"></div>
<script type="text/javascript">
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('container'));
// 线性图所需要的数据
var lineData = [11, 11, 15, 13, 12, 13, 10];
// 柱状图所需要的数据
var barData = [820, 932, 901, 934, 1290, 1330, 1320];
// 图表的配置项
var option = {
legend: {
data: ['线性图', '柱状图']
},
grid: [
{
left: '10%',
bottom: '25%'
},
{
left: '10%',
height: '20%',
bottom: '5%'
}
],
xAxis: [
{
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
{
type: 'category',
gridIndex: 1,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
axisLine: {
lineStyle: {
color: '#ccc'
}
},
axisTick: {
show: false
}
}
],
yAxis: [
{
type: 'value',
name: '线性图',
min: 0,
max: Math.max(20, Math.max.apply(null, lineData)),
interval: 5
},
{
type: 'value',
name: '柱状图',
min: 0,
max: Math.max(4000, Math.max.apply(null, barData)),
interval: 1000,
axisLine: {
show: false
},
axisLabel: {
show: false
},
splitLine: {
show: false
}
}
],
series: [
{
name: '线性图',
type: 'line',
data: lineData
},
{
name: '柱状图',
type: 'bar',
xAxisIndex: 1,
yAxisIndex: 1,
barWidth: 20,
data: barData
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
</script>
</body>
</html>
以上是如何实现ECharts双Y轴左右刻度线一致的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:实现ECharts双Y轴左右刻度线一致的例子 - Python技术站