2017-10-20 2 views
0

質問1: 余白をプロットする際にプロット内の余分なスペースを削除するにはどうすればよいですか?最初の投稿では以下のように答えました。Seabornの限界ヒストグラムを制御しますか?

質問2: 余白のヒストグラムプロットに対して、より細かなコントラストを得るにはどうすればよいですか?ヒストグラムをプロットし、余白のkdeパラメータを決定しますか? 2番目の記事では、JointGridと答えています。

#!/usr/bin/env python3 
import matplotlib 
import matplotlib.pyplot as plt 
import seaborn as sns 
import numpy as np 
import pandas as pd 

sns.set_palette("viridis") 
sns.set(style="white", color_codes=True) 

x = np.random.normal(0, 1, 1000) 
y = np.random.normal(5, 1, 1000) 

df = pd.DataFrame({"x":x, "y":y}) 

g = sns.jointplot(df["x"],df["y"], bw=0.15, shade=True, xlim=(-3,3), ylim=(2,8),cmap="coolwarm", kind="kde", stat_func=None) 

# plt.tight_layout() # This will override seaborn parameters. Remember to exclude. 
plt.show() 
+0

[ 'jointplot'ドキュメント](HTTPSではないです。 org/generated/seaborn.jointplot.html)はすでにかなり良いですか?それはすべての議論のリストと多くの例を持っています。あなたが制御したい特定のものがあれば、それが何であるかを伝える必要があります。そうでなければ( 'space'を除いて)これは本当に広すぎます。 – ImportanceOfBeingErnest

+0

達成しようとしていることはまだ明確ではありません。誰かがあなたを助けることができるものよりも、ラバーダックの質問のように思えます。問題を指定することを決めない限り。ここで「復元」とは何を意味しますか?希望の出力は何ですか? – ImportanceOfBeingErnest

+0

申し訳ありませんが、このスレッドが混乱するだけであれば、私はそれを閉じてもらいたいですか? –

答えて

2

jointplotはmainplotとmarginplotsとの間の空間を決定spaceパラメータを有しています。私にとっては、このプロットで

g = sns.jointplot(df["x"],df["y"], bw=0.15, shade=True, xlim=(-3,3), 
        ylim=(2,8),cmap="coolwarm", kind="kde", 
        stat_func=None, space = 0) 

plt.show() 

結果:このコード実行

enter image description here

plt.tight_layout()で実行すると、jointplotためspace引数を却下されますのでご注意ください。

編集:

は、さらにあなたがmarginal_kwsを使用できる限界のプロットのパラメータを指定します。使用するマージン・プロットの種類のパラメーターを指定する辞書を渡す必要があります。

例では、kdeプロットを余白プロットとして使用します。だから私はこれを例として引き続き使用していきます:

ここでは、限界線を作るために使われるカーネルを変更する方法を示します。あなたはそのための値としてそのパラメータの辞書内のキーと目標値としてKDEプロットによって受け入れ任意のパラメータを渡すことができ

enter image description here

:このグラフにおいて得

g = sns.jointplot(df["x"],df["y"], bw=0.15, shade=True, xlim=(-3,3), 
        ylim=(2,8),cmap="coolwarm", kind="kde", 
        stat_func=None, space = 0, marginal_kws={'kernel': 'epa'}) 


plt.show() 

キー。

0

さて、私は先に進んで自分自身で追加の回答を投稿します。余分なmarginal_kwsが制御できるパラメータは私にはあまり明らかではありません。代わりに、プロットの層ごとの(特にggplotから来る)JointGridを使用して構築するより直感的かもしれません://seaborn.pydata:

g = sns.JointGrid(x="x", y="y", data=df)   # Initiate multi-plot 
g.plot_joint(sns.kdeplot)       # Plot the center x/y plot as sns.kdeplot 
g.plot_marginals(sns.distplot, kde=True)   # Plot the edges as sns.distplot (histogram), where kde can be set to True 
関連する問題