2017-10-20 6 views
0

질문 1 : 여백을 플로팅 할 때 플롯에서 초과 공간을 제거하려면 어떻게합니까? 첫 번째 게시물에서 아래에 답했습니다.Seaborn 한계 히스토그램을 제어 하시겠습니까?

질문 2 : 여백 히스토그램 플롯을 통해 어떻게 미세한 컨트 롤을 얻을 수 있습니까? 히스토그램을 플롯하고 여백에 대한 kde 매개 변수를 결정 하시겠습니까? 아래에서 두 번째 게시물에 대한 답변은 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가 없습니다 : 대신에, 플롯을 계층별로 레이어 JointGrid를 사용하여 (특히 ggplot에서 오는)를 구축하는 것이 더 직관적 수 있습니다. 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()로 실행하는 jointplotspace 주장을 기각 점에 유의하시기 바랍니다.

편집 :

더 당신이 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 매개 변수가 제어 할 수있는 매개 변수가 전적으로 분명하지 않습니다. //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