반응형
나는 지난 며칠 동안 Numpy와 matplotlib를 가지고 놀았습니다. 실행을 차단하지 않고 matplotlib 플롯을 함수로 만드는 데 문제가 있습니다. 나는 이미 여기에 비슷한 질문을하는 많은 스레드가 있다는 것을 알고 있으며, 꽤 많이 검색했지만이 작업을 수행하지 못했습니다.
나는 어떤 사람들이 제안한 것처럼 show (block = False)를 사용해 보았지만 내가 얻는 것은 고정 된 창뿐입니다. 단순히 show ()를 호출하면 결과가 제대로 표시되지만 창이 닫힐 때까지 실행이 차단됩니다. 내가 읽은 다른 스레드에서 show (block = False) 작동 여부는 백엔드에 따라 다릅니다. 이 올바른지? 내 백엔드는 Qt4Agg입니다. 내 코드를보고 잘못된 것이 있으면 알려주시겠습니까? 다음은 내 코드입니다. 도움을 주셔서 감사합니다.
from math import *
from matplotlib import pyplot as plt
print plt.get_backend()
def main():
x = range(-50, 51, 1)
for pow in range(1,5): # plot x^1, x^2, ..., x^4
y = [Xi**pow for Xi in x]
print y
plt.plot(x, y)
plt.draw()
#plt.show() #this plots correctly, but blocks execution.
plt.show(block=False) #this creates an empty frozen window.
_ = raw_input("Press [enter] to continue.")
if __name__ == '__main__':
main()
추신. 새 창을 만드는 대신 플롯 할 때마다 기존 창을 업데이트하고 싶다는 말을 잊었습니다.
해결 방법
다음은 Python 3.5에서 저에게 적합한 구현입니다.
import numpy as np
from matplotlib import pyplot as plt
def main():
plt.axis([-50,50,0,10000])
plt.ion()
plt.show()
x = np.arange(-50, 51)
for pow in range(1,5): # plot x^1, x^2, ..., x^4
y = [Xi**pow for Xi in x]
plt.plot(x, y)
plt.draw()
plt.pause(0.001)
input("Press [enter] to continue.")
if __name__ == '__main__':
main()
참조 페이지 https://stackoverflow.com/questions/28269157
반응형
'파이썬' 카테고리의 다른 글
파이썬 요청 모듈을 사용하여 Python으로 JSON 파일의 내용을 RESTFUL API에 게시하는 방법 (0) | 2020.12.01 |
---|---|
파이썬 pip, easy_install 명령이 Ubuntu에서 작동하지 않습니다. Python 2.7 및 3.4가 설치됨 (0) | 2020.12.01 |
파이썬 Pandas How to filter a Series (0) | 2020.12.01 |
파이썬 Angles between two n-dimensional vectors in Python (0) | 2020.12.01 |
파이썬 개체를 만들고 속성을 추가하려면 어떻게해야합니까? (0) | 2020.11.30 |
댓글