【发布时间】:2019-11-08 23:09:06
【问题描述】:
我正在尝试使用 matplpotlib 在三列中绘制三个数据框。 我将 DF 的每一列绘制为图中相应列中的子图。但情节似乎相互重叠。不知道出了什么问题。请帮我找出问题。谢谢。
我添加了下面的代码,我试图实现我上面提到的。我没有在 subplot 中定义行数和列数,因为我想根据 DF 中的列数来创建。然后我使用 add_subplot 函数将它们添加到 for 循环中。但是子图在输出中重叠。我根据其他帖子的建议尝试了 fig.tightlayout,但我得到了 UserWarning:tight_layout not applied: a number of rows in subplot specification must be multiple of each other
fig = plt.figure()
#looping through each DF in a dict
for df_count, df_name in enumerate(df_dict):
df = df_dict[df_name]
#looping through column in the DF
for col_count, col in enumerate(df_dict[df_name]):
if col != "VAR":
print (col, col_count )
ax = fig.add_subplot(col_count, df_count + 1, 1)
ax.plot(df[col], df["CATEGORY"])
fig.tight_layout()
plt.savefig('foo.png')
【问题讨论】:
-
我的错,谢谢。我知道 add_subplot 的行和列不适用于子图位置,它们是固定的。此外,位置编号似乎在行中继续。我想知道是否要按列递增。
标签: python pandas matplotlib seaborn