Python-调整for循环中的绘图大小



我有一个for循环,它从多个数据集计算值(g(,并将其绘制在散点图中:

g_meanarray = []
import matplotlib.patches as mpatches
for i in range(len(dataset)):
data=np.loadtxt(dataset[i],dtype=float,delimiter='/')
distance=data[:,2]
number=data[:,0]
time=data[:,1]
garray = []

g_error = errorfunc_g(distance,time)
error_array = np.array(g_error)
g_res=gravity(number,time,distance)
garray.append(g_res)
print(error_array)
print(garray, 'n')

g_mean = np.mean(garray)
g_meanarray.append(g_mean)
n = i + 1

plt.scatter([n,n,n,n,n],garray, c = 'green', marker='.',label = "dataset{0}".format(i)) # Plots the measured g values for each dataset
plt.errorbar([n,n,n,n,n],g_res,yerr=error_array, linestyle="None")
plt.title('(Figure 1) - measured gravity values by dataset')
plt.xlabel('Dataset')
plt.ylabel('gravity estimated (m/s^2)')

plt.scatter(n,g_mean,linestyle="None", label = "dataset{0}".format(i), c = 'black') # plots the mean g value for each dataset
plt.title('(Figure 1) - measured gravity values by dataset')
plt.xlabel('Dataset')
plt.ylabel('gravity estimated (m/s^2)')
meanlegend = mpatches.Patch(color='black', label='Mean g value')
datalegend = mpatches.Patch(color='green', label='Measured g values')
plt.legend(handles=[datalegend, meanlegend])

我想调整结果图的大小,但使用plt.fig(figsize=(a,b((会为每个数据集生成六个不同的图,我希望它们保持绘制在一个图上。我该怎么做?

感谢

尝试在for循环之前初始化绘图,然后在for循环之外的末尾调用plt.show()

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
for i in range(10):
ax.scatter(i,i)
fig.set_size_inches(w=i,
h=i)
plt.show()

最新更新