[英]Change Seaborn heatmap Y-ticklabels font color for alternate labels
我有一個 seaborn 熱圖,在 Y 軸上有 100 多個標簽。 我想以交替方式將 Y 標簽的字體顏色更改為紅色和藍色。 如果我有 10 個 Y 標簽,那么 5 個標簽應該有藍色字體,5 個標簽應該有紅色字體。
請幫助
您可以使用ax.ticklabel.font()
來實現這一點。 您甚至可以使用字體輕松區分鄰居。 這里給出了一個示例代碼。
import numpy as np; np.random.seed(0)
import seaborn as sns; sns.set_theme()
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data)
for i, tick_label in enumerate(ax.axes.get_yticklabels()):
if i%2:
tick_label.set_color("blue")
tick_label.set_fontsize("15")
else:
tick_label.set_color("red")
tick_label.set_fontsize("10")
雖然按照@Redox 的建議進行枚舉是必要的,但您需要一個靈活的解決方案,以防您的 label 是一個字符串,這在熱圖中很常見。 有關更多信息,請參閱[matplotlib documentation][1]
。 感謝@gasvom 的回答[here][1]
的啟發。
所以我會這樣執行:
import numpy as np;
import seaborn as sns;
uniform_data = np.random.rand(10, 12)
ax = sns.heatmap(uniform_data)
for i, tick_label in enumerate(ax.axes.get_yticklabels()):
if tick_label.get_text()=="a string of your choice":
tick_label.set_color("blue")
tick_label.set_fontsize("15")
else:
tick_label.set_color("red")
tick_label.set_fontsize("10")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.