使用Pandas Dataframe注释seaborn clustermap

时间:2016-08-08 01:53:55

标签: python-3.x pandas numpy heatmap seaborn

我正在使用seaborn(v.0.7.0)绘制热图。这是我的代码:

  

解决问题后更新了代码

### Get Data
sns.set(style="white")
adata       = pd.read_csv("Test.txt", sep="\t",index_col=0)
adata_log   = np.log2(adata)
e           = adata.iloc[0:7,0:3]
e_log       = adata_log.iloc[0:7,0:3]

#### Set up the matplotlib figure
f, ax       = plt.subplots(figsize=(11, 9))

#### Set color
hmcol       = ["#ffffff","#ffffff","#fbe576","#c06e36","#9a2651"]
cmap        = sns.blend_palette(hmcol,as_cmap=True)

#### Plot clustermap
sns.set(font_scale=0.8) ## 0.8 for normal use
aplot = sns.clustermap(e_log,cmap=cmap,method='average', metric='euclidean',standard_scale=None,row_cluster=False,col_cluster=False,row_linkage=None,col_linkage=None,linewidths=.05,square=True,annot=e,annot_kws={"size": 15},fmt='.2f')

aplot.cax.set_visible(False) #remove color bar
plt.setp(aplot.ax_heatmap.xaxis.get_majorticklabels(), rotation=90) ## Y-Axis label rotations
plt.setp(aplot.ax_heatmap.yaxis.get_majorticklabels(), rotation=0) ## X-Axis label rotations

##Save Figure
aplot.savefig(“Test-Fig1.0.pdf",orientation='potrait',dpi=600)

有什么方法可以将数据框'e'中的值用作注释?我试过了

  

ANNOT = E

在clustermap中,但它给了我一个错误:

  

ValueError:DataFrame的真值是不明确的。使用a.empty,   a.bool(),a.item(),a.any()或a.all()。

另外,无论如何我在横向模式下绘制图形?以下是代码中的数据和图:

print(e)

        X       Y      Z
A  100.72   90.20  13.58
B  160.98  162.24  12.85
C    6.76    8.03   0.66
D  241.49  277.89  29.43
E  156.78  145.54  30.72
F    6.09    5.96   0.93
G    4.57    1.16   0.74

Test Plot

1 个答案:

答案 0 :(得分:0)

将'seaborn'升级到v0.7.1解决了注释问题。我已经用修复更新了我的答案。

对于横向绘图,我想最简单的方法是将数据从高级更改为长级,即通过复制数据和粘贴转换来更改输入测试文件文件。

Bade的