2017-06-18 11 views
6

मैं अजगर के साथ खड़ी क्षेत्रों साजिश चाहते हैं के लिए विरोधी aliasing निकालें, और इस पांडा 'समारोह का पता लगाना:पांडा plot.area

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) 
df.plot.area(); 

हालांकि, परिणाम निराले ढंग से एंटीएलियास है, एक साथ रंगों के मिश्रण, के रूप में उन 2 भूखंडों पर दिखाया: Example of plot.area

Zoom of plot.area

एक ही समस्या documentation में उपलब्ध कराई गई उदाहरण में होता है।

क्या आप जानते हैं कि इस एंटी-एलियासिंग को कैसे हटाया जाए? (या लाइन प्लॉट्स के स्टैक्ड प्रस्तुति के लिए एक साफ आउटपुट प्राप्त करने का दूसरा मतलब है।)

उत्तर

2

एक matplotlib ढेर साजिश ठीक

fig, ax = plt.subplots() 
df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) 
ax.stackplot(df.index, df.values.T) 

enter image description here

काम करता है के बाद से क्षेत्र साजिश एक stackplot है का उपयोग करना, फर्क सिर्फ इतना है:
एक शून्य रेखा की चौड़ाई का प्रयास करें उन क्षेत्रों की लाइनविड्थ होगी, जिन्हें आप शून्य पर सेट कर सकते हैं।

df = pd.DataFrame(np.random.rand(10, 4), columns=['a', 'b', 'c', 'd']) 
df.plot.area(linewidth=0) 

enter image description here

शेष भूरा लाइनों एंटीलायज़िंग़ के कारण वास्तव में तो कर रहे हैं। आप matplotlib साजिश

fig, ax = plt.subplots() 
ax.stackplot(df.index, df.values.T, antialiased=False) 

परिणाम तथापि में है कि बंद कर सकते हैं, देखने में आकर्षक नहीं हो सकता है:

enter image description here

+0

ग्रे लाइनों को हटाने के लिए अद्यतन उत्तर देखें। – ImportanceOfBeingErnest

1

ऐसा लगता है कि दो सीमाएं हैं।

df.plot.area(lw=0); 

enter image description here

+0

उत्तर के लिए धन्यवाद, यह इस विकल्प के साथ ज्यादा बेहतर है! आगे जाने के लिए, क्या आप जानते हैं कि स्टैक्ड क्षेत्रों के बीच सूक्ष्म ग्रे लाइनों को कैसे हटाया जाए? – ahstat