你好,我在从熊猫数据框中绘制数据时遇到问题。在几个for循环中,我想创建一个大的散点图(multiplots.png),在每个循环中向其添加新数据,同时还要创建单独的图,并在每个j循环中进行绘制和保存(plot_i_j.png)。
在我的代码中,plots_i_j.png图形是正确生成的,但是multiplots.png始终以最后的plot_i_j.png图形结尾。如您所见,我正在尝试在axComb上绘制multiplots.png,而plot_i_j.png图则在ax上绘制。有人可以帮我吗?
import pandas as pd
import matplotlib.pyplot as plt
columnNames = ['a','b']
scatterColors = ['red','blue','green','black']
figComb, axComb = plt.subplots(figsize=(8,6))
for i in range(4): # this is turbine number
df1 = pd.DataFrame(np.random.randn(5, 2), columns=columnNames)
df2 = pd.DataFrame(np.random.randn(5, 2), columns=columnNames)
print(df1)
for j in range(2):
fig, ax = plt.subplots(figsize=(8,6))
fig.suptitle(str(i)+'_'+str(j), fontsize=16)
df1.plot(columnNames[j], ax=ax, color='blue', ls="--")
plt.savefig('plot_'+str(i)+'_'+str(j)+'.png')
df1.reset_index().plot.scatter('index',columnNames[j],3,ax=axComb,color=scatterColors[j])
df2.reset_index().plot.scatter('index',columnNames[j],100,ax=axComb,color=scatterColors[j])
plt.savefig('multiPlots.png')
答案 0 :(得分:0)
确实是一个小错误。当您执行plt.savefig
时,matplotlib将查找最后一个调用的图形。
将plt.savefig('plot_'+str(i)+'_'+str(j)+'.png')
替换为fig.savefig('plot_'+str(i)+'_'+str(j)+'.png')
。
然后将plt.savefig('multiPlots.png')
替换为figComb.savefig('multiPlots.png')
。