如何更改matplotlib颜色条标签的字体属性?

25 投票
5 回答
92075 浏览
提问于 2025-04-18 03:24

在matplotlib这个库里,我想要改变一个colorbar标签的字体属性。比如说,我希望这个标签看起来是加粗的。

下面是一些示例代码:

from matplotlib.pylab import *
pcolor(arange(20).reshape(4,5))
cb = colorbar(label='a label')

然后这是结果,我希望"a label"这个标签是加粗的:

output plot

在这个网站上,其他的回答只告诉你怎么改变ticklabels,或者怎么整体修改所有字体(通过修改matplotlibrc文件)。

5 个回答

3

也许可以使用TeX格式:r'\textbf{a label}'

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
mpl.rc('text', usetex=True)

plt.pcolor(np.arange(20).reshape(4,5))
cb = plt.colorbar(label=r'\textbf{a label}')
plt.show()

在这里输入图片描述

4

要改变你颜色条上刻度和标签的字体大小,可以使用以下代码:

clb=plt.colorbar()
clb.ax.tick_params(labelsize=8) 
clb.ax.set_title('Your Label',fontsize=8)

如果你有多个子图,也可以用这个方法:

plt.tight_layout()
plt.subplots_adjust(bottom=0.05)
cax = plt.axes([0.1, 0, 0.8, 0.01]) #Left,bottom, length, width
clb=plt.colorbar(cax=cax,orientation='horizontal')
clb.ax.tick_params(labelsize=8) 
clb.ax.set_title('Your Label',fontsize=8)
18

作为对unutbu回答的另一种选择,你可以利用颜色条也是图形中的一个坐标轴实例这一点,像设置任何y轴标签一样设置它的标签字体。

from matplotlib.pylab import *
from numpy import arange

pcolor(arange(20).reshape(4,5))
cb = colorbar(label='a label')
ax = cb.ax
text = ax.yaxis.label
font = matplotlib.font_manager.FontProperties(family='times new roman', style='italic', size=16)
text.set_font_properties(font)
show()

带有颜色条的图形

22

我同意francesco的看法,不过可以把它简化成一行:

plt.colorbar().set_label(label='a label',size=15,weight='bold')
24

这两行代码可以用于任何文本属性(http://matplotlib.org/api/text_api.html#matplotlib.text.Text

cb = plt.colorbar()
cb.set_label(label='a label',weight='bold')

撰写回答