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


    【已解决】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")
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

    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")
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    在这里插入图片描述

  • 相关阅读:
    kubenetes-服务发现和负载均衡
    U盘资料损坏 在线调取资料帮大忙
    Vue、React和小程序中的组件通信:父传子和子传父的应用
    信号特点,异步/同步概念,查看信号(kill -l,man 7 signa),实时/分时os概念
    Codeforces Round #898 (Div. 4)
    strcat · strstr | 使用场景与模拟实现
    浏览器中输入url后,发生的事情
    第03章_用户与权限管理
    原生XMLHttpRequest发起请求
    ORACLE 通过数据值查找找表名和字段名
  • 原文地址:https://blog.csdn.net/a6661314/article/details/133634976