基本图表绘制

1.柱状图
ECharts
的优点之一就是:我们不用从 0 开始写代码,只需要在官方文档中找到相似度高的示例,然后在示例代码的基础上进行修改即可。
比如我们在官网找到带背景色的柱状图:
::: center
:::
这里就不扯那么多了,直接来讲讲代码中的陌生配置项目:
color
是绘制图表的调色盘的颜色列表,如果系列没有设置颜色,则会依次循环从该列表中取颜色作为系列颜色。 默认为:
1 | ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'] |
也就是多个系列时依次显示的颜色:
::: demo-wrapper no-padding
:::
backgroundStyle
用于设置每一个柱条的背景样式,需要将showBackground
设置为true
时才会生效。
1.1 多列柱状图
有时候我们需要在同一个轴点上进行多列数据的对比,比如下图不同国家男女人口的数量统计。
我们可以试着在官网中找找对应的模板:发现可以用折柱混合图为模版。
::: center
:::
将代码修改为:
1 | option = { |
修改的配置项说明如下:
- tooltip.axisPointer是配置坐标轴指示器的全局共用设置,也就是说里面包含的属性都是和坐标轴相关的设置。
- tooltip.axisPointer.type是指示器类型,包含
line
(直线指示器)、shadow
(阴影指示器)、none
(无指示器)、cross
(十字准星指示器)这四种类型。 - tooltip.axisPointer.crossStyle.color用于设置线的颜色
- legend.data是图例的数据数组
- xAxis.axisPointer.type是指示器类型,包含
line
(直线指示器)、shadow
(阴影指示器)、none
(无指示器)这三种类型。 - yAxis.min 用于设置 y 轴的最小值。
- yAxis.max 用于设置 y 轴的最大值。
- yAxis.axisLabel.formatter 是刻度标签的内容格式器。
1.2 堆积条形图
有时候,我们想要在某些大类中将它们各自包含的小类也突出显示出来,这时候就可以使用堆积柱状图来表现。
堆积柱状图就是一个系列的数值“堆积”在另一个系列上,而从表达总量的变化。
分析好效果图的结构,我们在官网上,找到堆叠条形图,拷贝代码到 index2.html 文件中,对代码进行修改。
::: center
:::
修改代码:
1 | option = { |
grid.containLabel
设置 grid 区域是否包含坐标轴的刻度标签,默认为 false。xAxis.splitLine.show
设置是否显示分隔线。xAxis.axisLabel.show
设置是否显示刻度。yAxis.axisLine.show
设置是否显示坐标轴线。yAxis.inverse
设置是否反向坐标轴。series-bar.barWidth
设置条柱的宽度。series-bar.emphasis.focus
设置高亮的图表样式和标签样式,在高亮图表时,它支持三种配置:none 不- 淡出其它图表,默认使用该配置;self 只聚焦(不淡出)当前高亮的数据的图表;series 聚焦当前高亮的- 数据所在的系列的所有图表。series-bar.itemStyle.color
设置图表的颜色,如果不设置颜色,就默认从调色盘依次取色。series-bar.itemStyle.borderRadius
设置圆角半径
2.折线图
::: demo-wrapper no-padding
:::
我们先分析一下效果图的样式和结构,到官网示例中找一个类似的线图,通过比较,发现堆叠面积图比较接近。
修改代码:
1 | option = { |
2.1 定制线图
将上面代码的文字颜色进行更改:
1 | var option = { |
2.2 X轴相关设置
修改代码:
1 | <script> |
在上面代码中,xAxis.boundaryGap 是坐标轴两边留白策略,在类目轴和非类目轴的设置和表现是不一样的。
- 在类目轴中,
boundaryGap
配置为布尔类型,当设置为 true 时,坐标轴上的刻度只会作为分隔线,标签和数据会处于两个刻度之间的中间。 - 在非类目轴中,
boundaryGap
配置为具有两个值的数组,这两个值代表数据的最大值和最小值的延伸范围。
2.3 Y 轴相关设置
1 | <script> |
修改后效果如下:
::: demo-wrapper no-padding
:::
2.4 修改两个线模块配置
最终效果:
::: demo-wrapper no-padding
:::
根据需求我们去官方文档查找相应的配置。
series-line.smooth
设置是否平滑曲线显示。series-line.areaStyle
设置区域填充样式。series-line.areaStyle.color
设置填充的颜色,包括不同的渐变。series-line.showSymbol
是否显示 symbol,也就是图上的数据点,默认为 true。
修改后代码如下:
1 | <script> |
实现效果如下:
::: demo-wrapper no-padding
:::
3.饼形图
3.1 南丁格尔图
我们先分析一下效果图的图样式和结构,到官网示例中找一个类似的线图,通过比较,选择了基础南丁格尔玫瑰图。
::: center
:::
南丁格尔图又称玫瑰图,通常用弧度相同但是半径不同的扇形表示各个类目。
修改代码如下:
1 | option = { |
陌生配置说明如下:
series.radius
设置饼形的半径。series.center
设置饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标。series.roseType
设置是否展示成南丁格尔图,通过半径区分数据大小,有两种模式:radius
区圆心角展现数据的百分比,半径展现数据的大小。area
所有扇区圆心角相同,仅通过半径展现数据大小。series.itemStyle.borderRadius
用于指定饼图扇形区块的内外圆角半径。
最终效果图:
::: demo-wrapper no-padding
:::
3.2 定制饼状图
我们来看一下当前效果(左图)与最终效果(右图)的对比图。
::: demo-wrapper no-padding
:::
先来讲一下相关配置:
legend.itemWidth
和legend.itemHeight
分别是图例标记的图表宽度和高度,也就是最下方小图标的宽高。series-pie.labelLine.length
是视觉引导线第一段的长度。series-pie.labelLine.length2
是视觉引导项第二段的长度。
4.散点图
我们先分析一下效果图的图样式和结构,到官网示例中找一个类似的线图,通过比较,选择了 AQI 气泡图。
::: center
:::
tooltip.backgroundColor
是提示框浮层的背景颜色。tooltip.formatter
是用来设置提示浮层内容显示的格式,它支持字符串模板和回调函数两- 种形式。xAxis.nameGap
用于设置坐标轴名称与轴线之间的距离,默认值为 15。xAxis.nameTextStyle.fontsize
是用来设置坐标轴名称文字的字体大小,默认值为 12。xAxis.nameLocation
是用来设置坐标轴名称显示位置,可选值有start
(开头)、-middle
或center
(居中)、end
(末尾)。visualMap
是视觉映射组件。visualMap.left
和visualMap.top
设置visualMap
组件离容器左侧和顶部的距离。visualMap.dimension
用来指定数据的哪个维度映射到视觉元素上。visualMap.min
和visualMap.max
用来设置visualMap
组件允许的最小值和最大值。
visualMap.itemWidth
和 visualMap.itemHeight
设置 visualMap
组件图表的宽度和- 度。
visualMap.calculable
设置是否显示拖拽用的手柄(手柄能拖拽调整选中范围)。visualMap.precision
是设置数据展示的小数精度,默认为 0,无小数点。visualMap.text
和visualMap.textGap
用来设置visualMap
组件图表上两端的文字- 设置文字与图表之间的距离。visualMap.inRange.symbolSize
设置选中范围内散点的大小。visualMap.outOfRange.symbolSize
设置选中范围外散点的大小。visualMap.outOfRange.color
设置选中范围外散点的颜色。visualMap.controller
是 visualMap 组件中,控制器的inRange
、outOfRange
设置。
详见官方文档
4.1 定制散点图
左边是最终效果,右边是当前效果:
::: demo-wrapper no-padding
:::
修改代码;
1 | var option = { |
效果:
::: demo-wrapper no-padding
:::
- 标题: 基本图表绘制
- 作者: Sy_
- 创建于 : 2025-06-15 00:51:35
- 更新于 : 2025-06-15 00:51:35
- 链接: https://shenying.online//demo/pk9z1xu2/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。