在入门关卡我们已经使用过柱状图。导入语句如下:
from pyecharts.charts import Bar
为了方便构造数据,我们还导入了 PyEcharts 提供的虚拟数据包,如下所示:
from pyecharts.faker import Faker
此外还导入全局变量中的 ThemeType 辅助设置主题类型。
from pyecharts.globals import ThemeType
具体主题参见主题风格。(定制主题 - pyecharts - A Python Echarts Plotting Library built with love.
构造数据
通过 PyEcharts 提供的虚拟数据包 Faker
,我们可以用如下语句分别构造用于 x 轴和 y 轴的数据:
data_x = Faker.choose()
data_y_1 = Faker.values()
data_y_2 = Faker.values()
其中,Faker
包中的 choose
方法会随机选择一组属性,而 values
方法则生成随机的数据值。
直角坐标系图表通用方法
直角坐标系图表继承自 RectChart
, 都拥有以下方法:
新增 X 轴数据:
def add_xaxis(
# X 轴数据项
xaxis_data: Sequence
)
扩展 X/Y 轴:
def extend_axis(
# 扩展 X 坐标轴数据项
xaxis_data: Sequence = None,
# 扩展 X 坐标轴配置项,参考 `global_options.AxisOpts`
xaxis: Union[opts.AxisOpts, dict, None] = None,
# 新增 Y 坐标轴配置项,参考 `global_options.AxisOpts`
yaxis: Union[opts.AxisOpts, dict, None] = None,
)
翻转 XY 轴数据:
def reversal_axis():
添加 dataset 组件:
def add_dataset(
# 原始数据。一般来说,原始数据表达的是二维表。
source: types.Union[types.Sequence, types.JSFunc] = None,
# 使用 dimensions 定义 series.data 或者 dataset.source 的每个维度的信息。
dimensions: types.Optional[types.Sequence] = None,
# dataset.source 第一行/列是否是 维度名 信息。可选值:
# null/undefine(对应 Python 的 None 值):默认,自动探测。
# true:第一行/列是维度名信息。
# false:第一行/列直接开始是数据。
source_header: types.Optional[bool] = None,
)
柱状图 Y 轴配置项
柱状图 Y 轴部分配置接口如下:
class Bar(
# 初始化配置项,参考 `global_options.InitOpts`
init_opts: opts.InitOpts = opts.InitOpts()
)
func pyecharts.charts.Bar.add_yaxis
def add_yaxis(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 系列数据
y_axis: Sequence[Numeric, opts.BarItem, dict],
# 是否选中图例
is_selected: bool = True,
# 使用的 x 轴的 index,在单个图表实例中存在多个 x 轴的时候有用。
xaxis_index: Optional[Numeric] = None,
# 使用的 y 轴的 index,在单个图表实例中存在多个 y 轴的时候有用。
yaxis_index: Optional[Numeric] = None,
# 是否启用图例 hover 时的联动高亮
is_legend_hover_link: bool = True,
# 系列 label 颜色
color: Optional[str] = None,
# 是否显示柱条的背景色。通过 backgroundStyle 配置背景样式。
is_show_background: bool = False,
# 每一个柱条的背景样式。需要将 showBackground 设置为 true 时才有效。
background_style: types.Union[types.BarBackground, dict, None] = None,
# 数据堆叠,同个类目轴上系列配置相同的 stack 值可以堆叠放置。
stack: Optional[str] = None,
# 柱条的宽度,不设时自适应。
# 可以是绝对值例如 40 或者百分数例如 '60%'。百分数基于自动计算出的每一类目的宽度。
# 在同一坐标系上,此属性会被多个 'bar' 系列共享。此属性应设置于此坐标系中最后一个 'bar' 系列上才会生效,并且是对此坐标系中所有 'bar' 系列生效。
bar_width: types.Union[types.Numeric, str] = None,
# 柱条的最大宽度。比 barWidth 优先级高。
bar_max_width: types.Union[types.Numeric, str] = None,
# 柱条的最小宽度。在直角坐标系中,默认值是 1。否则默认值是 null。比 barWidth 优先级高。
bar_min_width: types.Union[types.Numeric, str] = None,
# 柱条最小高度,可用于防止某数据项的值过小而影响交互。
bar_min_height: types.Numeric = 0,
初始化配置项
回顾初始化配置项接口:
class InitOpts(
# 图表画布宽度,css 长度单位。
width: str = "900px",
# 图表画布高度,css 长度单位。
height: str = "500px",
# 图表 ID,图表唯一标识,用于在多图表时区分。
chart_id: Optional[str] = None,
# 渲染风格,可选 "canvas", "svg"
# # 参考 `全局变量` 章节
renderer: str = RenderType.CANVAS,
# 网页标题
page_title: str = "Awesome-pyecharts",
# 图表主题
theme: str = "white",
# 图表背景颜色
bg_color: Optional[str] = None,
)