如何更改matplotlib颜色条标签的字体属性?
在matplotlib这个库里,我想要改变一个colorbar
标签的字体属性。比如说,我希望这个标签看起来是加粗的。
下面是一些示例代码:
from matplotlib.pylab import *
pcolor(arange(20).reshape(4,5))
cb = colorbar(label='a label')
然后这是结果,我希望"a label"这个标签是加粗的:
在这个网站上,其他的回答只告诉你怎么改变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')