Echarts-柱状图-折线图-饼图
柱状图基础普通柱状图堆叠柱状图样式柱条样式柱条宽度和高度柱条间距为柱条添加背景色折线图基础BUG笛卡尔坐标系中的折线图空数据堆叠折线图本文贡献者样式折线的样式数据点的样式数据显示饼图基础半径不显示饼图玫瑰图圆环图...
Echarts-基本图表
柱状图
基础
普通柱状图
option = {
//横轴
xAxis: {
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {},
series: [
//纵轴,多个表示多列
{
type: 'bar',
data: [23, 24, 18, 25, 27, 28, 25]
}
]
};
堆叠柱状图
使用 EChart 实现堆积折线图的方法非常简单,只需要给一个系列的 stack
值设置一个字符串类型的值,这一个值表示该系列堆积的类别。也就是说,拥有同样 stack
值的系列将堆积在一组。
option = {
xAxis: {
data: ['A', 'B', 'C', 'D', 'E']
},
yAxis: {},
series: [
{
data: [10, 22, 28, 43, 49],
type: 'bar',
stack: 'x'
},
{
data: [5, 4, 3, 5, 10],
type: 'bar',
stack: 'x'
}
]
};
样式
柱条样式
柱条的样式可以通过 series.itemStyle
设置,包括:
- 柱条的颜色(
color
); - 柱条的描边颜色(
borderColor
)、宽度(borderWidth
)、样式(borderType
); - 柱条圆角的半径(
barBorderRadius
); - 柱条透明度(
opacity
); - 阴影(
shadowBlur
、shadowColor
、shadowOffsetX
、shadowOffsetY
)。
柱条宽度和高度
柱条宽度可以通过 barWidth
设置(百分比)。
还可以设置 barMaxWidth
限制柱条的最大宽度。对于一些特别小的数据,我们也可以为柱条指定最小高度 barMinHeight
,当数据对应的柱条高度小于该值时,柱条高度将采用这个最小高度。
柱条间距
柱条间距分为两种,一种是不同系列在同一类目下的距离 barGap
,另一种是类目与类目的距离 barCategoryGap
。
为柱条添加背景色
有时,我们希望能够为柱条添加背景色。从 ECharts 4.7.0 版本开始,这一功能可以简单地用 showBackground
开启,并且可以通过 backgroundStyle
配置。
option = {
xAxis: {
type: 'category',
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
},
yAxis: {
type: 'value'
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130],
type: 'bar',
showBackground: true,
backgroundStyle: {
color: 'rgba(220, 220, 220, 0.8)'
}
}
]
};
折线图
基础
option = {
xAxis: {
type: 'category',
data: ['A', 'B', 'C']
},
yAxis: {
type: 'value'
},
series: [
{
data: [120, 200, 150],
type: 'line',
smooth: true //平滑曲线
}
]
};
BUG
问题:echart折线图“有点无线”问题
原因:echarts存在动画,通过getDataURL()获取的图片会延迟加载。因动画原因没有出来线。
解决:
第一种:延迟使用getDataURL()获取图片,加个setTimeout
第二种:禁用动画,option配置animation:false
笛卡尔坐标系中的折线图
如果我们希望折线图在横坐标和纵坐标上都是连续的,即在笛卡尔坐标系中,应该如何实现呢?答案也很简单,只要把 series
的 data
每个数据用一个包含两个元素的数组表示就行了。
option = {
xAxis: {},
yAxis: {},
series: [
{
data: [
[20, 120],
[50, 200],
[40, 50]
],
type: 'line'
}
]
};
空数据
在一个系列中,可能一个横坐标对应的取值是“空”的,将其设为 0 有时并不能满足我们的期望–空数据不应被其左右的数据连接。
在 ECharts 中,我们使用字符串 '-'
表示空数据,这对其他系列的数据也是适用的。
option = {
xAxis: {
data: ['A', 'B', 'C', 'D', 'E']
},
yAxis: {},
series: [
{
data: [0, 22, '-', 23, 19],
type: 'line'
}
]
};
堆叠折线图
同((20220718141915-m4vn5zu ‘堆叠柱状图’))
但是不同的是,如果不加说明的话,我们很难判断出这是一个堆叠折线图,还是一个普通的折线图。所以,对于堆叠折线图而言,一般建议使用区域填充色以表明堆叠的情况。
option = {
xAxis: {
data: ['A', 'B', 'C', 'D', 'E']
},
yAxis: {},
series: [
{
data: [10, 22, 28, 43, 49],
type: 'line',
stack: 'x',
areaStyle: {}
},
{
data: [5, 4, 3, 5, 10],
type: 'line',
stack: 'x',
areaStyle: {}
}
]
};
本文贡献者
样式
折线的样式
折线图中折线的样式可以通过 lineStyle
设置。可以为其指定颜色、线宽、折线类型、阴影、不透明度等等,具体的可以参考配置项手册 series.lineStyle
了解。这里,我们以设置颜色(color)、线宽(width)和折线类型(type)为例说明。
数据点的样式
数据点的样式可以通过 series.itemStyle
指定填充颜色(color)、描边颜色(borderColor)、描边宽度(borderWidth)、描边类型(borderType)、阴影(shadowColor)、不透明度(opacity)等。与折线样式的设置十分相似,这里不再展开说明。
数据显示
这数据点的标签通过 series.label
属性指定。如果将 label
下的 show
指定为true
,则表示该数值默认时就显示;如果为 false
,而 series.emphasis.label.show
为 true
,则表示只有在鼠标移动到该数据时,才显示数值。
饼图
基础
option = {
series: [
{
type: 'pie',
data: [
{
value: 335,
name: '直接访问'
},
{
value: 234,
name: '联盟广告'
},
{
value: 1548,
name: '搜索引擎'
}
]
}
]
};
半径
饼图的半径可以通过 series.radius
设置,可以是诸如 '60%'
这样相对的百分比字符串,或是 200
这样的绝对像素数值。当它是百分比字符串时,它是相对于容器宽高中较小的一条边的。
不显示饼图
在默认情况下,如果数据值和为 0,会显示平均分割的扇形。比如,如果有 4 个数据项,并且每个数据项都是 0,则每个扇形都是 90°。如果我们希望在这种情况下不显示任何扇形,可以将 series.stillShowZeroSum
设为 false
。
玫瑰图
在series中设置roseType: ‘area’
圆环图
在series中设置radius: [‘40%’, ‘70%’],40%为内半径,70%为外半径
在圆环图中间显示高亮扇形对应的文字
上面的例子展现了在圆环图中间显示固定文字的例子,下面我们要介绍,如何在圆环图中间显示鼠标高亮的扇形对应的文字。实现这一效果的思路是,利用系列的 label
(默认用扇形颜色显示数据的 name
),显示在圆环图中间。在默认情况下不显示系列的 label
,在高亮时显示。具体的代码如下:
option = {
legend: {
orient: 'vertical',
x: 'left',
data: ['A', 'B', 'C', 'D', 'E']
},
series: [
{
type: 'pie',
radius: ['50%', '70%'],
avoidLabelOverlap: false,
label: {
show: false,
position: 'center',
emphasis: {
show: true
}
},
labelLine: {
show: false
},
emphasis: {
label: {
show: true,
fontSize: '30',
fontWeight: 'bold'
}
},
data: [
{ value: 335, name: 'A' },
{ value: 310, name: 'B' },
{ value: 234, name: 'C' },
{ value: 135, name: 'D' },
{ value: 1548, name: 'E' }
]
}
]
};
其中,avoidLabelOverlap
是用来控制是否由 ECharts 调整标签位置以实现防止标签重叠。它的默认值是 true
,而在这里,我们不希望标签位置调整到不是中间的位置,因此我们需要将其设为 false
。
这样,圆环图中间会显示高亮数据的 name
值。
更多推荐
所有评论(0)