2015-08-12 9 views
6

Denizden gelen pairplot fonksiyonu, veri kümesindeki çift yönlü ilişkilerin çizimine olanak tanır.Karşılaştırmak 1 bağımsız vs çok bağımlı değişkenleri kullanarak yatay bir arsada deniz çiftliği çifti

belgelerine göre (vurgu eklenmiştir):

Varsayılan

, bu işlev Eksen bir ızgara oluşturacak bu verilerin her bir değişken tek bir satır boyunca ve y-ekseninde, Paylaşılan olacağı Tek bir sütun boyunca x ekseni. Diyagonal Eksenler farklı bir şekilde ele alınır, bu sütundaki değişken için verinin tek değişkenli dağılımını göstermek için bir çizim çizer.

Ayrıca, değişkenlerin bir alt kümesini göstermek veya satır ve sütunlarda farklı değişkenleri çizmek mümkündür.

Ben satır ve sütun için farklı değişkenler subsetting sadece bir örneğini bulabiliriz, here (o PairGrid ve pairplot() bölüm ile çizdirme ikili ilişkiler kapsamında 6 arsa var). Gördüğünüz gibi, birçok bağımsız değişkeni (x_vars) aynı tek bağımlı değişkene (y_vars) karşı çiziyor ve sonuçlar oldukça hoş.

Aynı bağımlıyı tek bir bağımsız değişkeni birçok bağımlı değişkene karşı yapmaya çalışıyorum.

import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns 

ages = np.random.gamma(6,3, size=50) 
data = pd.DataFrame({"age": ages, 
        "weight": 80*ages**2/(ages**2+10**2)*np.random.normal(1,0.2,size=ages.shape), 
        "height": 1.80*ages**5/(ages**5+12**5)*np.random.normal(1,0.2,size=ages.shape), 
        "happiness": (1-ages*0.01*np.random.normal(1,0.3,size=ages.shape))}) 

pp = sns.pairplot(data=data, 
        x_vars=['age'], 
        y_vars=['weight', 'height', 'happiness']) 

Sorun, alt piksellerin dikey olarak düzenlenmesi ve değiştirmenin bir yolunu bulamadım.

enter image description here

Ben Y ekseni her subplot de etiketlenmelidir olarak daha sonra fayans yapısı çok tertipli olmayacağını biliyoruz. Ben Seaborn kullanmayı öğreniyorum, Still

fig, axes = plt.subplots(ncols=3) 
for i, yvar in enumerate(['weight', 'height', 'happiness']): 
    axes[i].scatter(data['age'],data[yvar]) 

ve ben arayüz çok uygun bulmak, böylece bir yolu vardır acaba: Ayrıca, ben böyle bir şey ile elle yapma araziler oluşturmak biliyorum. Ayrıca, bu örnek oldukça kolaydır, ancak daha karmaşık veri setleri için Seaborn oldukça hızlı bir şekilde (tonu, başlatmak için) çok daha karmaşık ham matplotlib yaklaşımı yapacak size çok daha fazla şeyler

+0

"PairGrid" noktası, değişkenlerin eksenler arasında paylaşıldığı birden çok çizim çizmek, böylece yapmak istediğiniz şey için kullanamayacaksınız. – mwaskom

+0

Yeterince adil. Bu tür "pandalar" tanımlı sözdizimi ile denediğimi yapmanın bir yolu var mı? – mgab

+0

Sizin sadece scatterplots yapıyorsanız, pandalar çizim yöntemleri kullanmak oldukça kolay olmalı. – mwaskom

cevap

6

Sen elde edebilirsiniz için kolları x_vars ve y_vars parametreleri parametrelerine geçirilen değişken adlarını değiştirerek bakıyorsunuz. Yani kod sns.pairplot bölümünü yeniden ziyaret: Tüm Buraya yaptık

pp = sns.pairplot(data=data, 
        y_vars=['age'], 
        x_vars=['weight', 'height', 'happiness']) 

Not y_vars için takas x_vars olduğunu. araziler, yatay görüntülenir:

enter image description here

x ekseni hemen yaş kolonu ile belirlenen ortak bir y-ekseni ile, her arsa için benzersiz olacaktır.

+0

Bu bir cevaptan çok bir yorum. Yorum yapmak için temsilciniz yok, bu yüzden emin değilseniz, cevap vermeyin. OP'den açıklık olmadan cevaplayabileceğiniz sorulara cevap verin. – Bugs

+0

Katılmıyorum - cevap esas olarak doğrudur. Ancak, oldukça belirsizdir, bu yüzden cevabı iyileştirmeye yardımcı olmak için bazı düzenlemeler gönderdim. – PaulG

İlgili konular