python怎么退出窗口_关闭pyplot窗口

plt.close()将关闭当前实例。

plt.close(2)将关闭图2

plt.close(plot1)将用实例plot1关闭图

plt.close('all')将关闭所有功能

请记住,plt.show()是一个阻塞函数,因此在上面使用的示例代码中,plt.close()在窗口关闭之前不会被执行,这使得它是多余的。

您可以在代码的开头使用plt.ion()使其非阻塞,尽管这有其他含义。

示例

在我们在评论中讨论之后,我整理了一个小例子来演示如何使用plot功能。

下面我创建一个绘图:fig = plt.figure(figsize=plt.figaspect(0.75))

ax = fig.add_subplot(1, 1, 1)

....

par_plot, = plot(x_data,y_data, lw=2, color='red')

在这种情况下,上面的ax是一对轴的句柄。每当我想对这些轴执行某些操作时,可以通过调用axes(ax)将当前的轴集更改为该特定集。

par_plot是line2D实例的句柄。这叫艺术家。如果我想更改行的属性,比如更改ydata,可以通过引用这个句柄来完成。

我还可以通过执行以下操作创建滑块小部件:axsliderA = axes([0.12, 0.85, 0.16, 0.075])

sA = Slider(axsliderA, 'A', -1, 1.0, valinit=0.5)

sA.on_changed(update)

第一行为滑块创建新的轴(称为axsliderA),第二行创建放置在轴中的滑块实例sA,第三行指定滑块值更改时要调用的函数(update)。

我的更新函数可能如下所示:def update(val):

A = sA.val

B = sB.val

C = sC.val

y_data = A*x_data*x_data + B*x_data + C

par_plot.set_ydata(y_data)

draw()

par_plot.set_ydata(y_data)使用句柄par_plot更改Line2D对象的ydata属性。

draw()函数更新当前轴集。

总而言之:from pylab import *

import matplotlib.pyplot as plt

import numpy

def update(val):

A = sA.val

B = sB.val

C = sC.val

y_data = A*x_data*x_data + B*x_data + C

par_plot.set_ydata(y_data)

draw()

x_data = numpy.arange(-100,100,0.1);

fig = plt.figure(figsize=plt.figaspect(0.75))

ax = fig.add_subplot(1, 1, 1)

subplots_adjust(top=0.8)

ax.set_xlim(-100, 100);

ax.set_ylim(-100, 100);

ax.set_xlabel('X')

ax.set_ylabel('Y')

axsliderA = axes([0.12, 0.85, 0.16, 0.075])

sA = Slider(axsliderA, 'A', -1, 1.0, valinit=0.5)

sA.on_changed(update)

axsliderB = axes([0.43, 0.85, 0.16, 0.075])

sB = Slider(axsliderB, 'B', -30, 30.0, valinit=2)

sB.on_changed(update)

axsliderC = axes([0.74, 0.85, 0.16, 0.075])

sC = Slider(axsliderC, 'C', -30, 30.0, valinit=1)

sC.on_changed(update)

axes(ax)

A = 1;

B = 2;

C = 1;

y_data = A*x_data*x_data + B*x_data + C;

par_plot, = plot(x_data,y_data, lw=2, color='red')

show()

关于上面的一个注意事项:当我运行应用程序时,代码按顺序一直运行(我认为它将update函数存储在内存中),直到它点击show(),这是阻塞的。当您对其中一个滑块进行更改时,它会从内存中运行更新功能(我想是这样吧?)。

这就是为什么show()是以这种方式实现的,这样您就可以通过使用函数来处理数据来更改后台的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值