更改 matplotlib 图例中各个标签的字体大小

Posted

技术标签:

【中文标题】更改 matplotlib 图例中各个标签的字体大小【英文标题】:Change fontsize of indivual labels in the matplotlib legend 【发布时间】:2021-07-19 10:17:22 【问题描述】:

我想更改图例中各个元素的字体大小。我知道如何更改整个图例的字体属性,但我无法找到单独更改它们的方法。

例如:在下面的示例中,我正在绘制两条线,并且我希望 line1 的标签具有比第 2 行更大的字体大小

import numpy as np
from matplotlib import pyplot as plt

def line (m , c):
    return m*x + c

x = np.arange(0, 10, .25)
plt.plot(x, line(1, 0), label = "Line 1")
plt.plot(x, line(1,1), label = "Line 2")
plt.legend(prop='family': 'Georgia', 'size': 15)
plt.show()

使用prop='family': 'Georgia', 'size': 15我可以同时修改两个标签的字体大小,但是有没有办法控制图例中各个标签的字体属性?

感谢任何和所有的帮助。

【问题讨论】:

【参考方案1】:

这里有一些great answers:一个是设置字体属性,另一个是使用Latexh符号进行标签设置。我会用自定义字体属性的方法来回答。

import numpy as np
from matplotlib import pyplot as plt
from matplotlib.font_manager import FontProperties

def line (m , c):
    return m*x + c

x = np.arange(0, 10, .25)
plt.plot(x, line(1, 0), label = "Line 1")
plt.plot(x, line(1,1), label = "Line 2")
leg = plt.legend(prop='family': 'Georgia', 'size': 15)
label1, label2 = leg.get_texts()
label1._fontproperties = label2._fontproperties.copy()
label1.set_size('medium')

plt.show()

【讨论】:

以上是关于更改 matplotlib 图例中各个标签的字体大小的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 图例:标记上方的标签

更改图例标签时,Matplotlib 图例颜色会发生变化

通过 matplotlib 中的列值更改图例条目

更改ggplot2图例中单个标签的字体(变为粗体)

MATLAB:添加图标题轴标签图例更改字体大小

如何更改 Matplotlib 中颜色条刻度标签的字体大小?