python - 如何使用列名作为 x 值在 pandas 中绘制时间序列?
问题描述
如何绘制一个熊猫数据框,其中列是每个时间步的值,每一行对应不同的时间序列?
例如,我想在下面绘制数据框,其中x轴是列值(1,2,3),y轴是每一行的值,每一行是绘图的色调(按产品着色)。所有线图都在同一个图上
对于时间序列 1,它应该绘制 (1,2)、(2,2)、(3,0) 并且线图应该用时间序列 1 标记。
df = pd.DataFrame({'product': ['timeseries1', 'timeseries2', 'timeseries3', 'timeseries4', 'timeseries5'],
1: [2,21,2,14,15],
2: [2,3,9,22,44],
3: [0, 32, 0, 11,2]})
可以使用循环来完成,但是有没有办法直接使用 pandas plot
解决方案
通过数据的转置更容易:
ax = df.T.iloc[1:].plot()
_, labels = ax.get_legend_handles_labels()
ax.legend([f"timeseries{int(j)+1}" for j in labels])
iloc[1:]
是为了避免product
列和最后两行修改标签名称
推荐阅读
- wordpress - 为什么“WP Search Suggest”插件只搜索产品数据而不是全部?
- angular - 以 PDF 格式下载时,画布图表模糊不清
- java - 如何将 BorderBehavior 与 ajax 重新渲染一起使用
- spring-integration - Spring Integration Java DSL:如何使用 channelMapping 方法路由到标题中名称的通道?
- swift - 我应该在这个闭包中捕获“tableView”吗?
- r - 如何通过增加顺序将向量列表拆分为子列表。
- android - 改造响应为真,但 serverDB 中没有数据获取
- cocoa - 如何将文本附加到 NSTextView 实例的请求中?
- swift - ARKit SKVideoNode 在渲染上播放
- wordpress - 我需要 2 个帖子,但只显示 1 个 - WP_Query