Son birkaç gündür Numpy ve matplotlib ile oynuyorum. Matplotlib'i çalıştırmayı engellemeden bir işlev çizmeye çalışırken sorun yaşıyorum. SO'da zaten benzer sorular soran birçok ileti dizisi olduğunu biliyorum ve epeyce Google'da arama yaptım ama bu işi yapmayı başaramadım.
Bazılarının önerdiği gibi show (blok = False) kullanmayı denedim, ancak aldığım tek şey donmuş bir pencere. Sadece show () 'u çağırırsam, sonuç doğru şekilde çizilir, ancak pencere kapanana kadar çalıştırma engellenir. Okuduğum diğer konulardan, show'un (block = False) çalışıp çalışmayacağının arka uca bağlı olduğundan şüpheleniyorum. Bu doğru mu? Arka ucum Qt4Agg. Koduma bakıp yanlış bir şey görürsen bana söyleyebilir misin? İşte kodum. Herhangi bir yardım için teşekkürler.
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()
PS. Her seferinde yeni bir tane oluşturmak yerine mevcut pencereyi güncellemek istediğimi söylemeyi unuttum.
matplotlib
.
plt.ion()
önce denedinizplt.show()
mi? Her arsa bir çocuk iş parçacığına dönüştüğü için engelleyici olmamalıdır.