【问题标题】:Remove Labels and Tick-marks from Colorbar in Matplotlib从 Matplotlib 中的颜色栏中删除标签和刻度线
【发布时间】:2021-03-15 18:16:11
【问题描述】:

我有一个热图,我想删除颜色栏上的标签和刻度线。到目前为止,我如何使用我制作的热图(下面的代码)来做到这一点?

import seaborn as sns
import matplotlib.pyplot as plt

sns.heatmap(my_heatmap, cmap='RdYlGn', vmin=0, vmax=1)
plt.rcParams["figure.figsize"] = (8, 6)
plt.title('10 mm Precipitation Probabilities\nTopeka, Kansas', fontsize = 16)
plt.xlabel('X', fontsize = 14)
plt.ylabel('Y', fontsize = 14)
plt.text(6.7,.18, 'High Probability')
plt.show()

(我宁愿只在条形顶部显示高概率,如我制作的标签所示)。

【问题讨论】:

  • @BigBen 这没有帮助,因为我以不同的方式绘制了我的热图。请参阅我在问题中提供的代码。
  • 绝对有帮助,您只需要访问颜色条轴,然后应用该解决方案。

标签: python python-3.x matplotlib seaborn heatmap


【解决方案1】:

您可以通过cbar = ax.collections[0].colorbar 访问颜色栏(参见例如this post)。

然后,您可以更改刻度 (cbar.set_ticks([])) 或设置新刻度和新刻度标签:

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

plt.rcParams["figure.figsize"] = (8, 6)
my_heatmap = np.random.rand(10, 10)
ax = sns.heatmap(my_heatmap, cmap='RdYlGn', vmin=0, vmax=1)
# ax.get_figure().set_size_inches(8, 6)
ax.set_title('10 mm Precipitation Probabilities\nTopeka, Kansas', fontsize=16)
ax.set_xlabel('X', fontsize=14)
ax.set_ylabel('Y', fontsize=14)
cbar = ax.collections[0].colorbar
cbar.set_ticks([0, 0.5, 1])
cbar.set_ticklabels(['Low\nProbability', 'Average\nProbability', 'High\nProbability'])
# cbar.set_label('Probability')
plt.tight_layout()
plt.show()

请注意,plt.rcParams["figure.figsize"] 不会更改图窗的大小,而是为将要创建的下一个图窗设置默认大小。因此,您需要在 sns.heatmap 之前调用它,如果之前没有创建任何图形,则会创建一个新图形。要更改已创建图形的大小,请使用set_size_inches()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多