2016-08-08 11 views
0

seaborn(v.0.7.0)を使用してヒートマップをプロットしています。ここに私のコードは次のとおりです。Pandas Dataframeでseaborn clustermapに注釈を付ける

Updated code after fixing the problem

### 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」の値を使用することができる方法はありますか?私はclustermapで

annot=e

を試してみましたが、そのは私にエラーを与える:

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

また、それはとにかく私は風景モードでの姿をそこにプロット?注釈の問題を解決v0.7.1に

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

答えて

0

アップグレード 'seaborn':ここでコード上からのデータと図です。私は修正で私の答えを更新しました。

ランドスケープでプロットするには、データを長めから長い順に変更する、つまりデータをコピーして転置して入力テストファイルファイルを変更するのが最も簡単な方法だと思います。

バード

関連する問題