SeabornFacetGridを使用してデータフレームからエラーバーをプロットする

エルフノール

SeabornFacetGridのパンダデータフレームの列からエラーバーをプロットしたい

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar']*2,
                   'B' : ['one', 'one', 'two', 'three',
                         'two', 'two', 'one', 'three'],
                  'C' : np.random.randn(8),
                  'D' : np.random.randn(8)})
df

データフレームの例

    A       B        C           D
0   foo     one      0.445827   -0.311863
1   bar     one      0.862154   -0.229065
2   foo     two      0.290981   -0.835301
3   bar     three    0.995732    0.356807
4   foo     two      0.029311    0.631812
5   bar     two      0.023164   -0.468248
6   foo     one     -1.568248    2.508461
7   bar     three   -0.407807    0.319404

このコードは、固定サイズのエラーバーで機能します。

g = sns.FacetGrid(df, col="A", hue="B", size =5)
g.map(plt.errorbar, "C", "D",yerr=0.5, fmt='o');

ここに画像の説明を入力してください

しかし、データフレームの値を使用して動作させることはできません

df['E'] = abs(df['D']*0.5)
g = sns.FacetGrid(df, col="A", hue="B", size =5)
g.map(plt.errorbar, "C", "D", yerr=df['E']);

または

g = sns.FacetGrid(df, col="A", hue="B", size =5)
g.map(plt.errorbar, "C", "D", yerr='E');

どちらもエラーのスクリードを生成します

編集:

たくさんのmatplotlibドキュメントを読んで、さまざまなスタックオーバーフローの回答をした後、ここに純粋なmatplotlibソリューションがあります

#define a color palette index based on column 'B'
df['cind'] = pd.Categorical(df['B']).labels

#how many categories in column 'A'
cats = df['A'].unique()
cats.sort()

#get the seaborn colour palette and convert to array
cp = sns.color_palette()
cpa = np.array(cp)

#draw a subplot for each category in column "A"
fig, axs = plt.subplots(nrows=1, ncols=len(cats), sharey=True)
for i,ax in enumerate(axs):
    df_sub = df[df['A'] == cats[i]]
    col = cpa[df_sub['cind']]
    ax.scatter(df_sub['C'], df_sub['D'], c=col)
    eb = ax.errorbar(df_sub['C'], df_sub['D'], yerr=df_sub['E'], fmt=None)
    a, (b, c), (d,) = eb.lines
    d.set_color(col)

ラベル以外、軸はOKを制限します。列「A」のカテゴリごとに個別のサブプロットをプロットし、列「B」のカテゴリで色分けしました。(ランダムデータは上記のものとは異なることに注意してください)

誰かアイデアがあれば、パンダ/海の解決策が欲しいですか?

ここに画像の説明を入力してください

mwaskom

を使用する場合FacetGrid.mapdataDataFrameを参照するものはすべて位置引数として渡す必要があります。yerrの3番目の位置引数であるためplt.errorbarこれはあなたの場合に機能しますが、ヒントデータセットを使用することを示すために:

from scipy import stats
tips_all = sns.load_dataset("tips")
tips_grouped = tips_all.groupby(["smoker", "size"])
tips = tips_grouped.mean()
tips["CI"] = tips_grouped.total_bill.apply(stats.sem) * 1.96
tips.reset_index(inplace=True)

次に、とを使用FacetGridしてプロットできますerrorbar

g = sns.FacetGrid(tips, col="smoker", size=5)
g.map(plt.errorbar, "size", "total_bill", "CI", marker="o")

ここに画像の説明を入力してください

ただし、完全なデータセットからエラーバー付きのプロット(ブートストラップを使用)に移行するための海のプロット関数があるため、多くのアプリケーションではこれは必要ない場合があることに注意してください。たとえば、次を使用できますfactorplot

sns.factorplot("size", "total_bill", col="smoker",
               data=tips_all, kind="point")

ここに画像の説明を入力してください

またはlmplot

sns.lmplot("size", "total_bill", col="smoker",
           data=tips_all, fit_reg=False, x_estimator=np.mean)

ここに画像の説明を入力してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

データフレームから標準エラーバーをプロットする方法は?

分類Dev

データフレームを使用して、プロットSeabornFacetgridの同じ線の線種を変更します

分類Dev

データフレームからforループを使用して複数のプロットを作成する

分類Dev

Pandasデータフレームからポイントを使用してバープロットをプロットする

分類Dev

データフレームのサブセットを使用してRバープロットを作成する

分類Dev

パンダを使用してデータフレームから(グループ化された)棒グラフをプロットする方法

分類Dev

matplotlibを使用してパンダデータフレームからタイムセリスグラフをプロットする

分類Dev

サブプロットとして、データフレームから列をプロットする方法

分類Dev

matplotlibを使用してデータフレームからベクトルをプロットしますか?

分類Dev

異なるIPythonバージョンでmatplotlibを使用してパンダデータフレームからプロットするときにエラーが発生する

分類Dev

group_byを使用して相関とp値のデータフレームを作成し、Rのエラーバーでプロットします。

分類Dev

データフレームにseabornを使用してヒストグラムをプロットする

分類Dev

Rのデータフレームのリストを使用してグラフをプロットする方法

分類Dev

Rのデータフレームのリストを使用してグラフをプロットする方法

分類Dev

ループを使用してプロット[ggplot2]を作成する:エラー `data`はデータフレームである必要があります

分類Dev

PythonとSeabornを使用してデータフレームからヒートマップを生成する

分類Dev

pandasデータフレームを使用したエラーバーmatplotlibのプロット

分類Dev

1つのx軸を使用して1つのデータフレームから複数のグラフをプロットする-Python

分類Dev

matplotlibを使用してプロットしながら、データフレーム列の文字列に基づいてカラーマップを作成する

分類Dev

エンティティフレームワークを使用してストアドプロシージャからテーブルデータを取得する

分類Dev

Rのヒートマッププロットとして3列のデータフレームからデータをプロットする方法は?

分類Dev

海生まれのバープロットを使用して、ワイドフォームのデータフレームをプロットする

分類Dev

matplotlib を使用して pandas データ フレーム グラフをプロットする

分類Dev

Plotly Express:px.bar()を使用してスタックされていないデータフレームをプロットするときのエラー

分類Dev

フラスコを使用してリーフレットマップからデータを収集する

分類Dev

Rでlapplyを使用してプロットするデータフレーム名を追加しますか?

分類Dev

列の値に基づいて明確な曲線を使用してPandasデータフレームからデータをプロットする

分類Dev

2つのデータフレームの列の平均を計算してから、特定のラベルが付いたバープロットに各データフレームの平均をプロットしますか?

分類Dev

あるデータフレームで変数を選択して、別のデータフレームからプロットします

Related 関連記事

  1. 1

    データフレームから標準エラーバーをプロットする方法は?

  2. 2

    データフレームを使用して、プロットSeabornFacetgridの同じ線の線種を変更します

  3. 3

    データフレームからforループを使用して複数のプロットを作成する

  4. 4

    Pandasデータフレームからポイントを使用してバープロットをプロットする

  5. 5

    データフレームのサブセットを使用してRバープロットを作成する

  6. 6

    パンダを使用してデータフレームから(グループ化された)棒グラフをプロットする方法

  7. 7

    matplotlibを使用してパンダデータフレームからタイムセリスグラフをプロットする

  8. 8

    サブプロットとして、データフレームから列をプロットする方法

  9. 9

    matplotlibを使用してデータフレームからベクトルをプロットしますか?

  10. 10

    異なるIPythonバージョンでmatplotlibを使用してパンダデータフレームからプロットするときにエラーが発生する

  11. 11

    group_byを使用して相関とp値のデータフレームを作成し、Rのエラーバーでプロットします。

  12. 12

    データフレームにseabornを使用してヒストグラムをプロットする

  13. 13

    Rのデータフレームのリストを使用してグラフをプロットする方法

  14. 14

    Rのデータフレームのリストを使用してグラフをプロットする方法

  15. 15

    ループを使用してプロット[ggplot2]を作成する:エラー `data`はデータフレームである必要があります

  16. 16

    PythonとSeabornを使用してデータフレームからヒートマップを生成する

  17. 17

    pandasデータフレームを使用したエラーバーmatplotlibのプロット

  18. 18

    1つのx軸を使用して1つのデータフレームから複数のグラフをプロットする-Python

  19. 19

    matplotlibを使用してプロットしながら、データフレーム列の文字列に基づいてカラーマップを作成する

  20. 20

    エンティティフレームワークを使用してストアドプロシージャからテーブルデータを取得する

  21. 21

    Rのヒートマッププロットとして3列のデータフレームからデータをプロットする方法は?

  22. 22

    海生まれのバープロットを使用して、ワイドフォームのデータフレームをプロットする

  23. 23

    matplotlib を使用して pandas データ フレーム グラフをプロットする

  24. 24

    Plotly Express:px.bar()を使用してスタックされていないデータフレームをプロットするときのエラー

  25. 25

    フラスコを使用してリーフレットマップからデータを収集する

  26. 26

    Rでlapplyを使用してプロットするデータフレーム名を追加しますか?

  27. 27

    列の値に基づいて明確な曲線を使用してPandasデータフレームからデータをプロットする

  28. 28

    2つのデータフレームの列の平均を計算してから、特定のラベルが付いたバープロットに各データフレームの平均をプロットしますか?

  29. 29

    あるデータフレームで変数を選択して、別のデータフレームからプロットします

ホットタグ

アーカイブ