我在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)不是我想要的。如何分别设置图形标题和轴标签的字体大小?
如果您更习惯于使用ax对象进行绘图,您可能会发现ax.xaxis.label.set_size()更容易记住,或者至少更容易在ipython终端中使用选项卡找到。之后似乎需要重新绘制操作才能看到效果。例如:
import matplotlib.pyplot as plt
# set up a plot with dummy data
fig, ax = plt.subplots()
x = [0, 1, 2]
y = [0, 3, 9]
ax.plot(x,y)
# title and labels, setting initial sizes
fig.suptitle('test title', fontsize=12)
ax.set_xlabel('xlabel', fontsize=10)
ax.set_ylabel('ylabel', fontsize='medium') # relative to plt.rcParams['font.size']
# setting label sizes after creation
ax.xaxis.label.set_size(20)
plt.draw()
我不知道有什么类似的方法可以在创建字幕后设置字幕大小。
处理标签、标题等文本的函数接受与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。我想,你需要手动设置。