python - पांडा का उपयोग करके प्लॉट सहसंबंध मैट्रिक्स




pandas matplotlib (6)

मेरे पास बड़ी संख्या में सुविधाओं के साथ एक डेटा सेट है, इसलिए सहसंबंध मैट्रिक्स का विश्लेषण करना बहुत मुश्किल हो गया है। मैं एक सहसंबंध मैट्रिक्स को प्लॉट करना चाहता हूं जो हमें पंडों की लाइब्रेरी से डेटाफ्रेम. dataframe.corr() फ़ंक्शन का उपयोग करके मिलता है। क्या इस मैट्रिक्स को प्लॉट करने के लिए पांडा लाइब्रेरी द्वारा प्रदान किया गया कोई अंतर्निहित कार्य है?


आप matplotlib से pyplot.matshow() उपयोग कर सकते हैं:

import matplotlib.pyplot as plt

plt.matshow(dataframe.corr())
plt.show()

संपादित करें:

टिप्पणियों में अक्ष टिक लेबल को बदलने के लिए एक अनुरोध था। यहाँ एक डीलक्स संस्करण है जो एक बड़े आकार के आकार पर खींचा गया है, जिसमें डेटाफ्रेम से मेल खाने के लिए अक्ष लेबल है, और रंग पैमाने की व्याख्या करने के लिए एक रंग पट्टी किंवदंती है।

मैं शामिल हूं कि लेबल के आकार और घुमाव को कैसे समायोजित किया जाए, और मैं एक आंकड़ा अनुपात का उपयोग कर रहा हूं जो कि रंगबार बनाता है और मुख्य आकृति समान ऊंचाई से निकलती है।

f = plt.figure(figsize=(19, 15))
plt.matshow(df.corr(), fignum=f.number)
plt.xticks(range(df.shape[1]), df.columns, fontsize=14, rotation=45)
plt.yticks(range(df.shape[1]), df.columns, fontsize=14)
cb = plt.colorbar()
cb.ax.tick_params(labelsize=14)
plt.title('Correlation Matrix', fontsize=16);


आप matplotlib से imshow () विधि का उपयोग कर सकते हैं

import pandas as pd
import matplotlib.pyplot as plt
plt.style.use('ggplot')

plt.imshow(X.corr(), cmap=plt.cm.Reds, interpolation='nearest')
plt.colorbar()
tick_marks = [i for i in range(len(X.columns))]
plt.xticks(tick_marks, X.columns, rotation='vertical')
plt.yticks(tick_marks, X.columns)
plt.show()

इस फ़ंक्शन को आज़माएं, जो सहसंबंध मैट्रिक्स के लिए चर नाम प्रदर्शित करता है:

def plot_corr(df,size=10):
    '''Function plots a graphical correlation matrix for each pair of columns in the dataframe.

    Input:
        df: pandas DataFrame
        size: vertical and horizontal size of the plot'''

    corr = df.corr()
    fig, ax = plt.subplots(figsize=(size, size))
    ax.matshow(corr)
    plt.xticks(range(len(corr.columns)), corr.columns);
    plt.yticks(range(len(corr.columns)), corr.columns);

यदि आप डेटाफ्रेम df तो आप बस उपयोग कर सकते हैं:

import matplotlib.pyplot as plt
import seaborn as sns

plt.figure(figsize=(15, 10))
sns.heatmap(df.corr(), annot=True)

सीबोर्न का हीटमैप संस्करण:

import seaborn as sns
corr = dataframe.corr()
sns.heatmap(corr, 
            xticklabels=corr.columns.values,
            yticklabels=corr.columns.values)

स्टेटमॉडल ग्राफिक्स भी सहसंबंध मैट्रिक्स का एक अच्छा दृश्य देता है

 import statsmodels.api as sm import matplotlib.pyplot as plt corr = dataframe.corr() sm.graphics.plot_corr(corr, xnames=list(corr.columns)) plt.show() 





information-visualization