更改 matplotlib 颜色条和刻度标签的字体?

问题描述 投票:0回答:1

我在设置我制作的绘图的字体时遇到问题。我正在尝试使用我的系统上安装的字体“Arial Nova Light”。我已尝试多次尝试通过提供文件路径和使用系统字体来设置字体系列,但出现以下错误。

findfont: Font family 'Arial Nova' not found.

由于我没有查看该计算机上所有目录的权限,这使得这变得稍微困难一些。我在本地使用 .ttf 文件并按以下方式设置参数取得了一些成功:

fpath = Path('Arial Nova.ttf')
ax.set_xlabel('position in span (m)', font=fpath)
ax.set_ylabel('temperature (°C)', font=fpath)

但是,我正在努力寻找设置颜色条标签和刻度线标签字体的方法。

我的代码如下:

def plot(example_param1, example_param2):
    fig, ax = plt.subplots(subplot_kw={"projection": "3d"}, figsize=(12, 6))

    fpath = Path('Arial Nova.ttf')
    print(fpath.name)

    surf = ax.plot_trisurf(distances.flat, temperatures.flat, function(
        example_param1, 
        example_param2
    ).flat, cmap='coolwarm')
    fig.colorbar(surf, ax=ax, shrink=0.5, aspect=5, label='deviation (mm)')
    ax.view_init(elev=30, azim=160)
    ax.set_xlabel('position in span (m)', font=fpath)
    ax.set_ylabel('temperature (°C)', font=fpath)
    plt.show()

有没有办法在不设置字体系列的情况下设置颜色条和刻度线标签的字体,而是使用类似的方法来设置上面的 x 和 y 标签的字体?

非常感谢

python matplotlib
1个回答
0
投票

试试这个,

cb=fig.colorbar(surf, ax=ax, shrink=0.5, aspect=5, label='deviation (mm)')  
    for tick in ax.get_xticklabels():    
            tick.set_fontproperties(fpath) 
    for tick in ax.get_yticklabels():
            tick.set_fontproperties(fpath) 
   for tick in ax.get_zticklabels():
            tick.set_fontproperties(fpath) 
    for l in cb.ax.yaxis.get_ticklabels():
                l.set_fontproperties(fpath)

类似问题:Python:如何更改颜色栏中的字体?

© www.soinside.com 2019 - 2024. All rights reserved.