如何取消热图中的颜色栏标签

How to unbold colorbar labels in a heatmap

我有以下创建热图的代码:

import matplotlib.pyplot as plt
import seaborn as sns

# Load dataset from seaborn
flights = sns.load_dataset('flights')
flights = flights.pivot('month', 'year', 'passengers')

# Plot heatmap
fig1, ax1 = plt.subplots(figsize=(8,8))
ax = sns.heatmap(flights, annot=True, fmt='d', cbar_kws={'label': 'Passenger Numbers'})

# Rotate x-axis labels
ax1.set_xticklabels(ax1.get_xticklabels(), rotation=45)

# Set font size for colorbar title
ax1.figure.axes[-1].yaxis.label.set_size(12)
# Set font size for colorbar labels
ax1.figure.axes[-1].tick_params(labelsize=10)

# Set font for x-axis labels
plt.xticks(fontsize=12, fontstyle='oblique')
# Set font for y-axis labels
plt.yticks(fontsize=12, fontstyle='oblique')

# Bold 'February' in y-axis
for label in ax.get_yticklabels():
    if label.get_text() == 'February':
        label.set_weight('bold')

plt.show()

热图如下所示:

如何取消加粗颜色条标签(即颜色条中的 600、500、400 值等),使其取消加粗并类似于年份(在 x 轴上)和月份(在 y 轴上,二月除外)是否显示?

非常感谢任何知道这一点的人。

您可以尝试先设置样式,然后再进行更改,您可以尝试这样的操作:

import matplotlib.pyplot as plt
import seaborn as sns
import matplotlib
#Create the style of the font 
font = {'family' : 'serif',
        'weight' : 'normal',
        'size'   : 10}         

matplotlib.rc('font', **font) #set the font style created
# Load dataset from seaborn
flights = sns.load_dataset('flights')
flights = flights.pivot('month', 'year', 'passengers')

# Plot heatmap
fig1, ax1 = plt.subplots(figsize=(8,8))
ax = sns.heatmap(flights, annot=True, fmt='d', cbar_kws={'label': 'Passenger Numbers'})

# Rotate x-axis labels
ax1.set_xticklabels(ax1.get_xticklabels(), rotation=45)

# Set font size for colorbar title
ax1.figure.axes[-1].yaxis.label.set_size(12)
# Set font size for colorbar labels
ax1.figure.axes[-1].tick_params(labelsize=10)

# Set font for x-axis labels
plt.xticks(fontsize=12, fontstyle='oblique')
# Set font for y-axis labels
plt.yticks(fontsize=12, fontstyle='oblique')

# Bold 'February' in y-axis
for label in ax.get_yticklabels():
    if label.get_text() == 'February':
        label.set_weight('bold')

plt.show()

如果这不起作用,您可以尝试更新样式的参数,然后再设置 x,y 轴的样式。您可以通过在 # Set font size for colorbar title 之前添加 plt.rcParams.update({'font.weight': 'normal'}) 来尝试。你可以看到可能的字体 here.