2
在我的Django項目的views.py
中,在代碼中的某個點上,我想要在服務器上顯示一個圖形圖以實時顯示用戶輸入。所以,我創建了另一個文件plotter.py
在同一文件夾中views.py
,用下面的內容來顯示一個簡單的圖形:Django和Matplotlib:信號只能在主線程中工作
進口numpy的 進口matplotlib.pyplot
def plot():
N = 50
x = numpy.random.rand(N)
y = numpy.random.rand(N)
colors = numpy.random.rand(N)
area = numpy.pi * (15 * numpy.random.rand(N))**2
matplotlib.pyplot.scatter(x, y, s=area, c=colors, alpha=0.5)
matplotlib.pyplot.show()
然後,在views.py
,我import plotter
,然後在我想要的文件中,我有plotter.plot()
。然而,這提供了以下錯誤:
Request Method: POST
Request URL: http://localhost:8000/teacher/
Django Version: 1.7
Exception Type: ValueError
Exception Value:
signal only works in main thread
Exception Location: C:\Anaconda\lib\site-packages\matplotlib\backends\backend_qt5.py in mainloop, line 150
Python Executable: C:\Anaconda\python.exe
Python Version: 2.7.8
我怎樣才能做到這一點,而不會導致這樣的錯誤?
不知道這是_really_要做到這一點的方式。最好有一個REST接口或進程間消息傳遞,並在你自己的進程中繪製GUI代碼。 – tacaswell 2014-10-22 03:31:55