2016-12-19 48 views
-1

當我運行這段代碼時,第二個matplotlib.pyplot窗口只有在關閉第一個matplotlib.pyplot後纔會出現,當我像這樣順序打開它們時。我如何同時顯示多個窗口?併發matplotlib.pyplot Windows

def graph(xList, yList, string): 
    xArr = numpy.array(xList) 
    yArr = numpy.array(yList) 
    matplotlib.pyplot.plot(xArr,yArr) 
    matplotlib.pyplot.title(string) 
    matplotlib.pyplot.show() 



graph(posX,posY, "positive") 
graph(negX,negY, "negative") 

回答

1

只有在完成所有工作後,您才需要告訴pyplot顯示數字。 因此,您可以創建儘可能多的數字,但只能在末尾撥打show()

import matplotlib.pyplot 
import numpy 
posX = numpy.arange(19) 
posY = posX 
negX,negY = posX*(-1), posY*(-1) 


def graph(xList, yList, string): 
    xArr = numpy.array(xList) 
    yArr = numpy.array(yList) 
    matplotlib.pyplot.figure() 
    matplotlib.pyplot.plot(xArr,yArr) 
    matplotlib.pyplot.title(string) 

graph(posX,posY, "positive") 
graph(negX,negY, "negative") 

matplotlib.pyplot.show() 
0

不要在繪圖函數中包含show(),讓調用代碼決定何時顯示繪圖。

大多數繪圖功能將重用當前數字(如果有的話)。如果你想要一個新的數字,你必須明確地創建它。

以下代碼將一次顯示兩個數字。注意如何在第二個繪圖之前創建一個新圖形,並且僅在所有繪圖完成後調用show()

x = numpy.arange(10) 
matplotlib.pyplot.plot(x, x) 
matplotlib.pyplot.figure() 
matplotlib.pyplot.plot(x, x**2) 
matplotlib.pyplot.show()