如何修改Seaborn热力图中颜色条的文本颜色
修改Seaborn热力图颜色条刻度文字颜色为黄色
要修改热力图颜色条(colorbar)上的数字颜色,你需要单独获取每个热力图对应的颜色条对象,再设置其刻度文字样式——这部分和坐标轴刻度的设置是独立的。以下是调整后的完整代码:
import seaborn as sns import matplotlib.pyplot as plt # 假设line_df、total_df为已定义的DataFrame fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(12,6)) fig.set_facecolor("Blue") # 绘制第一个热力图并设置样式 sns.heatmap(line_df, ax=ax1, annot=True, annot_kws={'fontsize': 16, 'fontweight':'bold'}, xticklabels=line_df.columns, yticklabels=line_df.index, cbar_kws={'orientation':'vertical'}) ax1.yaxis.label.set_color("Blue") ax1.tick_params(colors="yellow") # 获取第一个热力图的颜色条,修改刻度文字为黄色 cbar1 = ax1.collections[0].colorbar cbar1.ax.tick_params(colors='yellow') # 绘制第二个热力图并设置样式 sns.heatmap(total_df, ax=ax2, annot=True, annot_kws={'fontsize': 16, 'fontweight':'bold'}, xticklabels=total_df.columns, yticklabels=False, cbar_kws={'orientation':'vertical'}) ax2.get_yaxis().set_visible(False) ax2.tick_params(colors="yellow") # 获取第二个热力图的颜色条,修改刻度文字为黄色 cbar2 = ax2.collections[0].colorbar cbar2.ax.tick_params(colors='yellow') fig.tight_layout() plt.show() plt.close()
关键说明:
- 热力图的颜色映射对象存储在对应Axes的
collections列表中,通过ax.collections[0].colorbar可获取到该热力图的颜色条实例 - 调用
cbar.ax.tick_params(colors='yellow')即可将颜色条上的刻度文字改为黄色 - 调整了
fig.set_facecolor("Blue")的位置(需在创建fig对象后调用,否则会报错)
内容的提问来源于stack exchange,提问作者Boobaloo
相关产品推荐
相关产品推荐

