使用pandas和matplotlib绘制csv多生产线每小时完成套数图表
实现方法
- 首先导入所需依赖库
import pandas as pd import matplotlib.pyplot as plt
- 处理数据(你当前已完成转换的字典列表假设变量名为
records)
# 你已有的字典列表数据 records = [{'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}] # 转换为DataFrame格式 df = pd.DataFrame(records) # 透视数据:行索引为报工小时,列为生产线编号,值为对应完成套件数 df_pivot = df.pivot(index='Report Hour', columns='Line Number', values='Kits Completed')
- 绘制目标图表
plt.figure(figsize=(10,6)) # 遍历生成每条生产线的折线 for line_num in df_pivot.columns: plt.plot(df_pivot.index, df_pivot[line_num], marker='o', label=f'生产线 {line_num}') # 配置图表样式 plt.xlabel('报工小时(点钟)') plt.ylabel('完成套件数量') plt.xticks(df_pivot.index.unique()) # 保证X轴仅展示存在的报工小时 plt.legend(title='生产线编号') plt.grid(alpha=0.3) plt.show()
如果你还保留了读取CSV后的原始DataFrame,不需要转成字典列表再转回DF,直接用原始DF执行上述透视和绘图步骤即可,运行效率更高。
内容的提问来源于stack exchange,提问作者Artur
相关产品推荐
相关产品推荐

