【发布时间】:2017-07-20 18:35:00
【问题描述】:
我正在遍历一个包含 6 个 col_names 的列表。我一次取 3 个 cols 循环,以便以后每次迭代打印 3 个子图。 我有 2 个具有相同列名的数据框,因此它们看起来相同,除了每个列名的直方图。
我想在同一个子图上绘制两个数据框的相似列名。现在,我将它们的直方图绘制在 2 个单独的子图上。
目前,对于 df_plot 中的 col 'A','B','C':
对于 df_plot2 中的 col 'A','B','C':
我只想要 3 个图表,我可以将相似的列名组合到同一个图表中,因此同一个图表中有蓝色和黄色条。
在下面添加df_plot2 不起作用。我认为我没有正确定义我的第二个axs,但我不知道该怎么做。
col_name_list = ['A','B','C','D','E','F']
chunk_list = [col_name_list[i:i + 3] for i in xrange(0, len(col_name_list), 3)]
for k,g in enumerate(chunk_list):
df_plot = df[g]
df_plot2 = df[g][df[g] != 0]
fig, axs = plt.subplots(1,len(g),figsize = (50,20))
axs = axs.ravel()
for j,x in enumerate(g):
df_plot[x].value_counts(normalize=True).head().plot(kind='bar',ax=axs[j], position=0, title = x, fontsize = 30)
# adding this doesnt work.
df_plot2[x].value_counts(normalize=True).head().plot(kind='bar',ax=axs[j], position=1, fontsize = 30)
axs[j].title.set_size(40)
fig.tight_layout()
【问题讨论】:
标签: python pandas matplotlib