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

2024-09-21 05:37:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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.figure(figsize=(a,b))会为每个数据集生成六个不同的图,我希望它们保持绘制在一个图上。我该怎么做

谢谢


Tags: fordatatimenpplterrormeanarray
1条回答
网友
1楼 · 发布于 2024-09-21 05:37:35

尝试在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()

相关问题 更多 >

    热门问题