Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用循环向子地块添加标题?_Python_Matplotlib - Fatal编程技术网

Python 如何使用循环向子地块添加标题?

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,

我正在尝试创建一个包含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,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行之前)。