【问题标题】:Matplotlib Python Stealing Screen FocusMatplotlib Python 窃取屏幕焦点
【发布时间】:2013-06-21 14:43:12
【问题描述】:

我的代码正在从 arduino 获取串行数据,对其进行处理,然后进行绘图。我使用 matplotlib 作为图形界面。每次它“吸引”时,它都会迫使人们注意它,用户将无法看到除此之外的任何东西。阻止这种情况的最佳方法是什么? (代码工作正常,除了窃取焦点)。在另一篇文章中阅读该方法后,我尝试使用 matplotlib.use('Agg') 方法,但它不起作用。 (使用 MAC OS X)。

下面显示的代码是更新数据的超级简单图表,我遇到了同样的问题。我没有显示我的代码,因为如果没有正确的输入,它就无法复制粘贴 这是我的代码:

import matplotlib
from matplotlib import *
from pylab import *
# import math


x=[]
y=[]
def function(iteration):
    xValue=iteration#Assigns current x value
    yValue=(1./iteration)*34#Assigns current y value

    x.extend([xValue]) #adds the current x value to the x list
    y.extend([yValue]) #adds the current y value to the y list


    clf() #clears the plot

    plot(x,y,color='green') #tells the plot what to do 
    draw() #forces a draw

def main():

    for i in range(1,25): #run my function 25 times (24 I think actually)
        function(i)
        pause(.1)

main()

【问题讨论】:

  • 您能否将其减少到复制问题所需的最低限度?没有多少人会读那么多代码。
  • 是的,没问题。所以我已经使用了我的代码,并展示了正在运行的绘图函数的基础知识,以及名为“main”的函数,这是我实际调用运行的函数。它在下面的评论中。 @tcaswell
  • 所以我只是编辑了问题中的代码,而不是在这里重新发布。
  • 不错的选择:) 可能还是太长了(你真的认为有多个子图会影响焦点抓取吗?)。这段代码可以复制粘贴运行吗?
  • 我相信只要运行它的人拥有所有软件包。 (整个代码,不是上面粘贴的部分。)告诉我你认为我应该怎么做才能以良好的格式得到它,我会粘贴它。

标签: macos python-2.7 matplotlib focus graphing


【解决方案1】:

我发现使用Tkagg 后端有效

import matplotlib

matplotlib.use('Tkagg')

感谢457290092

【讨论】:

    【解决方案2】:

    你试过使用matplotlib的交互模式吗?

    您可以使用 ion() 将其打开(请参阅Documentation

    如果您使用交互模式,则无需调用 draw(),但您可能需要根据所需的输出使用 clf() 清除图形

    【讨论】:

      猜你喜欢
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多