一、echarts多y轴折线图
echarts的多y轴可以使我们在一张图表中显示多组数据,方便查看比较。假如我们需要展示商品的销售额和销售量,可以使用多y轴折线图。
// 基于准备好的dom,初始化echarts实例
var myChart = echarts.init(document.getElementById('myChart'));
// 指定图表的配置项和数据
var option = {
title: {
text: '商品销售数据'
},
tooltip: {
trigger: 'axis'
},
legend: {
data:['销售额','销售量']
},
xAxis: {
type: 'category',
data: ['周一','周二','周三','周四','周五','周六','周日']
},
yAxis: [
{
type: 'value',
name: '销售额',
axisLabel: {
formatter: '{value} 元'
}
},
{
type: 'value',
name: '销售量',
axisLabel: {
formatter: '{value} 件'
}
}
],
series: [
{
name:'销售额',
type:'line',
data:[300,400,500,600,700,800,900]
},
{
name:'销售量',
type:'line',
yAxisIndex: 1,
data:[50,70,90,110,130,150,170]
}
]
};
// 使用刚指定的配置项和数据显示图表。
myChart.setOption(option);
通过yAxis数组可以定义多个y轴的属性,其中name用于指定轴名称,axisLabel中的formatter则是轴标签的格式化函数。
二、echarts多y轴格数一致
在多个y轴折线图中,很容易出现y轴格数不一致的情况,影响数据的可读性。可以使用axisSame属性设置y轴格数一致。
var option = {
...
yAxis: [
{
type: 'value',
name: '销售额',
axisLabel: {
formatter: '{value} 元'
}
},
{
type: 'value',
name: '销售量',
axisLabel: {
formatter: '{value} 件'
},
axisLine: {
lineStyle: {
color: '#5793f3'
}
},
splitLine: {
show: false
},
axisTick: {
show: false
},
axisLabel: {
formatter: '{value} 米'
}
}
],
axisSame: true, // 让y轴格数一致
...
};
这里还设置了第二个y轴的样式,包括轴线颜色、分割线、刻度线和标签格式化。
三、echarts设置y轴刻度
有时候需要设置y轴的刻度,例如网站访问量从0到10000,可以每1000个为一格,因此刻度应该为0、1000、2000……10000。可以使用interval属性设置y轴刻度。
var option = {
...
yAxis: [
{
...
interval: 1000 // 设置y轴间隔为1000
}
],
...
};
四、echartsx轴
x轴是一条线性轴,通常表示数据的类别或者时间。可以设置xAxis属性定义x轴的属性。
var option = {
...
xAxis: {
type: 'category',
data: ['周一','周二','周三','周四','周五','周六','周日']
},
...
};
这里使用category作为轴类型,data数组指定了x轴标签的内容。
五、echarts设置y轴数值
y轴的数值可能是小数,可以使用axisLabel的formatter属性设置小数位数。
var option = {
...
yAxis: [
{
...
axisLabel: {
formatter: '{value} 元'
}
},
{
...
axisLabel: {
formatter: '{value}%'
}
}
],
...
};
这里分别设置了'元'和'%'。
六、echarts3d轴
3D柱状图中有三个轴:x轴、y轴和z轴。可以使用visualMap属性设置z轴的值域。
var option = {
...
visualMap: {
max: 100,
inRange: {
color: ['#B22222', '#DB7093', '#C71585', '#FF69B4', '#FFC0CB', '#FFDAB9', '#FFFFE0', '#F0E68C', '#ADFF2F', '#7FFF00', '#32CD32', '#00FF7F', '#00FA9A', '#00CED1', '#2F4F4F']
}
},
series: [{
type: 'bar3D',
...
}]
};
这里设置了z轴的最大值为100,然后在inRange中设置了颜色渐变。注意,在visualMap是全局的,因此如果有多个3D柱状图,也会应用相同的设置。
七、echarts双y轴
如果我们需要绘制折线图和柱状图,可以使用双y轴。
var option = {
...
yAxis: [
{
type: 'value',
name: '销售额',
axisLabel: {
formatter: '{value} 元'
}
},
{
type: 'value',
name: '销售量',
axisLabel: {
formatter: '{value} 件'
}
}
],
series: [
{
name:'销售额',
type:'bar',
data:[300,400,500,600,700,800,900]
},
{
name:'销售量',
type:'line',
yAxisIndex: 1,
data:[50,70,90,110,130,150,170]
}
]
};
这里定义了两个y轴,一个用于销售额,一个用于销售量;并且使用了一个柱状图和一个折线图展示数据。
八、echarts的x轴倾斜
有时候,x轴的标签文字过长,会导致文字被挤压或者重叠。可以使用axisLabel的rotate属性设置x轴倾斜角度。
var option = {
...
xAxis: {
type: 'category',
data: ['周一','周二','周三','周四','周五','周六','周日'],
axisLabel: {
rotate: 45 // 旋转45度
}
},
...
};
这里将x轴标签文字旋转了45度。
九、echarts的y轴范围
如果我们需要限定y轴的范围,可以使用yAxis的min和max属性。
var option = {
...
yAxis: [
{
type: 'value',
name: '销售额',
axisLabel: {
formatter: '{value} 元'
},
min: 0, // 最小值为0
max: 1000 // 最大值为1000
},
{
...
}
],
...
};
十、echarts y轴滚动条选取
如果y轴的数据很多,需要滚动查看,可以使用dataZoom组件。
var option = {
...
yAxis: [
{
...
},
{
...
}
],
dataZoom: [
{
type: 'inside',
yAxisIndex: 0,
start: 0, // 默认起始位置
end: 50 // 默认结束位置
},
{
type: 'slider',
yAxisIndex: 0,
start: 0, // 默认起始位置
end: 50 // 默认结束位置
}
],
...
};
这里使用了两个dataZoom组件,第一个是内置式的,只能在图表中选取;第二个是滑动条式的,可以自由拖动选择范围。