2016-08-08 65 views
0

Ich benutze Seaborn (v.0.7.0), um eine Heat-Map zu zeichnen. Hier ist mein Code:Seestern-Clusterkarte mit Pandas Dataframe beschriften

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) 

Gibt es eine Möglichkeit, Werte in dem Datenrahmen ‚e‘ als Anmerkungen verwenden kann? Ich habe versucht,

annot=e

in clustermap aber sein gibt mir eine Fehlermeldung:

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

Auch sie es trotzdem ich die Figur im Querformat plotten? Hier die Daten und Abbildung von oben Code:

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

Antwort

0

Upgrade 'Seaborn' zu v0.7.1 löste das Annotation Problem. Ich habe meine Antwort mit Fix aktualisiert.

Zum Plotten in Landschaft, ich denke, der einfachste Weg wäre, meine Daten von hohen zu langen Reihenfolge ändern, d. H. Die Eingabe Testdatei Datei durch Kopieren von Daten und Einfügen als transponiert.

Bade