如何用Plotly绘制带版本标注的API提交量连接散点图?
解决Plotly图表需求的修改方案
先调整你的代码,实现点连线和点上方标注版本的需求,修改后的代码如下:
import plotly.express as px # 筛选数据并按时间排序,避免连线顺序混乱 filtered_data = final_api.query("info_title=='Avi TestSeDatastoreLevel2 Object API'").sort_values("Year-Month") # 绘制带连线和版本标注的散点图 fig = px.scatter( filtered_data, x="Year-Month", y="commits", color="info_version", title='Different Path Version found within one OAS file', width=1000, height=700, line_group="Year-Month", # 按时间顺序连接所有散点 text="info_version" # 将版本名称设为点的标注文本 ) # 把标注文本放在点的上方居中位置 fig.update_traces(textposition='top center') # 设置Y轴范围后再显示图表(确保布局修改生效) fig.update_layout(yaxis_range=[0,80]) fig.show()
关键改动说明:
- 先对数据按
Year-Month排序,保证连线是按时间顺序推进的 - 用
line_group="Year-Month"让所有散点按时间轴连成一条线;如果需要同版本的点单独连线,把参数改成"info_version"即可 - 通过
text="info_version"指定版本名称作为标注内容,再用update_traces调整标注位置 - 调整
update_layout和show()的顺序,避免布局修改不生效
其他可替代的图表库推荐
- Matplotlib:Python最基础的绘图库,语法直观,灵活性强。用
plt.scatter画点、plt.plot连线、plt.text加标注就能实现需求,适合生成静态图表。 - Seaborn:基于Matplotlib的高级统计绘图库,默认风格更美观,代码更简洁,处理时间序列类的可视化场景效率更高。
- Altair:声明式绘图库,语法贴近数据逻辑,代码简洁易读,天生支持交互式操作,很适合展示API版本迭代的时间序列变化。
内容的提问来源于stack exchange,提问作者Brie MerryWeather
相关产品推荐
相关产品推荐

