15

Pandas のデータフレームには boxplotメソッドがありますが、Pandas または seaborn でドットボックスプロットを作成する方法はあります?

ドット ボックスプロットとは、たとえば以下の例 (R で取得) のように、プロット内の実際のデータ ポイント (またはそれらの関連サンプル) を示すボックス プロットを意味します。

ここに画像の説明を入力

4

2 に答える 2

18

OPの質問に関連するより正確な回答については(Pandasを使用):

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="--")

箱ひげ図


古いバージョン (より一般的) :

matplotlib を使用:

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)

それはそれを与える: ドットボックスプロット

このチュートリアルから着想を得た

お役に立てれば !

于 2014-05-16T13:22:24.880 に答える
11

これは、seaborn バージョン 0.6 (現在は github の master ブランチにあります) でstripplot関数を使用して可能になります。次に例を示します。

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")

ここに画像の説明を入力

于 2015-02-17T16:16:43.903 に答える