Matplotlib:如何设置当前数字?


83

希望这是一个简单的问题,但我暂时无法解决。我想使用matplotlib显示2个数字,然后以交互方式使用它们。我用以下方法创建数字:

import matplotlib
import pylab as pl

f1 = pl.figure()
f2 = pl.figure()

并可以使用类似MATLAB的pyplot界面在两个图中进行绘制和绘制。用

current_figure = pl.gcf()

我可以根据所单击的图形来确定pyplot界面的当前活动图形。所以有什么像

pl.set_current_figure(figure)

或任何解决方法?(我知道我可以使用面向对象的界面,但是对于交互式的东西,仅使用诸如plot(x,y)之类的命令就更好了)

Answers:


93

您可以使用以下命令简单地将图形设置f1为新的当前图形:

pl.figure(f1.number)

另一个选择是为数字赋予名称(或数字),这可能有助于使代码更易于阅读:

pl.figure("Share values")
# ... some plots ...
pl.figure("Profits")
# ... some plots ...

pl.figure("Share values")  # Selects the first figure again

实际上,数字“数字”可以是字符串,可以说比简单数字更明确。

PS:本pyplot相当于pylab.figure()IS matplotlib.pyplot.figure()


1
有没有使用matplotlib.figure.Figure代替pylab的好方法?
tylerthemiler 2011年

@tylerthemiler:是的,但是那是matplotlib.pyplot.figure()
埃里克·奥·莱比格

如果要对轴执行相同的操作,请使用pylab.sca(my_axis)(“设置当前轴”)。
PiHalbe 2013年

14

给每个图一个数字:

f1 = pl.figure(1)
f2 = pl.figure(2)
# use f2
pl.figure(1) # make f1 active again
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.