我在用Pyecharts绘制折线图(Line)时,横坐标是年份,我要展示1995-2024年的每年的数据,由于数据过多横坐标很长,因此我考虑用dataZoom(区域缩放)功能。
from pyecharts.charts import Line
from pyecharts import options as opts
# 示例数据
x_axis = ["2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012", "2013", "2014",
"2015", "2016", "2017", "2018", "2019", "2020", "2021", "2022",
"2023", "2024"]
y_axis = [12, 10, 8, 9, 5, 12, 15, 10, 15, 12, 18, 20, 22, 25, 28, 30, 32, 35, 35, 30, 29, 24]
# 创建 Line 图表对象
line = (
Line()
.set_global_opts(
tooltip_opts=opts.TooltipOpts(trigger='axis', is_show=True),
xaxis_opts=opts.AxisOpts(type_="category", name='年份', is_scale=True),
datazoom_opts=opts.DataZoomOpts(type_='slider', range_start=0, range_end=100),
yaxis_opts=opts.AxisOpts(
axistick_opts=opts.AxisTickOpts(is_show=True),
splitline_opts=opts.SplitLineOpts(is_show=True),
name="上榜数"
),
title_opts=opts.TitleOpts(title="我校历年高考考入清北人数折线图"),
toolbox_opts=opts.ToolboxOpts(
feature=opts.ToolBoxFeatureOpts(
save_as_image=opts.ToolBoxFeatureSaveAsImageOpts(),
data_view=opts.ToolBoxFeatureDataViewOpts(is_show=True),
magic_type=opts.ToolBoxFeatureMagicTypeOpts(is_show=True),
restore=opts.ToolBoxFeatureRestoreOpts(is_show=True),
data_zoom=opts.ToolBoxFeatureDataZoomOpts(is_show=True)
)
)
)
.add_xaxis(xaxis_data=x_axis)
.add_yaxis(
series_name="清北上榜数",
y_axis=y_axis,
label_opts=opts.LabelOpts(is_show=False),
)
)
# 渲染图表到 HTML 文件
line.render("year_distribution_line_chart.html")
print("图表已生成并保存为 year_distribution_line_chart.html")
效果如下所示:
Pyecharts绘制多段折线图在一副图上(Line),可以通过多次调用 add_yaxis
方法来在一个图表上绘制多段折线图。每段折线图可以有不同的颜色和标签。下面是一个示例代码,展示了如何在一个图表上绘制多段折线图。
绘制多段折线代码如下:
line = (
Line()
.add_xaxis(xaxis_data=years)
.add_yaxis(
series_name="北大上榜数",
y_axis=y_axis_beida,
label_opts=opts.LabelOpts(is_show=False),
color="#FF7F50" # 北大折线的颜色
)
.add_yaxis(
series_name="清华上榜数",
y_axis=y_axis_qinghua,
label_opts=opts.LabelOpts(is_show=False),
color="#6495ED" # 清华折线的颜色
)
.set_global_opts(
title_opts=opts.TitleOpts(title="历年高考考入北大和清华人数折线图"),
datazoom_opts=opts.DataZoomOpts(type_='slider', range_start=0, range_end=100),
)
)
dataZoom
提供了动态交互的功能,使得图表更加灵活和用户友好。数据量很大时,图表可能会显得拥挤且难以阅读。通过 dataZoom
,用户可以选择显示特定的数据范围,从而提高图表的可读性和清晰度。