如何用Python创建简易时间轴图表?求实现方案及参考资料
Python 时间轴图表实现方案
一、基于 Matplotlib 的基础时间轴实现
Matplotlib是Python最基础的绘图库,代码逻辑清晰,适合新手快速实现目标效果。以下代码可复刻你需要的竖线式时间轴(带节点、日期和事件文本):
import matplotlib.pyplot as plt import numpy as np # 准备时间轴数据,可根据实际需求替换 dates = ["2020-01", "2020-06", "2021-01", "2021-06", "2022-01", "2022-06"] events = [ "项目启动", "完成需求分析", "核心功能开发完成", "第一轮测试", "正式上线", "迭代优化" ] # 将事件转换为y轴索引,方便排列 y_pos = np.arange(len(dates)) # 创建画布 fig, ax = plt.subplots(figsize=(8, 6)) # 绘制时间轴核心竖线 ax.vlines(x=0, ymin=-1, ymax=len(dates), color='#888888', linewidth=2) # 绘制事件节点(圆形标记) ax.scatter([0]*len(dates), y_pos, color='#2E86AB', s=100, zorder=5) # 添加日期和事件文本 for y, date, event in zip(y_pos, dates, events): # 日期显示在时间轴左侧 ax.text(-0.2, y, date, ha='right', va='center', fontsize=10) # 事件描述显示在时间轴右侧 ax.text(0.2, y, event, ha='left', va='center', fontsize=10) # 美化图表,隐藏多余坐标轴 ax.set_ylim(-1, len(dates)) ax.set_xlim(-1, 1) ax.spines[['top', 'right', 'bottom', 'left']].set_visible(False) ax.set_yticks([]) ax.set_xticks([]) # 添加标题 plt.title("项目时间轴", fontsize=14, pad=20) plt.tight_layout() plt.show()
可按需调整的细节:
- 修改
dates和events替换成自己的内容 - 调整
color参数改变线条、节点的颜色 - 修改
figsize调整图表尺寸 - 调整
text的x坐标值,控制文本与时间轴的间距
二、基于 Plotly 的交互式时间轴(可选)
如果需要支持交互(比如鼠标悬停显示详情、缩放),可以用Plotly库,代码更简洁:
import plotly.express as px import pandas as pd # 准备数据 df = pd.DataFrame({ "日期": ["2020-01", "2020-06", "2021-01", "2021-06", "2022-01", "2022-06"], "事件": ["项目启动", "完成需求分析", "核心功能开发完成", "第一轮测试", "正式上线", "迭代优化"] }) # 创建交互式时间轴 fig = px.timeline(df, x_start="日期", x_end="日期", y="事件") # 反转y轴,让事件按时间顺序从上到下排列 fig.update_yaxes(autorange="reversed") fig.update_layout( title="项目时间轴", showlegend=False, height=400 ) # 打开浏览器展示交互式图表 fig.show()
内容的提问来源于stack exchange,提问作者MaxIsaac
相关产品推荐
相关产品推荐

