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

python中基于分组(或类)的颜色热图

python中基于分组(或类)的颜色热图,python,pandas,matplotlib,heatmap,Python,Pandas,Matplotlib,Heatmap,有谁能帮我根据类生成一个彩色相关矩阵,这样我就可以看到簇了。我有一个包含值的nparray和另一个包含每个元素的类颜色(十六进制颜色代码)的nparray。我如何制作一个热图,它具有每个单元格的相关值,但由类(六种不同的颜色)着色。这里有一个例子 这似乎是相关的,但是,解决方案只是使用了预定义的cmap。我能够生成一个pcolor图,但是颜色似乎与簇标签不相关。我认为cmap分配是错误的 import matplotlib.pyplot as plt from pylab import * im

有谁能帮我根据类生成一个彩色相关矩阵,这样我就可以看到簇了。我有一个包含值的nparray和另一个包含每个元素的类颜色(十六进制颜色代码)的nparray。我如何制作一个热图,它具有每个单元格的相关值,但由类(六种不同的颜色)着色。这里有一个例子

这似乎是相关的,但是,解决方案只是使用了预定义的cmap。我能够生成一个pcolor图,但是颜色似乎与簇标签不相关。我认为cmap分配是错误的

import matplotlib.pyplot as plt
from pylab import *
import numpy as np
import pandas as pd

cpool=['#23525f','#f271c4','#33cccc','#e11212','#bf7300','#f2ea30']
correlations = pd.DataFrame.corr(whisky.iloc[:,2:14].transpose())
correlations = np.array(correlations)  #86x86 np.array

correlation_colors = []
for i in range(len(distilleries)):
    for j in range(len(distilleries)):
        if correlations[i,j] < 0.7:                    # if low correlation,
            correlation_colors.append('#f9f9f9')         # just use white. add to the empty array
        else:                                          # otherwise,
            if whisky.Group[i] == whisky.Group[j]:     # if the groups match,
                correlation_colors.append(cpool[whisky.Group[i]]) # color them by their mutual group (class) 0-5
            else:                                      # otherwise
                correlation_colors.append('#e4e1ff') # color them lightgray

corr_color=np.array(correlation_colors).reshape(86,86)
colmap=matplotlib.colors.ListedColormap(corr_color)
plt.pcolor(correlations,c=corr_color,cmap=colmap)
导入matplotlib.pyplot作为plt
从派拉布进口*
将numpy作为np导入
作为pd进口熊猫
cpool=['#23525f'、'#f271c4'、'#33cccc'、'#e11212'、'#bf7300'、'#f2ea30']
correlations=pd.DataFrame.corr(whisky.iloc[:,2:14].transpose())
相关性=np.数组(相关性)#86x86 np.数组
相关颜色=[]
对于范围内的i(酒厂):
对于范围内的j(酒厂):
如果相关性[i,j]<0.7:#如果相关性较低,
关联颜色。附加(“#f9f9f9”)#只需使用白色即可。添加到空数组中
否则:#否则,
如果威士忌组[i]==威士忌组[j]:#如果各组匹配,
相关性_colors.append(cpool[whisky.Group[i]])#根据它们的相互组(类)0-5给它们着色
否则:#否则
关联颜色。附加(“#e4e1ff”)#将它们涂成浅灰色
corr_color=np.数组(相关颜色).重塑(86,86)
colmap=matplotlib.colors.ListedColormap(颜色)
plt.pcolor(相关性,c=corr_color,cmap=colmap)

@Spencer\u Trinh你能制作出你的热图吗?我期待着制作类似的东西。