使用pandas和pyplot在网格中绘制多个图

时间:2019-11-28 11:49:05

标签: python-3.x pandas matplotlib grid

我有一个包含熊猫数据帧的列表,每个数据帧都包含一个时间序列。

当我尝试将它们绘制在网格中时,它们会全部出现在同一图中(即不在每个网格中都占据一个网格的网格中)。我的代码在这里:

get_fields

这将返回以下图:

enter image description here

另一种尝试也失败了:

for i in range(len(building_ids)): # building_ids is the list containing the dataframes/timeseries)
    ax = fig.add_subplot(nrows, ncols, i+1)
    building_id_dfs[i].plot(label = str(building_ids[i]))
    plt.legend()

enter image description here

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我发现是这样的:

fig = plt.figure()
fig.subplots_adjust(hspace=0.4, wspace=0.4)
colors = ['#a6cee3','#1f78b4','#b2df8a','#33a02c','#fb9a99','#e31a1c','#fdbf6f','#ff7f00','#cab2d6','#6a3d9a','#ffff99','#b15928']
for i in np.arange(1, 13):
    ax = fig.add_subplot(3, 4, i)
    sns.lineplot(x =building_id_dfs[i-1].index , y = building_id_dfs[i-1],ax=ax, color = colors[i-1])
    ax.set_title('site_id: ' + str(site_id) + '   meter : ' + str(meter))
plt.show()

enter image description here