Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.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_Colorbar - Fatal编程技术网

Python 尝试添加颜色栏时出错

Python 尝试添加颜色栏时出错,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,我正在尝试创建一个相关矩阵。创建矩阵工作正常,直到我尝试添加颜色栏 这是我当前的代码: def corr_matrix(data): '''function to find the mean for days''' data=data.ix[:,1:].corr(method='pearson') row_lab=[] col_lab=[] for i in data: row_lab.append(i) col_lab

我正在尝试创建一个相关矩阵。创建矩阵工作正常,直到我尝试添加颜色栏

这是我当前的代码:

def corr_matrix(data):
    '''function to find the mean for days'''

    data=data.ix[:,1:].corr(method='pearson')
    row_lab=[]
    col_lab=[]

    for i in data:
        row_lab.append(i)
        col_lab.append(i)
    column_labels = col_lab
    row_labels = row_lab
    data=np.round(data.corr(method='pearson').abs(), decimals=2)
    data=np.array(data)
    fig, ax = plt.subplots()

    plt.axis('tight')
    heatmap = ax.pcolor(data, cmap='RdPu'),                  
    plt.colorbar(mappable=heatmap)    # put the major ticks at the middle of each cell
    ax.set_xticks(np.arange(data.shape[0])+0.5, minor=False)
    ax.set_yticks(np.arange(data.shape[1])+0.5, minor=False)

    ax.invert_yaxis()
    ax.xaxis.tick_top()    
    ax.set_xticklabels(row_labels, minor=False, rotation=90)
    ax.set_yticklabels(column_labels, minor=False)
    plt.show()
我尝试了
plt.colorbar()
。这也行不通。任何帮助都会很好

我看过这个问题:但答案似乎不起作用:(

这是我的错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 538, in runfile
    execfile(filename, namespace)
  File "C:/Users/AClayton/Desktop/HData/correlation.py", line 152, in <module>
    cmat=corr_matrix(all_data)
  File "C:/Users/AClayton/Desktop/HData/correlation.py", line 88, in corr_matrix
    plt.colorbar(mappable=heatmap)    # put the major ticks at the middle of each cell
  File "C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\matplotlib\pyplot.py", line 2121, in colorbar
    ret = gcf().colorbar(mappable, cax = cax, ax=ax, **kw)
  File "C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\matplotlib\figure.py", line 1451, in colorbar
    cb = cbar.colorbar_factory(cax, mappable, **kw)
  File "C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\matplotlib\colorbar.py", line 1274, in colorbar_factory
    cb = Colorbar(cax, mappable, **kwargs)
  File "C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site-packages\matplotlib\colorbar.py", line 852, in __init__
    mappable.autoscale_None()
AttributeError: 'tuple' object has no attribute 'autoscale_None'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site packages\spyderlib\widgets\externalshell\sitecustomize.py”,第538行,在runfile中
execfile(文件名、命名空间)
文件“C:/Users/AClayton/Desktop/HData/correlation.py”,第152行,在
cmat=校正矩阵(所有数据)
文件“C:/Users/AClayton/Desktop/HData/correlation.py”,第88行,在corr_矩阵中
plt.colorbar(mappable=heatmap)#将主刻度放在每个单元格的中间
文件“C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site packages\matplotlib\pyplot.py”,第2121行,颜色栏
ret=gcf().colorbar(可映射,cax=cax,ax=ax,**千瓦)
文件“C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site packages\matplotlib\figure.py”,第1451行,颜色栏
cb=cbar.colorbar_工厂(cax,可映射,**kw)
文件“C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site packages\matplotlib\colorbar.py”,第1274行,位于colorbar\u工厂
cb=颜色条(cax,可映射,**kwargs)
文件“C:\Users\AClayton\WinPython-64bit-2.7.5.3\python-2.7.5.amd64\lib\site packages\matplotlib\colorbar.py”,第852行,在\uuu init中__
可映射。自动缩放\无()
AttributeError:“元组”对象没有“自动缩放\u无”属性
EDIIT
所有_数据
都替换为数据,因为这是一个打字错误


data=pd.DataFrame(np.random.rand(10,10))
产生错误

这是一个我并不自豪的答案,你可能会对你的问题有同样的感觉。
我来了:

错误

AttributeError: 'tuple' object has no attribute 'autoscale_None'
触发

mappable.autoscale_None()
告诉你热图在哪

plt.colorbar(mappable=heatmap)
实际上是一个元组

怎么会这样

如果你写信

>>> a = 1,
您正在定义一个元组

>>> a
(1,)
>>> type(a)
<type 'tuple'>
所以,去掉分号,你会得到这样一个漂亮的数字:


数据的类型是什么?数组?一个numpy矩阵?一个数据帧?更多,所有数据的来源是什么?请发布可以执行并再现您的问题的最小代码段。这是一个数据帧,data=pd.DataFrame(np.random.rand(10,10))产生同样的结果。这是显而易见的!非常感谢
heatmap = ax.pcolor(data, cmap='RdPu'),