pyplot

2015-06-12 3 views
5

का उपयोग किए बिना matplotlib में प्लॉट कैसे बनाएं I दैनिक आधार पर पांच महीने के लिए matplotlib का उपयोग कर रहा हूं, और मुझे अभी भी नए आंकड़ों को भ्रमित करने का निर्माण मिल रहा है।pyplot

आमतौर पर मैं का उपयोग कर 2x2 subplots के साथ एक आंकड़ा बनाने के लिए, उदाहरण के लिए, somthing की तरह:

import matplotlib.pyplot as plt 
import itertools as it 
fig,axes = plt.subplots(2,2) 
axit = (ax for ax in it.chain(*axes)) 
for each of four data series I want to plot: 
    ax = next(axit) 
    ax.plot(...) 

सवाल मैं अब है: कैसे pyplot, यानी की पूरी तरह से स्वतंत्र रूप से काम कर सकते हैं, मैं कैसे एक आंकड़ा बना सकते हैं , इसे भूखंडों के साथ पॉप्युलेट करें, शैली में बदलाव करें, और केवल उस आंकड़े को उस सटीक पल में दिखाई दें जिसे मैं दिखाना चाहता हूं। यहाँ है कि मैं क्या साथ परेशानी हो रही हूँ:

import matplotlib as mpl 
gs = gridspec.GridSpec(2,2) 
fig = mpl.figure.Figure() 
ax1 = fig.add_subplot(gs[0]) 
ax1.plot([1,2,3]) 
ax2 = fig.add_subplot(gs[1]) 
ax2.plot([3,2,1]) 

ऊपर चलाने के बाद, केवल एक चीज है जो मन में आता उपयोग करने के लिए होगा:

plt.draw() 

लेकिन यह काम नहीं करता। भूखंडों के साथ आकृति बनाने के लिए क्या गुम है? इसके अलावा,

fig = mpl.figure.Figure() 

मुझे पिपलॉट के बिना चित्र बनाने के लिए क्या करना है?

+0

आप पाइपप्लॉट का उपयोग क्यों नहीं करना चाहते हैं? – hitzg

+0

मैं एक जीयूआई में matplotlib एम्बेड करने के लिए Tkinter का उपयोग कर रहा हूँ। मैंने इसे एक पुस्तक में और ऑनलाइन भी करने के लिए कुछ कोड देखने के बाद इसे प्राप्त कर लिया है। जिस तरह से वे जीयूआई में एक साजिश एम्बेड करते हैं वह पाइपप्लॉट का उपयोग नहीं करता है। अब मैं ग्रिडपेक के साथ कई भूखंडों का उपयोग करके, बस एक साधारण साजिश की बजाय कुछ नई विशेषताओं को जोड़ने की कोशिश कर रहा हूं। – evianpring

+0

यह एक उदाहरण है कि कैसे एक आकृति को एम्बेड करने के लिए: http://matplotlib.org/examples/user_interfaces/embedding_in_tk.html – hitzg

उत्तर

1

आप मैन्युअल रूप से एक उपयुक्त backend अपने आंकड़ा करने के लिए संलग्न कर सकता है और फिर इसे दिखाने:

from matplotlib.backends import backend_qt4agg # e.g. 
backend_qt4agg.new_figure_manager_given_figure(1, fig) 
fig.show() 

... लेकिन क्यों pyplot का उपयोग नहीं?

+0

मैं एक जीयूआई में matplotlib एम्बेड करने के लिए Tkinter का उपयोग कर रहा हूँ। मैंने इसे एक पुस्तक में और ऑनलाइन भी करने के लिए कुछ कोड देखने के बाद इसे प्राप्त कर लिया है। जिस तरह से वे जीयूआई में एक साजिश एम्बेड करते हैं वह पाइपप्लॉट का उपयोग नहीं करता है। अब मैं ग्रिडपेक के साथ कई भूखंडों का उपयोग करके, बस एक साधारण साजिश की बजाय कुछ नई विशेषताओं को जोड़ने की कोशिश कर रहा हूं। – evianpring

+0

लेकिन बस मैं समझता हूं, मैंने दस्तावेज़ों से निम्नलिखित पढ़ा है: "matplotlib विभिन्न आउटपुट को लक्षित कर सकता है, और इन क्षमताओं में से प्रत्येक को बैकएंड कहा जाता है" "दो प्रकार के बैकएंड हैं: उपयोगकर्ता इंटरफ़ेस बैकएंड (के लिए pygtk, wxpython, tkinter, qt4, या macosx में उपयोग करें; "इंटरैक्टिव बैकएंड" के रूप में भी जाना जाता है) और छवि फ़ाइलों को बनाने के लिए हार्डकॉपी बैकएंड (पीएनजी, एसवीजी, पीडीएफ, पीएस; जिसे "गैर-इंटरैक्टिव बैकएंड" भी कहा जाता है)। " – evianpring

+0

"ग्राफिकल यूजर इंटरफेस के लिए चीजों को थोड़ा अधिक अनुकूलन करने के लिए, matplotlib कैनवास (वह स्थान जहां ड्राइंग जाता है) से रेंडरर (वास्तव में चित्रकारी करता है) की अवधारणा को अलग करता है।" "उपयोगकर्ता इंटरफेस के लिए कैनोलिक रेंडरर एजीजी है" तो, जैसा कि मैंने समझा, आप बैकएंड Qt4agg का उपयोग कर रहे हैं, जो "एक क्यूटी 4 कैनवास में एजीजी प्रतिपादन" है। Tkinter Tkagg का उपयोग करता है, जो "एक कैनवास के लिए agg प्रतिपादन" है। कलाकारों से ट्यूटोरियल: – evianpring

संबंधित मुद्दे