2015-10-02 450 views
9

Seabornに2つのグラフを重ねるにはどうしたらいいですか?私は自分のデータに2つの列を持ち、同じグラフにそれらを入れたいと思っています。両方のグラフのラベルを保存するにはどうしたらいいですか?Seabornに2つのグラフを重ねるにはどうすればいいですか?

+0

これは、この質問が求めているものは明らかではありません。どのようなグラフですか?あなたは海底で多くの種類のグラフを作成することができます。正しいアプローチは、あなたがやっていることによって変わります。変数間の関係は何ですか? 「ラベルを保存する」とはどういう意味ですか?どのように2つの変数を区別したいですか?いずれにせよ、一般的な答えが出るほど、それは海底ではなく、matplotlibに関する答えとなるでしょう。 – mwaskom

+0

(1)もちろん、ラベル(3)のグラフ(2)はまだそこにあります。両方のグラフの軸ラベル(例: –

答えて

16

seaborn関数は、引数として1を取ることができます。例えば

seaborn.kdeplotにドキュメントが含まれます:

ax : matplotlib axis, optional 
    Axis to plot on, otherwise uses current axis 

あなたがやっている場合:

df = function_to_load_my_data() 
fig, ax = plt.subplots() 

その後、行うことができます:

seaborn.kdeplot(df['col1'], ax=ax) 
seaborn.kdeplot(df['col2'], ax=ax) 
+1

ありがとう、唯一の欠点は、両方のグラフのラベリングではないことです。 –

+2

@ DavoudTaghawi-Nejadあなたは 'ax'オブジェクトを持っています。その時点で何かを行うことができます。 –

+0

この場合、凡例をどのように追加しますか? – famargar

-2

最も簡単な例は次のようになります。一つの軸で動作

import seaborn as sns 

import matplotlib.pyplot as plt 

data1 = [1, 2, 3, 4, 5] 

data2 = [1, 1.1, 1.3, 4, 4.1] 

def plotter(): 
    plt.plot(data1) 
    plt.plot(data2) 
    plt.show() 


plotter() 
+1

)この例では、海底ではなく、ネイティブ 'matplotlib'を使用していますか? – VMAtm

8

一つの解決策は、導入することです第2軸:

enter image description here

+1

この場合は、おそらく凡例を持つのに役立ちます。そうするためには、seaborn関数でlabel-parameterを使うことができますが、各プロット関数の後でplt.legend()を呼び出す必要があります – awakenting

1

データ0公開コラージュデータ対プライベートについてですが、我々は我々がseabornオブジェクトにすべてのグローバルパラメータをロードし、後で私たちは、同じウィンドウにチャートをマッピング見ることができるように、働きます。

import seaborn as sns 

import matplotlib.pyplot as plt 

import pandas as pd 


df = pd.read_csv('College_Data',index_col=0) 

g = sns.FacetGrid(df,hue='Private',palette='coolwarm',size=6,aspect=2) 

g.map(plt.hist,'Outstate',bins=20,alpha=0.7) 

See Chart

関連する問題