gpt4 book ai didi

python - 在 pandas 的 seaborn clustermap 中设置 col_colors

转载 作者:行者123 更新时间:2023-11-28 21:12:12 26 4
gpt4 key购买 nike

我有一个从 Pandas 数据帧生成的聚类图。其中两列用于生成聚类图,我需要使用第 3 列使用 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 的详细信息,以便将正确的值链接到适当的图 block 。一些方向将不胜感激。

最佳答案

这个例子用样本数据会更容易解释。我不知道你的数据是什么样的,但假设你有一堆 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')

enter image description here基本上上面大部分代码所做的是创建一个颜色向量,该向量对应于数据框的 Source 列。您当然可以手动创建它,其中列表中的第一种颜色将映射到数据框中的第一行,第二种颜色将映射到第二行,依此类推(绘制时此顺序会更改),然而,这将是很多工作。我使用了红色调色板,因为这是你在问题中提到的,但我可能会建议使用不同的调色板。我按行着色,但是你可以对列做同样的事情。希望这对您有所帮助!

关于python - 在 pandas 的 seaborn clustermap 中设置 col_colors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34334796/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com