DataFrames gelen Dot-kutudiyagramlar

oy
11

Pandalar içinde Dataframes bir var boxplot yöntemi, ancak oluşturmak için herhangi bir yolu yoktur nokta kutudiyagramlar aksi ile Pandalar içinde veya Seaborn ?

Noktalı Boxplot ile, bir Boxplot ortalama gerçek veri noktalarını gösterir (R 'de elde edilen) aşağıdaki örnekte olduğu gibi bir arsa örneğin içinde (ya da ilgili bir örnek).

Burada

Oluştur 07/05/2014 saat 14:25
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
12

(Pandalar ile) OP'ın sorusuna ilişkin daha kesin bir yanıt için:

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

data = pd.DataFrame({ "A":np.random.normal(0.8,0.2,20),
                      "B":np.random.normal(0.8,0.1,20), 
                      "C":np.random.normal(0.9,0.1,20)} )

data.boxplot()

for i,d in enumerate(data):
    y = data[d]
    x = np.random.normal(i+1, 0.04, len(y))
    plt.plot(x, y, mfc = ["orange","blue","yellow"][i], mec='k', ms=7, marker="o", linestyle="None")

plt.hlines(1,0,4,linestyle="--")

boxplot


Eski sürümü (daha genel):

matplotlib ile:

import numpy as np
import matplotlib.pyplot as plt

a = np.random.normal(0,2,1000)
b = np.random.normal(-2,7,100)
data = [a,b]

plt.boxplot(data) # Or you can use the boxplot from Pandas

for i in [1,2]:
    y = data[i-1]
    x = np.random.normal(i, 0.02, len(y))
    plt.plot(x, y, 'r.', alpha=0.2)

Hangi olduğunu verir: dot-boxplot

Dan esinlenerek Bu eğitimde

Bu yardımcı olur umarım !

Cevap 16/05/2014 saat 14:22
kaynak kullanıcı

oy
12

Bu, başlangıç (şu anda github ana dalında) Seaborn sürüm 0.6 ile mümkün olacaktır stripplotişlevi. İşte bir örnek:

import seaborn as sns
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
sns.stripplot(x="day", y="total_bill", data=tips,
              size=4, jitter=True, edgecolor="gray")

Burada görüntü açıklama girin

Cevap 17/02/2015 saat 16:16
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more