Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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 子地块matplotlib语法错误_Python_Matplotlib_Plot_Outofrangeexception_Subplot - Fatal编程技术网

Python 子地块matplotlib语法错误

Python 子地块matplotlib语法错误,python,matplotlib,plot,outofrangeexception,subplot,Python,Matplotlib,Plot,Outofrangeexception,Subplot,我正在使用matplotlib在循环中生成子批。例如,我想分包49个数据集,从文档中,我以这种方式实现它 import numpy as np import matplotlib.pyplot as plt X1=list(range(0,10000,1)) X1 = [ x/float(10) for x in X1 ] nb_mix = 2 parameters = [] for i in range(49): param = [] Y = [0] * len(X1

我正在使用matplotlib在循环中生成子批。例如,我想分包49个数据集,从文档中,我以这种方式实现它

import numpy as np
import matplotlib.pyplot as plt

X1=list(range(0,10000,1))
X1 = [ x/float(10) for x in X1 ]
nb_mix = 2

parameters = []

for i in range(49):

    param = []

    Y = [0] * len(X1)

    for j in range(nb_mix):

        mean = 5* (1 + (np.random.rand() * 2 - 1 ) * 0.5 )
        var = 10* (1 + np.random.rand() * 2 - 1 )
        scale = 5* ( 1 + (np.random.rand() * 2 - 1) * 0.5 )

        Y = [ Y[k] + scale * np.exp(-((X1[k] - mean)/float(var))**2) for k in range(len(X1)) ] 
        param = param + [[mean, var, scale]]



    ax = plt.subplot(7, 7, i + 1)
    ax.plot(X1, Y)

    parameters = parameters + [param]

ax.show()
但是,从i=0开始,我有一个索引超出范围的错误

我在哪里可以做得更好,让它工作

--这就是我得到的错误

Traceback (most recent call last):
  File "F:\WORK\SOLVEUR\ALGOCODE\PYTHON_\DataSets\DataSets_DONLP2_gaussians.py", line 167, in <module>
    ax = plt.subplot(7, 7, i + 1)
  File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 766, in subplot
    a = fig.add_subplot(*args, **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\figure.py", line 777, in add_subplot
    a = subplot_class_factory(projection_class)(self, *args, **kwargs)
  File "C:\Python27\lib\site-packages\matplotlib\axes.py", line 8364, in __init__
    self._subplotspec = GridSpec(rows, cols)[int(num)-1]
  File "C:\Python27\lib\site-packages\matplotlib\gridspec.py", line 175, in __getitem__
    raise IndexError("index out of range")
IndexError: index out of range
回溯(最近一次呼叫最后一次):
文件“F:\WORK\solver\ALGOCODE\PYTHON\uu\DataSets\DataSets\u DONLP2\u gaussians.py”,第167行,在
ax=plt.子批次(7,7,i+1)
文件“C:\Python27\lib\site packages\matplotlib\pyplot.py”,第766行,在子批中
a=图add_子地块(*args,**kwargs)
文件“C:\Python27\lib\site packages\matplotlib\figure.py”,第777行,在add\u子批中
a=子地块等级工厂(投影等级)(自,*args,**kwargs)
文件“C:\Python27\lib\site packages\matplotlib\axes.py”,第8364行,在\uuu init中__
self.\u subplotspec=GridSpec(行、列)[int(num)-1]
文件“C:\Python27\lib\site packages\matplotlib\gridspec.py”,第175行,在\uuu getitem中__
提升索引器(“索引超出范围”)
索引器:索引超出范围

谢谢

请发布完整的错误消息。对我来说,当我将最后一行更改为plt时,它会起作用。show()…
range(len(X1))
几乎不是你想要做的。使用
X1
,或
enumerate(X1)
@BrenBarn这是错误igot@RaphaelRoth这不是给我的…,添加了错误消息