如何在Pandas中绘制起止时间对的时间线图表?
用Pandas绘制步骤起止时间图(甘特图样式)
你可以用Matplotlib实现这种展示各步骤起止时间与持续时长的图表,以下是针对你的数据的完整实现:
首先是你的原始数据:
import pandas as pd data = [['set1', 0,10], ['step2', 3,12], ['step3', 8,15]] df = pd.DataFrame(data, columns=['name', 'start','end'])
先计算每个步骤的持续时长(可选,但能让图表逻辑更清晰):
df['duration'] = df['end'] - df['start']
接下来用Matplotlib绘制横向条形图(类似甘特图):
import matplotlib.pyplot as plt # 设置画布尺寸 plt.figure(figsize=(10, 3)) # 绘制横向条形:y轴为步骤名称,条形起始位置对应start值,长度对应持续时长 plt.barh(df['name'], df['duration'], left=df['start'], color='#1f77b4') # 添加坐标轴标签和标题 plt.xlabel('时间') plt.ylabel('步骤') plt.title('各步骤起止时间与持续时长') # 为每个步骤标注明确的起止时间 for idx, row in df.iterrows(): plt.text(row['start'], idx, f"开始: {row['start']}", va='center') plt.text(row['end'], idx, f"结束: {row['end']}", va='center') # 调整布局避免标签被截断 plt.tight_layout() plt.show()
生成的图表会直观展示每个步骤的时间跨度:y轴对应步骤名称,条形的起始点是步骤开始时间,长度代表持续时长,同时标注了明确的起止时间点。
如果需要优化样式,可做以下调整:
- 修改
color参数更换条形颜色 - 添加
plt.grid(axis='x', linestyle='--')显示x轴网格线 - 调整
figsize参数改变画布大小
内容的提问来源于stack exchange,提问作者Daniel Wu
相关产品推荐
相关产品推荐

