最终编辑:
我在关闭pyplot窗口的主题上发现的是它很可能不应该使用pyplot来完成.SRK提供了一个很好的例子,说明如何处理将在下面的答案中更新的情节.此外,我偶然发现了如何将pyplot图放入Tkinter窗口,而且Tkinter比pyplot更擅长打开和关闭窗口.这里是怎样把一个pyplot情节变成Tk的窗口,也这是一个很好的例子.
/最终编辑
我希望能够显示几个图,然后能够从一些代码输入中单独关闭(从屏幕中删除),但我不知道执行此操作的代码输入.
以下是我到目前为止所尝试的内容.我已经玩过了show和close命令的位置,但是我从中获得的唯一真实结果是没有出现一个或另一个情节,但是我无法从屏幕上删除一个情节.我一直在插入raw_input()来创建暂停.
编辑:这些情节是从Tkinter gui调用的,如果从这个方向有更好的方法,我会很高兴听到它.
任何意见都将不胜感激,谢谢.
import matplotlib.pyplot as plt
a = range(0,10)
b = range(0,20,2)
c = range(0,30,3)
d = range(0,40,4)
plot1 = plt.figure()
plt.plot(a,b, 'r-o')
plt.show()
plt.close()
plot2 = plt.figure()
plt.plot(c,d, 'b-o')
plt.show()
plt.close()
Run Code Online (Sandbox Code Playgroud)
编辑代码:这也不起作用.
plot1 = plt.figure(1)
plt.plot(a,b, 'r-o')
plot2 = plt.figure(2)
plt.plot(c,d, 'b-o')
#plt.close(1)
#this will prevent plot1 from being displayed
plt.show()
plt.close(1) # or ('all') or (plot1)
Run Code Online (Sandbox Code Playgroud) 有没有办法将更多的kwargs发送到函数调用中调用的函数中?
例:
def mydef(a, b):
print a
print b
mydict = {'a' : 'foo', 'b' : 'bar'}
mydef(**mydict) # This works and prints 'foo' and 'bar'
mybigdict = {'a' : 'foo', 'b' : 'bar', 'c' : 'nooooo!'}
mydef(**mybigdict) # This blows up with a unexpected argument error
Run Code Online (Sandbox Code Playgroud)
有没有办法传递mybigdict没有错误? 'c'永远不会mydef在我的理想世界中使用,只会被忽略.
谢谢,我的挖掘没有找到我想要的东西.
编辑:修改了一下代码.这mydef(a, b, **kwargs)是我正在寻找的形式,但检查功能args对我来说是一个新事物,绝对是我工具箱的东西.感谢大家!
我正在运行Spyder 2.1.9,我很喜欢它.我喜欢对象检查器提供了多少信息,但是如果我通过编辑器将它们输入到我的程序中或直接进入对象检查器,它只会显示各种对象的信息.有没有办法在代码中突出显示对象并在对象检查器中显示信息?
也作为次要问题.输入时自动填充弹出很好(例如,如果我使用csv模块并且我csv.在编辑器中输入它会调出该模块的所有可能调用),但不适用于Tkinter.知道为什么会这样吗?
我试图在字符串中显示sig figs并且我已经找到了'{:.2f}'.format(x)样式并且只要我在代码中将sig figs的数量作为整数就可以工作,但是我似乎无法使用这种格式的格式sig figs的数量包含在变量中. 2工程sig=2没有.我一直在试图利用%沿.format插入sig这样的'{:.%if}'.format(x) %sig',但它不工作.
我确信这有一个非常简单的优雅解决方案,但我无法弄清楚.任何帮助将不胜感激.谢谢.
我一直试图通过外部类传递pyplot Figure(必须导入),但是没有成功。我什至不知道这是否是我应该解决的方法,以使绘图(未显示)脱离课堂。
from matplotlib.figure import Figure
import matplotlib.pyplot as plt
class Plotter(object):
def __init__(self, xval=None, yval=None):
self.xval = xval
self.yval = yval
def plotthing(self):
f = Figure(1)
sp = f.add_subplot(111)
sp.plot(self.xval, self.yval, 'o-')
return f
Run Code Online (Sandbox Code Playgroud)
这就是大致的类(名称为plotfile.py)。这是其他大量脚本。
from plotfile import Plotter
import matplotlib.pyplot as plt
app = Plotter(xval=range(0,10), yval=range(0,10))
plot = app.plotthing()
app.show(plot)
Run Code Online (Sandbox Code Playgroud)
我已经尝试过有关此主题的多种变体,并尝试了我最好的googlefu,但没有成功。任何帮助将不胜感激。如果我对解决这个问题的方法不太满意,那么我很乐意听取如何正确执行此操作。谢谢。