【问题标题】:Plotting each dataframe row separately (on separate plots) using for loop使用 for 循环分别绘制每个数据帧行(在单独的图上)
【发布时间】:2018-12-13 21:04:30
【问题描述】:
我一直在尝试使用 for 循环绘制 265 行数据帧的每一行。但是,代码所做的只是将所有 265 行绘制在一个图形中,而不是我的目标是 265 个单独的图形。以下是我的代码:
for q in range(265):
print('This is for row',q)
row = dataframe.iloc[q].plot()
row.plot()
【问题讨论】:
标签:
python
pandas
matplotlib
【解决方案1】:
每次调用 plot() 都会简单地将另一位艺术家添加到当前打开的绘图中。如果你想单独保存你的图,你的循环应该打开一个新图,在其中绘制()图,保存它,然后为数据框中的每一行关闭它。
说到这一点 - DataFrames 有一个 iterrows 方法,它可以让您直接访问每一行,这样您就不必在循环的每次迭代中按索引定位。
【解决方案2】:
import matplotlib.pyplot as plt
import pandas as pd
dataframe = pd.DataFrame(np.random.randint(0,10,size=(10, 4)), columns=range(4))
for q in range(dataframe.shape[0]):
print('This is for row',q)
plt.figure(figsize=(5,5))
plt.plot(dataframe.iloc[q,:])