更改 matplotlib 中图例的标题字体大小

3 python matplotlib legend

我想更改我的图例标题的字体大小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)

Matplotlib 2.2.4

使用 Python 2 版本,matplotlib你会陷入困境

plt.legend.set_title('title',prop={'size':'large'})
Run Code Online (Sandbox Code Playgroud)

Matplotlib 3.xx

在最新版本中,您有很多选项,例如

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)

如果您想全局更改字体大小。


以下是一些类似的问题以获取更多信息: