【发布时间】:2021-12-17 22:11:34
【问题描述】:
我有一个包含大约 100 列的大数据框,我试图在一张图中绘制所有时间序列。有没有一种简单的方法来处理它,而无需手动指定每个 y 轴?
这将是一个具有以下时间序列的简单示例:02K W、03K W 和 04K W:
import pandas as pd
import matplotlib.pyplot as plt
df1 = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03', '2021-01-04', '2021-01-05'],
'index':[0, 1, 2, 3, 4],
'02K W':[3.5, 0.1, 3, 'nan', 0.2],
'03K W':[4.2, 5.2, 2.5, 3.0, 0.6],
'04K W':[1.5, 2.6, 8.2, 4.2, 5.3]})
df1['Date'] = pd.to_datetime(df1['Date'])
df1 = df1.set_index('index')
到目前为止,我手动指定所有 y 轴来绘制各个时间序列。
plt.plot(df1['Date'], df1['02K W'])
plt.plot(df1['Date'], df1['03K W'])
plt.plot(df1['Date'], df1['04K W'])
有没有更优雅的方式来指定绘图的相关列?
【问题讨论】:
-
使用 for 循环。遍历列名列表
-
您是否在 02K W...03K W 等中看到了模式。如果是这样,只需使用迭代器。
-
不,没有特定的模式,我尝试绘制除索引和日期列之外的所有内容。
-
df.plot(x='Date').
标签: python pandas dataframe matplotlib