You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python条形图竞速中如何设置周期值为索引+1或读取指定列

解决bar_chart_race周期显示问题

问题根源

你之前写的{x:.0f + 1}是错误的Python格式字符串语法,这才引发了格式解析错误(ffmpeg的提示是误导性的,实际是Matplotlib格式解析失败)。下面针对你的两个需求给出具体解决方案:

需求1:将周期索引+1显示

有两种简单方法:

  • 方法一:修改DataFrame索引
    提前把原0-based索引改成1-based,之后直接用原来的格式字符串即可:
    # 修改索引为从1开始
    df_tp.index = df_tp.index + 1
    # 运行条形图竞速
    import bar_chart_race as bcr
    bcr.bar_chart_race(df = df_tp, 
                       n_bars = 10, 
                       sort='desc',
                       period_fmt='Gameweek {x:.0f}',
                       period_length=1500,
                       steps_per_period = 20,
                       title='my title',
                       filename = 'fpl.mp4',
                       interpolate_period = False  # 建议用布尔值False,而非字符串'false'
                       )
    
  • 方法二:使用自定义格式函数
    不需要修改索引,直接给period_fmt传一个lambda函数,对周期值做加1处理:
    import bar_chart_race as bcr
    bcr.bar_chart_race(df = df_tp, 
                       n_bars = 10, 
                       sort='desc',
                       period_fmt=lambda x: f"Gameweek {int(x) + 1}",  # 自定义格式逻辑
                       period_length=1500,
                       steps_per_period = 20,
                       title='my title',
                       filename = 'fpl.mp4',
                       interpolate_period = False
                       )
    

需求2:直接读取数据中的'gameweek'列

如果你的数据中存在gameweek列,先将该列设置为DataFrame的索引,这样周期就会直接使用正确的gameweek数值:

# 将gameweek列设为索引(确保该列是数值类型)
df_tp = df_tp.set_index('gameweek')
# 运行条形图竞速
import bar_chart_race as bcr
bcr.bar_chart_race(df = df_tp, 
                   n_bars = 10, 
                   sort='desc',
                   period_fmt='Gameweek {x:.0f}',
                   period_length=1500,
                   steps_per_period = 20,
                   title='my title',
                   filename = 'fpl.mp4',
                   interpolate_period = False
                   )

内容的提问来源于stack exchange,提问作者Jahlove

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 01:02:22