GVKun编程网logo

关闭Pyplot窗口(python中关闭图形窗口)

6

针对关闭Pyplot窗口和python中关闭图形窗口这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Ext的prompt怎么在点击OK按钮的时候触发事件而不关闭prompt窗口呢?、impo

针对关闭Pyplot窗口python中关闭图形窗口这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展Ext的prompt怎么在点击OK按钮的时候触发事件而不关闭prompt窗口呢?、import matplotlib.pyplot as plt出错、matplotlib Axes.plot()与pyplot.plot()、Matplotlib.pyplot 二维绘图等相关知识,希望可以帮助到你。

本文目录一览:

关闭Pyplot窗口(python中关闭图形窗口)

关闭Pyplot窗口(python中关闭图形窗口)

最终编辑:

我在关闭pyplot窗口这一主题上发现,实际上可能不应该使用pyplot完成它。SRK给出了一个很好的示例,说明如何处理将在下面的答案中更新的图。我也偶然发现了如何将pyplot图放到Tkinter窗口中,并且Tkinter比pyplot更擅长打开和关闭窗口。这里是怎样把一个pyplot情节变成Tk的窗口,

/最终编辑

我希望能够显示多个图,然后能够从某些代码输入中分别关闭(从屏幕上删除)它们,但是我不知道要这样做的代码输入。

以下是到目前为止我尝试过的。我一直在使用show和close命令的位置,但是我从中获得的唯一真实结果是没有绘制一个或另一个图,但是我无法从屏幕上删除一个图。我一直在插入raw_input()创建暂停。

编辑:这些图是从Tkinter gui调用的,如果有更好的方法从该方向进行操作,我会很高兴听到它。

任何输入将不胜感激,谢谢。

import matplotlib.pyplot as plta = 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()

编辑代码:这也不起作用。

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 displayedplt.show()plt.close(1)  # or (''all'') or (plot1)

答案1

小编典典

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

plt.close(2) 将关闭图2

plt.close(plot1) 将使用图plot1关闭图

plt.close(''all'') 将关闭所有漏洞

在这里找到。

请记住,这plt.show()是一个 阻塞
函数,因此在您上面使用的示例代码中,plt.close()直到关闭窗口后才执行该函数,从而使其变得多余。

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

在评论中进行讨论之后,我整理了一个示例,只是为了演示如何使用绘图功能。

下面我创建一个图:

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)改变YDATA 财产 的的 Line2D是否 与处理对象par_plot

draw()功能更新 当前 轴组。

放在一起:

from pylab import *import matplotlib.pyplot as pltimport numpydef 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()如此实现的原因,因此您可以通过使用函数来处理数据来在后台更改值。

Ext的prompt怎么在点击OK按钮的时候触发事件而不关闭prompt窗口呢?

Ext的prompt怎么在点击OK按钮的时候触发事件而不关闭prompt窗口呢?

Ext的prompt组件要求用户输入一些信息,但是我想实现在点击确定按钮的时候验证用户有没有填东西,如果填了就保存,否则再弹出一个alert提示用户必须填写东西,但如果用回调函数的话这个时候prompt就关闭了,怎样才能既弹出alert又不关闭prompt呢?或者说怎么让确定按钮绑定一个事件呢?既怎么获取这个prompt的确定或取消按钮?

import matplotlib.pyplot as plt出错

import matplotlib.pyplot as plt出错

>>>import matplotlib.pyplot as plt
/usr/lib/python2.7/dist-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment. warnings.warn(''Matplotlib is building the font cache using fc-list. This may take a moment.'')

在第八讲中,导入这个模块出错
解决:

找到缓存目录 删除~/.cache/matplotlib下面的缓存

 deleted ~/.cache/matplotlib/fontList.cache

但是,当我准备删的时候,再import matplotlib时时没有出错,不知道具体的原因是什么

matplotlib Axes.plot()与pyplot.plot()

matplotlib Axes.plot()与pyplot.plot()

Axes.plot()pyplot.plot()方法之间有什么区别?一个人是否将另一个人用作子例程?

看来我的绘图选项是

line = plt.plot(data)

要么

ax = plt.axes()
line = ax.plot(data)

甚至

fig = plt.figure()
ax = fig.add_axes([0,1,1])
line = ax.plot(data)

在某些情况下,优先使用一种而不是另一种?

Matplotlib.pyplot 二维绘图

Matplotlib.pyplot 二维绘图

例1:缺参补全

import matplotlib.pyplot as plt

plt.plot([5, 6, 8, 10])
plt.ylabel(''some numbers'')
plt.show()

你会很好奇,为什么x轴范围在0-3而y轴的范围在5-10。因为如果你仅仅只提供一个列表给plot()命令,matplotlib

会默认这是y值,再按照len(y)=4,即y的长度给x从0开始分配相应长度的列表[0,1,2,3]。

 

例2.给定坐标轴范围

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], [1, 4, 9, 16], ''ro'')
plt.axis([0, 6, 0, 20])
plt.show()

plot()命令中参数''ro''表示红色的实心圆点

axis()命令即给定x,y轴的范围

 

例3.与numpy中array的配合

import numpy as np
import matplotlib.pyplot as plt

t = np.arange(0., 5., 0.2)
# [0.  0.2 0.4 0.6 0.8 1.  1.2 1.4 1.6 1.8 2.  2.2 2.4 2.6 2.8 3.  3.2 3.4 3.6 3.8 4.  4.2 4.4 4.6 4.8]

# red的--, blue的方框 and green的尖尖
plt.plot(t, t, ''r--'', t, t ** 2, ''bs'', t, t ** 3, ''g^'')
plt.show()

例4:控制线的属性

1.线的粗细

import matplotlib.pyplot as plt

plt.plot([1, 2, 3, 4], [1, 2, 3, 4], linewidth=10)
plt.show()

2.抗锯齿

import matplotlib.pyplot as plt

line, = plt.plot([1, 2, 3, 4], [1, 2, 3, 4], ''-'')
line.set_antialiased(False)  # 关闭抗锯齿
plt.show()

3.设置多属性

import matplotlib.pyplot as plt

lines = plt.plot([1, 2, 3, 4], [1, 2, 3, 4])
# 同时设置线的多个属性
plt.setp(lines, color=''r'', linewidth=2.0, alpha=0.2)

plt.show()

属性大全:

  

Property Value Type
alpha float
animated [True | False]
antialiased or aa [True | False]
clip_box a matplotlib.transform.Bbox instance
clip_on [True | False]
clip_path a Path instance and a Transform instance, a Patch
color or c any matplotlib color
contains the hit testing function
dash_capstyle [''butt'' | ''round'' | ''projecting'']
dash_joinstyle [''miter'' | ''round'' | ''bevel'']
dashes sequence of on/off ink in points
data (np.array xdata, np.array ydata)
figure a matplotlib.figure.Figure instance
label any string
linestyle or ls [ ''-'' | ''--'' | ''-.'' | '':'' | ''steps'' | ...]
linewidth or lw float value in points
lod [True | False]
marker [ ''+'' | '','' | ''.'' | ''1'' | ''2'' | ''3'' | ''4'' ]
markeredgecolor or mec any matplotlib color
markeredgewidth or mew float value in points
markerfacecolor or mfc any matplotlib color
markersize or ms float
markevery [ None | integer | (startind, stride) ]
picker used in interactive line selection
pickradius the line pick selection radius
solid_capstyle [''butt'' | ''round'' | ''projecting'']
solid_joinstyle [''miter'' | ''round'' | ''bevel'']
transform a matplotlib.transforms.Transform instance
visible [True | False]
xdata np.array
ydata np.array
zorder any number

例5:多图

 1.图中多图

import numpy as np
import matplotlib.pyplot as plt


def f(t):
    return np.exp(-t) * np.cos(2 * np.pi * t)


t1 = np.arange(0.0, 5.0, 0.1)
t2 = np.arange(0.0, 5.0, 0.02)

plt.figure(1)
plt.subplot(311)
plt.plot(t1, f(t1), ''bo'', t2, f(t2), ''k'')

plt.subplot(312)
plt.plot(t2, np.cos(2 * np.pi * t2), ''r--'')

plt.subplot(313)
plt.plot(t2, np.cos(2 * np.pi * t2), ''r^'')
plt.show()

2.多图齐出

import matplotlib.pyplot as plt

plt.figure(1)  # the first figure
plt.subplot(211)  # the first subplot in the first figure
plt.plot([1, 2, 3])
plt.subplot(212)  # the second subplot in the first figure
plt.plot([4, 5, 6])

plt.figure(2)  # a second figure
plt.plot([4, 5, 6])  # creates a subplot(111) by default

plt.show()

例6:图中插字

import numpy as np
import matplotlib.pyplot as plt

# Fixing random state for reproducibility
np.random.seed(19680801)

mu, sigma = 100, 15
x = mu + sigma * np.random.randn(10000)

# the histogram of the data
n, bins, patches = plt.hist(x, 50, normed=1, facecolor=''g'', alpha=0.75)

t = plt.xlabel(''my data'', fontsize=14, color=''red'')
plt.ylabel(''Probability'')
plt.title(''Histogram of IQ'')
plt.text(60, .025, r''$\mu=100,\ \sigma=15$'')
plt.axis([40, 160, 0, 0.03])
plt.grid(True)
plt.show()

 1.使用数学表达式

plt.title(r''$\sigma_i=15$'')

2.注释语  

import numpy as np
import matplotlib.pyplot as plt

ax = plt.subplot(111)

t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2 * np.pi * t)
line, = plt.plot(t, s, lw=2)

plt.annotate(''local max'', xy=(2, 1), xytext=(3, 1.5),
             arrowprops=dict(facecolor=''black'', shrink=0.05),
             )

plt.ylim(-2, 2)
plt.show()

关于关闭Pyplot窗口python中关闭图形窗口的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Ext的prompt怎么在点击OK按钮的时候触发事件而不关闭prompt窗口呢?、import matplotlib.pyplot as plt出错、matplotlib Axes.plot()与pyplot.plot()、Matplotlib.pyplot 二维绘图等相关知识的信息别忘了在本站进行查找喔。

本文标签: