मैं पिछले कुछ दिनों में नेम्पी और मैटलपोटलिब के साथ खेल रहा हूं। मुझे समस्या हो रही है कि matplotlib को ब्लॉक किए बिना फंक्शन को प्लॉट करने की कोशिश करें। मुझे पता है कि एसओ पर पहले से ही कई सूत्र हैं जो समान सवाल पूछते हैं, और मैं काफी गुगली कर रहा हूं लेकिन यह काम करने में कामयाब नहीं हुआ है।
मैंने शो (ब्लॉक = गलत) का उपयोग करने की कोशिश की है जैसा कि कुछ लोग सुझाव देते हैं, लेकिन मुझे जो भी मिलता है वह एक जमी हुई खिड़की है। यदि मैं केवल शो कॉल करता हूं (), तो परिणाम ठीक से प्लॉट किया गया है लेकिन विंडो बंद होने तक निष्पादन अवरुद्ध है। अन्य थ्रेड्स से मैंने पढ़ा है, मुझे संदेह है कि शो (ब्लॉक = गलत) काम करता है या नहीं, बैकएंड पर निर्भर करता है। क्या ये सही है? मेरा बैक एंड 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()
पुनश्च। मैं यह कहना भूल गया कि मैं हर बार मौजूदा विंडो को अपडेट करना चाहूंगा, जिससे मैं नया निर्माण कर सकूं।
matplotlib
।
plt.ion()
पहले के साथ matplotlib इंटरैक्टिव मोड की कोशिश की हैplt.show()
? यह तब गैर-अवरुद्ध होना चाहिए क्योंकि प्रत्येक भूखंड को एक बच्चे के धागे में रखा गया है।