Я печатаю субплоты с пантами данных и Numpy. Этот код печатает 4 графика на странице, а затем сохраняет графики в виде отдельных PDF-файлов.
Могу ли я вызвать массив numpy для более эффективного построения графика dataframe2? Может быть, с помощью команды enumerate?
Я приложил изображение выводимых графиков.
Мой код выполняет свою работу, однако я чувствую, что в целом он очень неэффективен. Для собственного обучения я хотел бы упростить код.
Pandas_Outputs
no_of_graphs = 2*2
for a in range(2):
start = 1 + counter * no_of_graphs
end = 4 + counter * no_of_graphs
ax = df1[df1.columns[start:end]].plot(figsize=(12,15), grid = True, legend = True, subplots=True, layout = (2,2), sharex = False, color = 'blue')
df2[df2.columns[1 + counter * no_of_graphs]].plot(ax=ax[0][0], grid = True, legend = True, linestyle = 'dashdot', color = 'red')
df2[df2.columns[2 + counter * no_of_graphs]].plot(ax=ax[0][1], grid = True, legend = True, linestyle = 'dashdot', color = 'red')
df2[df2.columns[3 + counter * no_of_graphs]].plot(ax=ax[1][0], grid = True, legend = True, linestyle = 'dashdot', color = 'red')
df2[df2.columns[4 + counter * no_of_graphs]].plot(ax=ax[1][1], grid = True, legend = True, linestyle = 'dashdot', color = 'red')
ax = np.squeeze(ax)
fname = 'file' + str(a) + '.PDF'
for y in range(0,2):
for x in range(0,2):
ax[x,y].set_xticks(df1.index[::60])
ax[x,y].set_xticklabels(df1.Time[::60], rotation=270)
plt.tight_layout()
plt.gcf()
plt.savefig(fname, dpi = 1000)
counter +=1
print(counter)