当前位置:  开发笔记 > 编程语言 > 正文

从pandas在seaborn clustermap中设置col_colors

如何解决《从pandas在seabornclustermap中设置col_colors》经验,为你挑选了1个好方法。

我有一个从pandas数据帧生成的clustermap.其中两列用于生成簇图,我需要使用第三列使用sns.palplot(sns.light_palette('red'))调色板生成col_colors栏(值将为0 - 1,浅 - 深色).

伪代码看起来像这样:

df=pd.DataFrame(input, columns = ['Source', 'amplicon', 'coverage', 'GC'])
tiles = df.pivot("Source", "amplicon", "coverage")
col_colors = [values from df['GC']]
sns.clustermap(tiles, vmin=0, vmax=2, col_colors=col_colors)

我正在努力寻找有关如何设置col_colors的详细信息,以便将正确的值链接到相应的tile.一些方向将不胜感激.



1> johnchase..:

使用示例数据可以更容易地解释此示例.我不知道您的数据是什么样的,但是说您有一堆GC内容测量值例如:

import seaborn as sns
import numpy as np
import pandas as pd
data = {'16S':np.random.normal(.52, 0.05, 12),
        'ITS':np.random.normal(.52, 0.05, 12),
        'Source':np.random.choice(['soil', 'water', 'air'], 12, replace=True)}
df=pd.DataFrame(data)
df[:3]

    16S         ITS         Source
0   0.493087    0.460066    air
1   0.607229    0.592945    water
2   0.577155    0.440726    water

所以数据是GC内容,然后有一个描述源的列.假设我们想要绘制GC内容的聚类地图,我们使用该Source列来定义网络

#create a color palette with the same number of colors as unique values in the Source column
network_pal = sns.light_palette('red', len(df.Source.unique()))

#Create a dictionary where the key is the category and the values are the
#colors from the palette we just created
network_lut = dict(zip(df.Source.unique(), network_pal))

#get the series of all of the categories
networks = df.Source

#map the colors to the series. Now we have a list of colors the same
#length as our dataframe, where unique values are mapped to the same color
network_colors = pd.Series(networks).map(network_lut)

#plot the heatmap with the 16S and ITS categories with the network colors
#defined by Source column
sns.clustermap(df[['16S', 'ITS']], row_colors=network_colors, cmap='BuGn_r')

在此输入图像描述 基本上上面的代码大部分都是创建一个颜色矢量,它Source与数据帧的列相反.你当然可以手动创建它,其中列表中的第一个颜色将映射到数据框中的第一行,第二个颜色将映射到第二行,依此类推(当你绘制它时,这个顺序会改变),然而,这将是很多工作.我使用了红色调色板,因为这是你在问题中提到的,尽管我可能会建议使用不同的调色板.我按行着色,但你可以为列做同样的事情.希望这可以帮助!

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有