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

25
在matplotlib中,我想要更改colorbar标签的字体属性。例如,我希望标签以粗体显示。
以下是一些示例代码:
from matplotlib.pylab import *
pcolor(arange(20).reshape(4,5))
cb = colorbar(label='a label')

而且结果里,我想让"一个标签"显示为粗体:

输出图

这个网站上的其他回答只是回答如何更改ticklabels或者如何通过修改matplotlibrc文件来更改所有字体。

5个回答

23

22

我同意Francesco的看法,但可以简化为一句话:

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

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()

带有色条的图例


使用 family='times new roman', weight='bold', style='normal' 可以得到一个粗体标签。 - unutbu
谢谢!我不知道colorbar只是一个坐标轴,标签只是一个ylabel。 - thengineer

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)

3
也许可以使用TeX:r'\textbf{一个标签}'
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()

enter image description here


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接