pyecharts 可视化问题

img

为什么图显示出来只有标题,没有副标题
303030330330303030303003033303300330303003003033(凑字数)

img

删除了item_gap语句,就显示出来了,why?

img

问题点:参数类型错误
item_gap #主副标题之间的距离 int类型,默认值是 10.

  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料中的第一个段落,问题是图表只显示标题而没有显示副标题,并且删除了item_gap语句后,图表正常显示了。那么,接下来我将解释这个问题的原因。

    在给定的代码中,没有找到关于副标题的相关代码。因此,副标题的显示问题可能是因为副标题的相关代码没有被添加进去。

    要在图表中添加副标题,可以使用set_global_opts方法,并传递title_opts参数来设置标题选项。在这个问题中,副标题是通过调用opts.TitleOpts方法来设置的。

    具体的解决方案如下:

    1. 导入optionscharts模块:
    from pyecharts import options as opts
    from pyecharts.charts import Bar, Timeline
    
    1. 创建一个时间轴实例:
    tl = Timeline()
    
    1. 循环遍历每一年的数据:
    for i in range(1977, 2021):
        # 根据年份筛选数据并排序
        df_sub = df[df["year"] == i].sort_values(by="csum")
        cats_list = list(df_sub["cats"])
        csum_list = list(df_sub["csum"])
        color_list = list(df_sub["color"])
        y = []
    
        # 创建BarItem实例,设置图形的颜色
        for j in range(5):
            y.append(
                opts.BarItem(
                    name=cats_list[j],
                    value=csum_list[j],
                    itemstyle_opts=opts.ItemStyleOpts(color=color_list[j])
                )
            )
    
        # 创建柱状图实例
        bar = (
            Bar(init_opts=opts.InitOpts(width='720px', height='320px'))
            .add_xaxis(xaxis_data=cats_list)
            .add_yaxis(series_name='', yaxis_data=y, label_opts=opts.LabelOpts(position="right", font_weight="bold"), category_gap=30)
            .reversal_axis()
            .set_global_opts(
                title_opts=opts.TitleOpts(title="看看谁跑得快(时间:{} 年)".format(i), subtitle="副标题", pos_left=350, padding=[30, 20]),
                xaxis_opts=opts.AxisOpts(max_=50000)
            )
        )
    
        # 将柱状图添加到时间轴实例中
        tl.add(bar, "{} 年".format(i))
        tl.add_schema(play_interval=300, is_loop_play=False)
    
    # 渲染并保存图表
    tl.render("b.html")
    

    这样,每个图表都会显示一个主标题和一个副标题。

    至于为什么删除了item_gap语句后,图表就正常显示了,无法确定,因为没有提供完整的代码和数据。这可能是由于item_gap参数的使用方式不正确或者其他原因导致的。