2016-10-11 8 views
8

मेरे पास उपयोगकर्ता जानकारी के साथ एक पांडा dataframe है। मैं एक ही साजिश पर उपयोगकर्ताओं की उम्र kind='kde' और kind='hist' दोनों के रूप में प्लॉट करना चाहता हूं। फिलहाल मैं दो अलग-अलग भूखंडों में सक्षम हूं। dataframe जैसा दिखता है:एक ही प्लॉट पर एक 'हिस्ट' और 'केडीई' दोनों के रूप में डेटाफ्रेम प्लॉटिंग

member_df=  
user_id Age 
1   23 
2   34 
3   63 
4   18 
5   53 
... 

का उपयोग कर

ax1 = plt.subplot2grid((2,3), (0,0)) 
member_df.Age.plot(kind='kde', xlim=[16, 100]) 
ax1.set_xlabel('Age') 

ax2 = plt.subplot2grid((2,3), (0,1)) 
member_df.Age.plot(kind='hist', bins=40) 
ax2.set_xlabel('Age') 

ax3 = ... 

मैं समझता हूँ कि kind='kde' जबकि kind='kde' y- अक्ष एक संचयी बंटन दे देंगे के लिए मुझे आवृत्तियों दे देंगे, लेकिन वहाँ दोनों गठबंधन करने के लिए एक रास्ता है और क्या y-axis आवृत्तियों द्वारा प्रतिनिधित्व किया जा सकता है?

उत्तर

6

pd.DataFrame.plot()ax देता है जो यह साजिश कर रहा है। आप इसे अन्य भूखंडों के लिए पुन: उपयोग कर सकते हैं।

प्रयास करें:

ax = member_df.Age.plot(kind='kde') 
member_df.Age.plot(kind='hist', bins=40, ax=ax) 
ax.set_xlabel('Age') 

उदाहरण
मैं hist पहले पृष्ठभूमि में डाल करने के लिए
इसके अलावा, मैं secondary_y अक्ष

import pandas as pd 
import numpy as np 


np.random.seed([3,1415]) 
df = pd.DataFrame(np.random.randn(100, 2), columns=list('ab')) 

ax = df.a.plot(kind='hist') 
df.a.plot(kind='kde', ax=ax, secondary_y=True) 

enter image description here

पर kde डाल साजिश

प्रतिक्रिया
टिप्पणी करने के लिए subplot2grid का उपयोग कर। बस का पुन: उपयोग ax1

import pandas as pd 
import numpy as np 

ax1 = plt.subplot2grid((2,3), (0,0)) 

np.random.seed([3,1415]) 
df = pd.DataFrame(np.random.randn(100, 2), columns=list('ab')) 

df.a.plot(kind='hist', ax=ax1) 
df.a.plot(kind='kde', ax=ax1, secondary_y=True) 

enter image description here

+0

मैं कोड परीक्षण किया है और मुझे जो चाहिए उसे थोड़ा सा संशोधित करने का प्रयास किया। यह तब चलता है जब मेरे पास केवल उन दो भूखंडों पर विचार किया जाता है। जब मैं 'sublot2grid' में शामिल करने का प्रयास करता हूं तो यह एक ही परिणाम उत्पन्न करने में विफल रहता है, यह केवल हिस्टोग्राम को पुन: उत्पन्न करता है। – Lukasz

+2

@ लुकाज़ आप किसी भी मामले में एक ही 'कुल्हाड़ी' का उपयोग करना चाहते हैं। – piRSquared

2

मामले में आप अपने dataframe के सभी स्तंभों के लिए यह चाहते हैं:

fig, ax = plt.subplots(8,3, figsize=(20, 50)) 
# you can change the distribution, I had 22 columns, so 8x3 is fine to me 
fig.subplots_adjust(hspace = .2, wspace=.2,) 

ax = ax.ravel() 

for i in range(len(I_df.columns)): 
    ax[i] = I_df.iloc[:,i].plot(kind='hist', ax=ax[i]) 
    ax[i] = I_df.iloc[:,i].plot(kind='kde', ax=ax[i], secondary_y=True) 
    plt.title(I_df.columns[i]) 

मुझे आशा है कि यह मदद करता है :)

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