0

为了制作一个情节,我以以下方式编写了我的代码:

from pylab import *

x = [1,2,3]
y = [1,2,3]

matplotlib.pyplot.scatter(x,y,label='Blah')
matplotlib.pyplot.legend(title='Title')
matplotlib.pyplot.show()

我想更改图例标题的字体大小。解决这个问题的方法是获取图例对象,然后以这种方式更改标题(例如,如何设置 Matplotlib 轴图例的字体大小?

有没有办法从我编写的代码中获取图例对象,然后从那里开始,而不是使用 ax.XXX、figure.XXX 等重写我的所有代码?

也就是说,我如何定义

Legend

从我的原始代码中,这样

Title = Legend.get_title()
Title.set_fontsize(30)

会得到标题对象,然后让我玩.get_title()?

我想我正处于面向对象语言的灵光乍现的边缘。我有一种感觉,一个好的答案会给我那个灵光乍现的时刻!

干杯,

格德

4

1 回答 1

2

首先,在您的代码中,您应该坚持使用其中之一from pylab import *,然后直接使用导入的方法,或者import matplotlib.pyplot as plt然后plt.*代替matplotlib.pyplot.*. 在使用 matplotlib 时,这两个都是“惯例”。后者(即 pyplot)通常更适合用于编写脚本,因为 pylab 主要用于交互式绘图。

为了更好地理解 pylab 和 pyplot 之间的区别,请参阅matplotlib 常见问题解答

解决手头的问题;要在 Python 中“获取”一个对象,只需将该对象分配给一个变量。

from pylab import *

x = [1,2,3]
y = [1,2,3]

scatter(x,y,label='Blah')

# Assign the Legend object to a variable leg
leg = legend(title='Title')
leg_title = leg.get_title()
leg_title.set_fontsize(30)

# Optionally you can use the one-liner
#legend(title='Title').get_title().set_fontsize(30)

show()

视觉比较(用上面的代码生成的最右边的子图):

有和没有指定字体大小的视觉比较

于 2013-08-07T12:18:02.253 回答