【问题标题】:Change legend's title fontsize in matplotlib在 matplotlib 中更改图例的标题字体大小
【发布时间】:2020-01-23 09:14:03
【问题描述】:

我想更改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()

产生错误

    File "test.py", line 6, in <module>
    lg.set_title(fontsize='large')
TypeError: set_title() got an unexpected keyword argument 'fontsize'

我也试过了

lg  = ax.legend(['test entry'],title='test',title_fontsize='large')

产生

    self.legend_ = mlegend.Legend(self, handles, labels, **kwargs)
TypeError: __init__() got an unexpected keyword argument 'title_fontsize'

【问题讨论】:

    标签: python matplotlib legend


    【解决方案1】:

    根据您的 Python 以及 matplotlib 版本,您必须以不同的方式进行操作。您的第二个代码正在使用最新版本(3.1.2)。您可能正在使用matplotlib2.2.4 在Python 2 上运行。正如您在此版本的API documentation 中看到的那样,没有用于更改图例标题大小的关键字参数。你需要像这样继续:

    lg.set_title('title',prop={'size':'large'})
    

    Matplotlib 2.2.4

    使用 Python 2 版本的 matplotlib 你会被困住

    plt.legend.set_title('title',prop={'size':'large'})
    

    Matplotlib 3.x.x

    在最新版本中,您有很多选择

    plt.legend.set_title('title',prop={'size':'large'})
    

    plt.legend(...,title='title',title_fontsize='large')
    

    plt.rcParams['legend.title_fontsize'] = 'large'
    

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


    这里有一些类似的问题以获取更多信息:

    【讨论】:

    • 确实我正在使用 Python 2。谢谢,非常有帮助。