【已解决】Pyecharts折线图,只有坐标轴没有折线数据

31 篇文章 2 订阅

【已解决】Pyecharts折线图,只有坐标轴没有折线数据

1、问题复现

在做简单的数据通过 Pyecharts 生成折现图的时候,一直只有坐标轴没有折线数据,但是代码一直看不出问题,代码如下:

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line

data = pd.DataFrame(
    data=[[2011, 33.6], [2012, 33.0], [2013, 31.2], [2014, 31.0], [2015, 30.6], [2016, 30.1], [2017, 29.3],
          [2018, 28.4], [2019, 28.2], [2020, 30.2]], columns=['年份', '恩格尔系数'])

line = (
    Line()
        .add_xaxis(data['年份'].tolist())
        .add_yaxis("恩格尔系数", data['恩格尔系数'].tolist(), label_opts=opts.LabelOpts(is_show=True))
        .set_global_opts(
        title_opts=opts.TitleOpts(title="2011年-2020年居民恩格尔系数(Pyecharts)"),
        toolbox_opts=opts.ToolboxOpts(),
        xaxis_opts=opts.AxisOpts(name="年份"),
        yaxis_opts=opts.AxisOpts(name="恩格尔系数"),
    )
)

line.render("恩格尔系数折线图(Pyecharts).html")

在这里插入图片描述

2、原因

在 Pyecharts 库中,x 轴数据类型对于确定数据的显示方式非常重要。

Pyecharts 将 ‘年份’ 值视为数值。当 x 轴值是数值时,Pyecharts 会尝试创建一个连续轴,这可能不会正确显示离散的年度数据。

当你使用 .add_xaxis(data['年份'].astype("str").tolist()) 时,你明确地将 ‘年份’ 列转换为字符串,然后传递给 x 轴。这有助于 Pyecharts 将 ‘年份’ 值视为离散类别,而不是数值。

因此,通过将 ‘年份’ 转换为字符串,你告诉 Pyecharts 将它们视为类别,它会将数据显示为一条包含每年单独点的折线图。

3、问题解决

把 x 轴的数据转化为 str,问题就解决了,代码如下:

import pandas as pd
from pyecharts import options as opts
from pyecharts.charts import Line

data = pd.DataFrame(
    data=[[2011, 33.6], [2012, 33.0], [2013, 31.2], [2014, 31.0], [2015, 30.6], [2016, 30.1], [2017, 29.3],
          [2018, 28.4], [2019, 28.2], [2020, 30.2]], columns=['年份', '恩格尔系数'])

line = (
    Line()
        .add_xaxis(data['年份'].astype("str").tolist())
        .add_yaxis("恩格尔系数", data['恩格尔系数'].tolist(), label_opts=opts.LabelOpts(is_show=True))
        .set_global_opts(
        title_opts=opts.TitleOpts(title="2011年-2020年居民恩格尔系数(Pyecharts)"),
        toolbox_opts=opts.ToolboxOpts(),
        xaxis_opts=opts.AxisOpts(name="年份"),
        yaxis_opts=opts.AxisOpts(name="恩格尔系数"),
    )
)

line.render("恩格尔系数折线图(Pyecharts).html")

在这里插入图片描述

  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳舞的皮埃尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值