2013-10-04 5 views
11

मुझे लगता है कि मैं अजगर में लोड एक पांडा dataframe का उपयोग कर डेटा का एक सेट है। मैं जो करना चाहता हूं वह एक लूप तैयार करता है जो सभी तत्वों के लिए अपने स्वयं के फ्रेम में एक साजिश मुद्रित करेगा, सभी एक नहीं। मेरे डेटा इस फैशन में संरचित excel फ़ाइल में है:प्लॉट करने के लिए एक पाश का उपयोग करें n चार्ट अजगर

Index | DATE | AMB CO 1 | AMB CO 2 |...|AMB CO_n | TOTAL 
1  | 1/1/12| 14  | 33  |...| 236 | 1600 
.  | ... | ...  | ...  |...| ... | ... 
.  | ... | ...  | ...  |...| ... | ... 
.  | ... | ...  | ...  |...| ... | ... 
n 

यही तो मैं अब तक कोड के लिए है:

import pandas as pd 
import matplotlib.pyplot as plt 
ambdf = pd.read_excel('Ambulance.xlsx', 
         sheetname='Sheet2', index_col=0, na_values=['NA']) 
print type(ambdf) 
print ambdf 
print ambdf['EAS'] 

amb_plot = plt.plot(ambdf['EAS'], linewidth=2) 
plt.title('EAS Ambulance Numbers') 
plt.xlabel('Month') 
plt.ylabel('Count of Deliveries') 
print amb_plot 

for i in ambdf: 
    print plt.plot(ambdf[i], linewidth = 2) 

मैं इस तरह कुछ करने का सोच रहा हूँ:

for i in ambdf: 
    ambdf_plot = plt.plot(ambdf, linewidth = 2) 

ऊपर दूर नहीं था मैं क्या चाहता था और यह पांडा, matplotlib आदि के साथ मेरी अलोकप्रियता की वजह से उपजी है, कुछ प्रलेखन को देखकर हालांकि मेरे लिए यह लग रहा है matplotlib की तरह भी जरूरत नहीं है (प्रश्न 2)

तो ए) मैं कैसे) मेरी df और बी में प्रत्येक स्तंभ में डेटा की एक साजिश का उत्पादन कर सकते मैं matplotlib उपयोग करने की आवश्यकता है या मैं सिर्फ पांडा का उपयोग करना चाहिए यह सब करने के लिए करते हैं?

आप

+0

तुम बस अतिरिक्त सकता है हर कॉलम के लिए एक साजिश के लिए श्रृंखला या प्रत्येक के लिए एक अलग साजिश बनाएँ। आप बाद वाले को पसंद करते हैं? इसके अलावा, 'matplotlib' प्लॉट बनाने के लिए एक सुंदर मानक मॉड्यूल है, उपयोग करने में बहुत आसान है और एक सपने की तरह काम करता है। –

+1

यह वास्तव में कोई फर्क नहीं पड़ता, यह सिर्फ मुझे इसका उपयोग करने और अभ्यास करने के लिए है, क्या परंपरा दूसरे पर एक विधि को निर्देशित करेगी? –

उत्तर

18

ठीक है धन्यवाद, है, तो कई भूखंडों बनाने के लिए सबसे आसान तरीका यह है:

import matplotlib.pyplot as plt 
x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]] 
y=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]] 
for i in range(len(x)): 
    plt.figure() 
    plt.plot(x[i],y[i]) 

ध्यान दें कि आप एक figure हर बार बनाने के लिए की जरूरत है या pyplot बनाया गया पहला एक में साजिश होगा ।

आप कई डेटा तुम सब करने की जरूरत है श्रृंखला बनाने के लिए चाहते हैं, तो यह है:

import matplotlib.pyplot as plt 
x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]] 
y=[[1,2,3,4],[2,3,4,5],[3,4,5,6],[7,8,9,10]] 
plt.plot(x[0],y[0],'r',x[1],y[1],'g',x[2],y[2],'b',x[3],y[3],'k') 

आप इसे ['r','g','b','k'] जैसे रंग की एक सूची होने और फिर बस इस सूची में दोनों प्रविष्टियाँ बुला और इसी डेटा से स्वचालित कर सकता है यदि आप चाहते थे तो एक लूप में प्लॉट किया जाएगा। तुम सिर्फ प्रोग्राम के रूप में एक भूखंड कुछ करने के लिए डेटा श्रृंखला को जोड़ने के लिए इस तरह यह करना होगा चाहते हैं (कोई नया आंकड़ा हर बार तो सब कुछ एक ही चित्र में साजिश रची है बनाई गई है):

import matplotlib.pyplot as plt 
x=[[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]] 
y=[[1,2,3,4],[2,3,4,5],[3,4,5,6],[7,8,9,10]] 
colours=['r','g','b','k'] 
for i in range(len(x)): 
    plt.plot(x[i],y[i],colours[i]) 

आशा इस मदद करता है। अगर कुछ matplotlib बहुत examples के साथ बहुत अच्छा है।

+0

आपकी मदद –

+0

अजीब तरह से पर्याप्त हालांकि मैं plt.pyplot.plot अजीब –

+0

कि अजीब है लिखना पड़ा के लिए धन्यवाद, क्यों idk। मैं पोस्ट करने से पहले अपने कोड का परीक्षण करता हूं और मेरे लिए यह काम करता है। –

0

एक शब्दकोश का उपयोग करें !!

तुम भी शब्दकोशों उपयोग कर सकते हैं कि आप भूखंडों पर अधिक नियंत्रण है की अनुमति देता है:

import matplotlib.pyplot as plt 
# plot 0  plot 1 plot 2 plot 3 
x=[[1,2,3,4],[1,4,3,4],[1,2,3,4],[9,8,7,4]] 
y=[[3,2,3,4],[3,6,3,4],[6,7,8,9],[3,2,2,4]] 

plots = zip(x,y) 
def loop_plot(plots): 
    figs={} 
    axs={} 
    for idx,plot in enumerate(plots): 
     figs[idx]=plt.figure() 
     axs[idx]=figs[idx].add_subplot(111) 
     axs[idx].plot(plot[0],plot[1]) 
return figs, axs 

figs, axs = loop_plot(plots) 

अब आप साजिश है कि आप आसानी से संशोधित करने के लिए चाहते हैं का चयन कर सकते हैं:

axs[0].set_title("Now I can control it!") 
संबंधित मुद्दे

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