下面给大家分享一下ECharts的几种功能,循序渐进地实现一个复杂的曲线图。
代码:
let option = {
title: { text: 'V1.0' },
legend: { data:['销量'] },
// x轴的数据
xAxis: {
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多"],
axisLabel:{ interval: 0 }
},
yAxis: {},
// 可用于指定统计图类型
series: [{
name: '销量',
type: 'line',
smooth: true,
data: [5, 20, 36, 10, 30, 190]
}]
}
代码:
let option = {
title: { text: '设置双x轴' },
legend: { data:['销量'] },
// x轴的数据
xAxis: [{
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多"],
axisLabel:{ interval: 0 }
}, {
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多"],
axisLabel:{ interval: 0 },
position: 'bottom',// 很重要,如果没有这个设置,默认第二个x轴就会在图表的顶部
offset: 40,// X 轴相对于默认位置的偏移,在相同的 position 上有多个 X 轴的时候有用
}],
yAxis: {},
// 可用于指定统计图类型
series: [{
name: '销量',
type: 'line',
smooth: true,
data: [5, 20, 36, 10, 30, 190]
}]
}
position: 很重要,设置第二条x轴相对于图表的位置,如果没有这个设置,默认第二个x轴就会在图表的顶部
offset: x轴相对于默认位置的偏移,在相同的 position 上有多个x轴的时候有用,值越大距离第一条x轴就越远
效果图:
代码:
let option = {
title: { text: '优化双x轴' },
legend: { data:['销量'] },
grid: { bottom: '40%' },// 组件离容器下侧的距离,值可以是像 20 这样的具体像素值,也可以是像 '20%' 这样相对于容器高宽的百分比
// x轴的数据
xAxis: [{
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多"],
axisLabel:{
interval: 0,
rotate: 60// 倾斜角度
}
}, {
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多"],
axisLabel:{ interval: 0 },
position: 'bottom',// 很重要,如果没有这个设置,默认第二个x轴就会在图表的顶部
offset: 90,// X 轴相对于默认位置的偏移,在相同的 position 上有多个 X 轴的时候有用
type: 'category',// 坐标轴类型
axisTick:{ show: false },// 是否显示坐标轴刻度
axisLine:{ show: false },// 是否显示坐标轴轴线
}],
yAxis: {},
// 可用于指定统计图类型
series: [{
name: '销量',
type: 'line',
smooth: true,
data: [5, 20, 36, 10, 30, 190]
}]
}
grid: { bottom: ‘40%’ },// 组件离容器下侧的距离,值可以是像 20 这样的具体像素值,也可以是像 ‘20%’ 这样相对于容器高宽的百分比
rotate: 倾斜角度
type: 坐标轴类型
axisTick: 是否显示坐标轴刻度
axisLine: 是否显示坐标轴轴线
效果图:
代码:
let option = {
title: { text: 'x轴添加滚动条' },
legend: { data:['销量'] },
grid: { bottom: '40%' },// 组件离容器下侧的距离,值可以是像 20 这样的具体像素值,也可以是像 '20%' 这样相对于容器高宽的百分比
// x轴的数据
xAxis: [{
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多"],
axisLabel:{
interval: 0,
rotate: 60// 倾斜角度
}
}, {
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多"],
axisLabel:{ interval: 0 },
position: 'bottom',// 很重要,如果没有这个设置,默认第二个x轴就会在图表的顶部
offset: 90,// X 轴相对于默认位置的偏移,在相同的 position 上有多个 X 轴的时候有用
type: 'category',// 坐标轴类型
axisTick:{ show: false },// 是否显示坐标轴刻度
axisLine:{ show: false },// 是否显示坐标轴轴线
}],
// dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。也就是实现滚动条的组件
dataZoom: {
start: 0,// 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。dataZoom-slider.start 和 dataZoom-slider.end 共同用 百分比 的形式定义了数据窗口范围
height: 10,// 组件的高度。水平布局默认 30,竖直布局默认自适应。比 top 和 bottom 优先级高
left: '10%',// 组件离容器左侧的距离
right: '10%',// 组件离容器右侧的距离
},
yAxis: {},
// 可用于指定统计图类型
series: [{
name: '销量',
type: 'line',
smooth: true,
data: [5, 20, 36, 10, 30, 190, 5, 20, 36, 10, 30, 190, 5, 20, 36, 10, 30, 190]
}]
}
dataZoom: 组件,用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。也就是实现滚动条的组件
start: 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。dataZoom-slider.start 和 dataZoom-slider.end 共同用 百分比 的形式定义了数据窗口范围
height: 组件的高度。水平布局默认 30,竖直布局默认自适应。比 top 和 bottom 优先级高
left: ‘10%’,// 组件离容器左侧的距离。left 的值可以是像 20 这样的具体像素值,可以是像 ‘20%’ 这样相对于容器高宽的百分比,也可以是 ‘left’, ‘center’, ‘right’。如果 left 的值为’left’, ‘center’, ‘right’,组件会根据相应的位置自动对齐
right: ‘10%’,// 组件离容器右侧的距离。right 的值可以是像 20 这样的具体像素值,可以是像 ‘20%’ 这样相对于容器高宽的百分比。默认自适应
效果图:
代码:
let option = {
title: { text: '优化滚动条' },
legend: { data:['销量'] },
grid: { bottom: '40%' },// 组件离容器下侧的距离,值可以是像 20 这样的具体像素值,也可以是像 '20%' 这样相对于容器高宽的百分比
// x轴的数据
xAxis: [{
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多"],
axisLabel:{
interval: 0,
rotate: 60// 倾斜角度
}
}, {
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多"],
axisLabel:{ interval: 0 },
position: 'bottom',// 很重要,如果没有这个设置,默认第二个x轴就会在图表的顶部
offset: 90,// X 轴相对于默认位置的偏移,在相同的 position 上有多个 X 轴的时候有用
type: 'category',// 坐标轴类型
axisTick:{ show: false },// 是否显示坐标轴刻度
axisLine:{ show: false },// 是否显示坐标轴轴线
}],
// dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。也就是实现滚动条的组件
dataZoom: {
start: 0,// 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。dataZoom-slider.start 和 dataZoom-slider.end 共同用 百分比 的形式定义了数据窗口范围
height: 0,// 组件的高度。指的不是滚动条本身,而是滚动条下面的组件。水平布局默认 30,竖直布局默认自适应。比 top 和 bottom 优先级高
left: '10%',// 组件离容器左侧的距离
right: '10%',// 组件离容器右侧的距离
bottom: 30,// 组件离容器下侧的距离。bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。默认自适应
startValue: 0,// 数据窗口范围的起始数值。如果设置了 dataZoom-slider.start 则 startValue 失效
endValue: 6,// 很重要,页面展示的x轴数据量,6表示页面只有6+1=7条数据,总数据量超过7条滚动条就开始起作用了。数据窗口范围的结束数值。如果设置了 dataZoom-slider.end 则 endValue 失效
show: true,// 很重要,是否显示组件。如果设置为false,滚动条就没有了,但是数据过滤的功能还存在。默认值是true
realtime: true,// 很重要,拖动时,是否实时更新图表的视图。如果设置为 false,则只在拖拽结束的时候更新。默认值是true
backgroundColor: '#ddd',// 组件的背景颜色
handleStyle: {
borderColor: '#cacaca',// 图形的描边颜色。支持的颜色格式同 color,不支持回调函数
borderWidth: '1',// 描边线宽。为 0 时无描边
shadowBlur: 2,// 图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果
shadowColor: '#ddd',// 阴影颜色。也就是滚动条左右两个小点的颜色
},
showDataShadow: false,// 很重要,是否在 dataZoom-silder 组件中显示数据阴影。数据阴影可以简单地反应数据走势。默认值是auto,也就是有数据阴影
showDetail: false,// 很重要,是否显示detail,即拖拽时候滚动条左右是否显示详细数据信息。默认值是true
xAxisIndex: [0, 1],// 很重要,设置滚动条控制的x轴,[0,1]表示它控制了第一条和第二条x轴,[0]表现为第二条x轴没有滚动条,所有数据都会展示在页面
},
yAxis: {},
// 可用于指定统计图类型
series: [{
name: '销量',
type: 'line',
smooth: true,
data: [5, 20, 36, 10, 30, 190, 5, 20, 36, 10, 30, 190, 5, 20, 36, 10, 30, 190]
}]
}
bottom: 组件离容器下侧的距离。bottom 的值可以是像 20 这样的具体像素值,可以是像 ‘20%’ 这样相对于容器高宽的百分比。默认自适应
startValue: 数据窗口范围的起始数值。如果设置了 dataZoom-slider.start 则 startValue 失效
endValue: 很重要,页面展示的x轴数据量,6表示页面只有6+1=7条数据,总数据量超过7条滚动条就开始起作用了。数据窗口范围的结束数值。如果设置了 dataZoom-slider.end 则 endValue 失效
show: 很重要,是否显示组件。如果设置为false,滚动条就没有了,但是数据过滤的功能还存在。默认值是true
realtime: 很重要,拖动时,是否实时更新图表的视图。如果设置为 false,则只在拖拽结束的时候更新。默认值是true
backgroundColor: 组件的背景颜色
borderColor: 图形的描边颜色。支持的颜色格式同 color,不支持回调函数
borderWidth: 描边线宽。为 0 时无描边
shadowBlur: 图形阴影的模糊大小。该属性配合shadowColor,shadowOffsetX,shadowOffsetY一起设置图形的阴影效果。示例:
{
shadowColor: ‘rgba(0, 0, 0, 0.5)’,
shadowBlur: 10
}
shadowColor: 阴影颜色。也就是滚动条左右两个小点的颜色
showDataShadow: 很重要,是否在 dataZoom-silder 组件中显示数据阴影。数据阴影可以简单地反应数据走势。默认值是auto,也就是有数据阴影
showDetail: 很重要,是否显示detail,即拖拽时候滚动条左右是否显示详细数据信息。默认值是true
xAxisIndex: 很重要,设置滚动条控制的x轴,不指定时,当 dataZoom-slider.orient 为 'horizontal’时,默认控制和 dataZoom 平行的第一个 xAxis。但是不建议使用默认值,建议显式指定。如果是 number 表示控制一个轴,如果是 Array 表示控制多个轴。示例:
option: {
xAxis: [
{…}, // 第一个 xAxis
{…}, // 第二个 xAxis
{…}, // 第三个 xAxis
{…} // 第四个 xAxis
],
dataZoom: [
{ // 第一个 dataZoom 组件
xAxisIndex: [0, 2] // 表示这个 dataZoom 组件控制 第一个 和 第三个 xAxis
},
{ // 第二个 dataZoom 组件
xAxisIndex: 3 // 表示这个 dataZoom 组件控制 第四个 xAxis
}
] }
代码:
let option = {
title: { text: '鼠标悬浮显示数据(V2.0)' },
legend: { data:['销量'] },
grid: { bottom: '40%' },// 组件离容器下侧的距离,值可以是像 20 这样的具体像素值,也可以是像 '20%' 这样相对于容器高宽的百分比
// x轴的数据
xAxis: [{
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多"],
axisLabel:{
interval: 0,
rotate: 60// 倾斜角度
}
}, {
data: ["王","胡歌","曾小贤","吕小布","关谷神奇","阿不思.邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多","王","胡歌","曾小贤","吕小布","关谷神奇","邓布利多"],
axisLabel:{ interval: 0 },
position: 'bottom',// 很重要,如果没有这个设置,默认第二个x轴就会在图表的顶部
offset: 90,// X 轴相对于默认位置的偏移,在相同的 position 上有多个 X 轴的时候有用
type: 'category',// 坐标轴类型
axisTick:{ show: false },// 是否显示坐标轴刻度
axisLine:{ show: false },// 是否显示坐标轴轴线
}],
// dataZoom 组件 用于区域缩放,从而能自由关注细节的数据信息,或者概览数据整体,或者去除离群点的影响。也就是实现滚动条的组件
dataZoom: {
start: 0,// 数据窗口范围的起始百分比。范围是:0 ~ 100。表示 0% ~ 100%。dataZoom-slider.start 和 dataZoom-slider.end 共同用 百分比 的形式定义了数据窗口范围
height: 0,// 组件的高度。指的不是滚动条本身,而是滚动条下面的组件。水平布局默认 30,竖直布局默认自适应。比 top 和 bottom 优先级高
left: '10%',// 组件离容器左侧的距离
right: '10%',// 组件离容器右侧的距离
bottom: 30,// 组件离容器下侧的距离。bottom 的值可以是像 20 这样的具体像素值,可以是像 '20%' 这样相对于容器高宽的百分比。默认自适应
startValue: 0,// 数据窗口范围的起始数值。如果设置了 dataZoom-slider.start 则 startValue 失效
endValue: 6,// 很重要,页面展示的x轴数据量,6表示页面只有6+1=7条数据,总数据量超过7条滚动条就开始起作用了。数据窗口范围的结束数值。如果设置了 dataZoom-slider.end 则 endValue 失效
show: true,// 很重要,是否显示组件。如果设置为false,滚动条就没有了,但是数据过滤的功能还存在。默认值是true
realtime: true,// 很重要,拖动时,是否实时更新图表的视图。如果设置为 false,则只在拖拽结束的时候更新。默认值是true
backgroundColor: '#ddd',// 组件的背景颜色
handleStyle: {
borderColor: '#cacaca',// 图形的描边颜色。支持的颜色格式同 color,不支持回调函数
borderWidth: '1',// 描边线宽。为 0 时无描边
shadowBlur: 2,// 图形阴影的模糊大小。该属性配合 shadowColor,shadowOffsetX, shadowOffsetY 一起设置图形的阴影效果
shadowColor: '#ddd',// 阴影颜色。也就是滚动条左右两个小点的颜色
},
showDataShadow: false,// 很重要,是否在 dataZoom-silder 组件中显示数据阴影。数据阴影可以简单地反应数据走势。默认值是auto,也就是有数据阴影
showDetail: false,// 很重要,是否显示detail,即拖拽时候滚动条左右是否显示详细数据信息。默认值是true
xAxisIndex: [0, 1],// 很重要,设置滚动条控制的x轴,[0,1]表示它控制了第一条和第二条x轴,[0]表现为第二条x轴没有滚动条,所有数据都会展示在页面
},
// 提示框组件,也就是实现鼠标悬浮显示数据的组件
tooltip: {
trigger: 'axis',// 触发类型,'axis'是坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用
// 坐标轴指示器配置项,配置指示器类型等
axisPointer: {
type: 'shadow'// 指示器类型,'shadow'是阴影指示器
}
},
yAxis: {},
// 可用于指定统计图类型
series: [{
name: '销量',
type: 'line',
smooth: true,
data: [5, 20, 36, 10, 30, 190, 5, 20, 36, 10, 30, 190, 5, 20, 36, 10, 30, 190]
}]
}
tooltip: 提示框组件,也就是实现鼠标悬浮显示数据的组件,提示框组件可以设置在多种地方:
trigger: 触发类型,可选:
数据项图形触发,主要在散点图,饼图等无类目轴的图表中使用。
坐标轴触发,主要在柱状图,折线图等会使用类目轴的图表中使用。在 ECharts 2.x 中只支持类目轴上使用 axis trigger,在 ECharts 3 中支持在直角坐标系和极坐标系上的所有类型的轴。并且可以通过 axisPointer.axis 指定坐标轴。
什么都不触发。
axisPointer: 配置坐标轴指示器的快捷方式。实际上坐标轴指示器的全部功能,都可以通过轴上的 axisPointer 配置项完成(例如 xAxis.axisPointer 或 angleAxis.axisPointer)。但是使用 tooltip.axisPointer 在简单场景下会更方便一些。
注意: tooltip.axisPointer 中诸配置项的优先级低于轴上的 axisPointer 的配置项。
坐标轴指示器是指示坐标轴当前刻度的工具。
type: 指示器类型,可选: