Python 如何使用循环向子地块添加标题?
我正在尝试创建一个包含9个子图的绘图,并使用for循环为它们创建标题,以避免必须指定标题9次。但是,我的代码适用于前8个子情节,但不适用于最后一个情节。请帮忙Python 如何使用循环向子地块添加标题?,python,matplotlib,Python,Matplotlib,我正在尝试创建一个包含9个子图的绘图,并使用for循环为它们创建标题,以避免必须指定标题9次。但是,我的代码适用于前8个子情节,但不适用于最后一个情节。请帮忙 from scipy.stats import beta import matplotlib.pyplot as plt import numpy as np a=[1,10,20,30,40,50,60,70,80,90] b=[1,10,20,30,40,50,60,70,80,90] x = np.linspace(0.001,
from scipy.stats import beta
import matplotlib.pyplot as plt
import numpy as np
a=[1,10,20,30,40,50,60,70,80,90]
b=[1,10,20,30,40,50,60,70,80,90]
x = np.linspace(0.001,0.999, num=100)
for i in range(9):
plt.title('alpha=' + str(a[i])+' beta= ' + str(b[i]))
plt.subplot(3, 3, i+1)
plt.plot(x, beta.pdf(x, a[i], b[i]),'r-', lw=3, alpha=0.6, label='beta pdf')
plt.xticks(np.arange(0, 1.5, 0.5))
plt.yticks(np.arange(0, 13, 6.0))
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.4)
plt.show()
只需更改顺序,即
plt.title()
在plt.subplot()之后。您得到的标题比预期的少一个,因为代码在有打印位置之前打印了标题
另外,您可以通过plt.figure(figsize=(12,12))
更改绘图的大小,这样子绘图就不会重叠
修改后的代码:
从scipy.stats导入测试版
将matplotlib.pyplot作为plt导入
将numpy作为np导入
a=[1,10,20,30,40,50,60,70,80,90]
b=[1,10,20,30,40,50,60,70,80,90]
x=np.linspace(0.001,0.999,num=100)
plt.figure(figsize=(12,12))#更改figure的大小!
对于范围(9)内的i:
plt.子地块(3,3,i+1)
plt.plot(x,beta.pdf(x,a[i],b[i]),'r-',lw=3,alpha=0.6,label='beta-pdf')
plt.xticks(np.arange(0,1.5,0.5))
plt.yticks(np.arange(0,13,6.0))
plt.子批次调整(左=无,下=无,右=无,上=无,wspace=无,hspace=0.4)
plt.title('alpha='+str(a[i])+'beta='+str(b[i]))#这里的绘图标题!!!
plt.show()
结果是:
切换plt.title
和plt.subplot
行的顺序(以便plt.subplot行在plt.title行之前)。