Pyecharts 折线堆叠图数据序列和坐标轴不对应的问题

在用 pyecharts 练手的时候,尝试用下表中的数据构造一份折线堆叠图

Pyecharts 折线堆叠图数据序列和坐标轴不对应的问题_第1张图片

year_line = Line().add_xaxis(summary.columns.to_list())
# year_line = Line().add_xaxis([1,2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,13])

for i in range(4):
    year_line.add_yaxis(str(i+2012),
                       stack='销量', # 堆叠参数,会使数据在坐标轴上堆叠不相交
                       y_axis=summary.iloc[i].values.tolist(),
                       is_smooth=True
                       )

year_line.set_global_opts(
        tooltip_opts=opts.TooltipOpts(trigger="axis"),
        yaxis_opts=opts.AxisOpts(
            type_="value",
            axistick_opts=opts.AxisTickOpts(is_show=True),
            splitline_opts=opts.SplitLineOpts(is_show=True),
        ),
        xaxis_opts=opts.AxisOpts(type_="category", boundary_gap=False),
    )
year_line.render_notebook()

然而输出的图表发现图中的数据序列并不是从 1 开始,而是偏移一个单位从 0 或 2 开始,并且如果 x 轴长度变短会导致图中数据缺失。

Pyecharts 折线堆叠图数据序列和坐标轴不对应的问题_第2张图片

上图是我手动扩充了 x 轴的序列后的结果,虽然数据显示完全了,但数据序列和 x 轴依然不对应。对照着官方文档和示例,在一个多小时的时间里,不断尝试各种可能的配置项和参数。

最终发现问题在于 x 轴序列参数的数据类型上。上面不论是转换生成列表或者是手动输入的列表,其中元素的数据类型都是 int,对照官方示例上传递的元素数据类型为字符串 str ,进行更改后才输出预期结果。

year_line = Line().add_xaxis(['一月','二月','三月','四月','五月','六月',
							'七月','八月','九月','十月','十一月','十二月'])

Pyecharts 折线堆叠图数据序列和坐标轴不对应的问题_第3张图片

总结:在排除了语法和参数错误的情况下,仍然无法得到预期结果,问题有可能出现在变量的数据类型和维度上

毕竟 python 作为动态语言,其变量的类型声明一直是被吐槽的点。

最后附上 pyecharts 官方文档和示例:

文档

https://pyecharts.org/#/zh-cn/

示例

https://gallery.pyecharts.org/#/README

你可能感兴趣的:(python,数据可视化)