我在Matplotlib中创建一个图形,如下所示:

from matplotlib import pyplot as plt

fig = plt.figure()
plt.plot(data)
fig.suptitle('test title')
plt.xlabel('xlabel')
plt.ylabel('ylabel')
fig.savefig('test.jpg')

我想为图形标题和轴标签指定字体大小。我需要这三种字体大小都不同,所以设置全局字体大小(mpl.rcParams['font.size']=x)不是我想要的。如何分别设置图形标题和轴标签的字体大小?


当前回答

处理标签、标题等文本的函数接受与matplotlib.text.text相同的参数。对于字体大小,可以使用size/fontsize:

from matplotlib import pyplot as plt    

fig = plt.figure()
plt.plot(data)
fig.suptitle('test title', fontsize=20)
plt.xlabel('xlabel', fontsize=18)
plt.ylabel('ylabel', fontsize=16)
fig.savefig('test.jpg')

对于全局设置标题和标签大小,mpl.rcParams包含axes.titlesize和axes.labelsize。(从页面):

axes.titlesize      : large   # fontsize of the axes title
axes.labelsize      : medium  # fontsize of the x any y labels

(据我所知,没有办法分别设置x和y标签大小。)

我看到axes.titlesize不影响suptitle。我想,你需要手动设置。

其他回答

在set_ylabel()之前放置right_ax

ax.right_ax.set_ylabel('AB刻度')

处理标签、标题等文本的函数接受与matplotlib.text.text相同的参数。对于字体大小,可以使用size/fontsize:

from matplotlib import pyplot as plt    

fig = plt.figure()
plt.plot(data)
fig.suptitle('test title', fontsize=20)
plt.xlabel('xlabel', fontsize=18)
plt.ylabel('ylabel', fontsize=16)
fig.savefig('test.jpg')

对于全局设置标题和标签大小,mpl.rcParams包含axes.titlesize和axes.labelsize。(从页面):

axes.titlesize      : large   # fontsize of the axes title
axes.labelsize      : medium  # fontsize of the x any y labels

(据我所知,没有办法分别设置x和y标签大小。)

我看到axes.titlesize不影响suptitle。我想,你需要手动设置。

您也可以通过rcParams字典全局执行此操作:

import matplotlib.pylab as pylab
params = {'legend.fontsize': 'x-large',
          'figure.figsize': (15, 5),
         'axes.labelsize': 'x-large',
         'axes.titlesize':'x-large',
         'xtick.labelsize':'x-large',
         'ytick.labelsize':'x-large'}
pylab.rcParams.update(params)

如果没有显式创建地物和轴对象,则可以在使用fontdict参数创建标题时设置标题字体大小。

使用fontsize参数创建x和y标签时,可以分别设置x和y标记字体大小。

例如:

plt.title('Car Prices are Increasing', fontdict={'fontsize':20})
plt.xlabel('Year', fontsize=18)
plt.ylabel('Price', fontsize=16)

也适用于海鸟和熊猫绘图(当Matplotlib是后端时)!

其他人提供了如何更改标题大小的答案,但对于轴刻度标签大小,也可以使用set_tick_params方法。

例如,要使x轴刻度标签尺寸较小:

ax.xaxis.set_tick_params(labelsize='small')

或者,要使y轴刻度标签变大:

ax.yaxis.set_tick_params(labelsize='large')

您还可以将标签大小输入为浮点数或以下任何字符串选项:“xx小”、“x-small”、“small”或“medium”、“large”、“x-large”或“xx大”。