【问题标题】:Chart from a csv file using pandas and matplotlib使用 pandas 和 matplotlib 来自 csv 文件的图表
【发布时间】:2021-12-04 15:46:48
【问题描述】:

我在列表中有字典形式的数据,从 csv 文件生成。

df = [{'Line Number': 11, 'Report Hour': 6, 'Kits Completed': 34}, {'Line Number': 11, 'Report Hour': 7, 'Kits Completed': 55}, {'Line Number': 12, 'Report Hour': 6, 'Kits Completed': 67}, {'Line Number': 12, 'Report Hour': 7, 'Kits Completed': 56}, {'Line Number': 14, 'Report Hour': 6, 'Kits Completed': 0}, {'Line Number': 14, 'Report Hour': 7, 'Kits Completed': 0}, {'Line Number': 15, 'Report Hour': 6, 'Kits Completed': 123}, {'Line Number': 15, 'Report Hour': 7, 'Kits Completed': 97

为了达到上面显示的结果,我使用了代码:

df = df.to_dict('records')

我感兴趣的是得到结果:第 11 行:x (axis) o'clock, y (axis) of boxes。第 15 行:x(轴)点,y(轴)的盒子。

然后在同一张图上,将第 14 行、第 15 行等的结果放在一起。效果应该类似于下图:

chart example

我将不胜感激:)

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 我尝试在不修改 csv 文件的情况下创建图表。它包含很多列,我只对这三个感兴趣。这就是我在列表中创建这本词典的原因,但我不知道这是否是个好主意,因为我被卡住了; (
  • 对于第 11 行,小时 = 6,数据显示 34 已完成,图表显示 65。有什么问题吗?

标签: python pandas matplotlib charts


【解决方案1】:

您可能不应该将 pandas 数据框转换为字典,使用 pandas 更容易绘图:

df = [{'Line Number': 11, 'Report Hour': 6, 'Kits Completed': 34}, {'Line Number': 11, 'Report Hour': 7, 'Kits Completed': 55}, {'Line Number': 12, 'Report Hour': 6, 'Kits Completed': 67}, {'Line Number': 12, 'Report Hour': 7, 'Kits Completed': 56}, {'Line Number': 14, 'Report Hour': 6, 'Kits Completed': 0}, {'Line Number': 14, 'Report Hour': 7, 'Kits Completed': 0}, {'Line Number': 15, 'Report Hour': 6, 'Kits Completed': 123}, {'Line Number': 15, 'Report Hour': 7, 'Kits Completed': 97}]
df = pd.DataFrame(df)

table = df.pivot(index='Report Hour', columns='Line Number', values = 'Kits Completed')
table.plot.bar()

给予:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-29
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    • 2019-04-15
    相关资源
    最近更新 更多