我想更改我的图例标题的字体大小matplotlib。这是我的第一个猜测
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.gca()
ax.plot(range(10))
lg = ax.legend(['test entry'],title='test')
lg.set_title(fontsize='large')
plt.show()
Run Code Online (Sandbox Code Playgroud)
这会产生错误
File "test.py", line 6, in <module>
lg.set_title(fontsize='large')
TypeError: set_title() got an unexpected keyword argument 'fontsize'
Run Code Online (Sandbox Code Playgroud)
我也尝试过
lg = ax.legend(['test entry'],title='test',title_fontsize='large')
Run Code Online (Sandbox Code Playgroud)
产生
self.legend_ = mlegend.Legend(self, handles, labels, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'title_fontsize'
Run Code Online (Sandbox Code Playgroud)
小智 7
根据您的 Python 及其matplotlib版本,您必须以不同的方式进行操作。您的第二个代码正在使用最新版本(3.1.2)。您可能正在运行 Python 2 matplotlib2.2.4。正如您在该版本的API 文档中看到的,没有用于更改图例标题大小的关键字参数。您需要像这样继续:
lg.set_title('title',prop={'size':'large'})
Run Code Online (Sandbox Code Playgroud)
使用 Python 2 版本,matplotlib你会陷入困境
plt.legend.set_title('title',prop={'size':'large'})
Run Code Online (Sandbox Code Playgroud)
在最新版本中,您有很多选项,例如
plt.legend.set_title('title',prop={'size':'large'})
Run Code Online (Sandbox Code Playgroud)
或者
plt.legend(...,title='title',title_fontsize='large')
Run Code Online (Sandbox Code Playgroud)
或者
plt.rcParams['legend.title_fontsize'] = 'large'
Run Code Online (Sandbox Code Playgroud)
如果您想全局更改字体大小。
以下是一些类似的问题以获取更多信息: