2017-05-19 5 views
4

Ich möchte die Ticks einer Farbleiste in einer seaborn.clustermap ändern. This answer adressiert diese Frage für eine allgemeine matplotlib Farbleiste.Seaborn Clusterkarte: set colorbar ticks

g = sns.clustermap(np.random.rand(20,20), 
        row_cluster=None, col_cluster=None, 
        vmin = 0.25, vmax=1.0) 

Aus irgendeinem Grund, wenn ich clustermap(..., vmin=0.25, vmax=1.0) angeben, erhalte ich Zecken 0,3 bis 0,9, aber nicht 1,0. Wenn ich vmax=1.05 verlängere, bekomme ich einen Tick genau unter 1.05.

Meine Vermutung war, dass die g.cax Eigenschaft des Objekts von clustermap zurückgegeben wird, ist die Farbleiste, aber es hat keine .set_ticks() Methode.

Irgendwelche Ideen, wie man die Zecken einstellen kann?

+2

Ihre Frage ist klar, aber es wäre am besten, wenn Sie ein Beispiel so schreiben dass jemand sie einfach kopieren und einfügen könnte, um dir zu helfen. – mwaskom

Antwort

5

Genau wie seaborn.heatmap hat die seaborn.clustermap ein Argument cbar_kws (colorbar Schlüsselwortargumente). Dies erwartet ein Wörterbuch möglicher Argumente für die Farbbalkenfunktion matplotlib. Denn mit matplotlib, würden wir das ticks Argument verwenden, um Colorbar die Zecken manuell einstellen, können wir ein Wörterbuch wie diese

g = sns.clustermap(..., cbar_kws={"ticks":[0.25,1]}) 

bieten die Strichmarkierungen an 0.25 und 1 im colorbar zu erhalten. (Die Liste kann natürlich verlängert werden, wenn Sie mehr tickmarks wollen.)

kompletten Code:

import seaborn as sns 
import matplotlib.pyplot as plt 
import numpy as np 

g = sns.clustermap(np.random.rand(20,20), 
        row_cluster=None, col_cluster=None, 
        vmin = 0.25, vmax=1.0, cbar_kws={"ticks":[0.25,1]}) 

plt.show() 

enter image description here

Verwandte Themen