我想做的是在pyplot中控制图例中各个条目的字体大小。也就是说,我希望第一个条目的大小与第二个条目不同。以下是我尝试的解决方案,但并没有起作用。
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(1,5,0.5)
plt.figure(1)
plt.plot(x,x,label='Curve 1')
plt.plot(x,2*x,label='Curve 2')
leg = plt.legend(loc = 0, fontsize = 'small')
leg.get_texts()[0].set_fontsize('medium')
plt.show()
我希望所有图例条目的默认大小都为“小”。然后,我获取Text对象列表,并仅更改单个Text对象的字体大小为中等。但是,由于某种原因,这会将所有Text对象的字体大小更改为中等,而不仅仅是我实际更改的单个对象。我认为这很奇怪,因为我可以以这种方式单独设置其他属性,例如文本颜色。
最终,我只需要一种方法来更改图例中单个条目的字体大小。
t1.set_fontproperties(t1.get_fontproperties())
。这样做的好处是不依赖于受保护的文本属性(即_fontproperties
)。请注意,即使将 FontProperties 分配给您从中获取它们的同一对象(在此示例中为t1
),它仍会在内部进行复制。另请参见 此处。 - FernAndr