2016-02-29 92 views
2

我第一次使用seaborn,並試圖製作一個嵌套(分組)的boxplot,其數據點添加爲點。這裏是我的代碼:將splitplot(dotplot)添加到分組boxplot中 - Panda和Seaborn

import seaborn as sns 
import pandas as pd 
import matplotlib.pyplot as plt 
tips = sns.load_dataset("tips") 
sns.set(style="ticks") 
## Draw a nested boxplot to show bills by day and sex 
sns.boxplot(x="day", y="total_bill", hue="smoker",data=tips,width=0.5,palette="PRGn",linewidth=1) 

## Draw a split strip plot 
sns.stripplot(x="day", y="total_bill", hue="smoker",palette="PRGn",data=tips,size=4,edgecolor="gray", 
      split=True) 
sns.despine(offset=10, trim=True) 
plt.show() 

而且數字:enter image description here

您可以看到點並不集中在貨箱,因爲在箱線圖使用的「寬度」參數。有什麼辦法可以將點與盒子對齊嗎? boxplot命令中的寬度參數是未對齊點的原因。

p.s. - 我已經添加了湯姆提到的MCVE。

八德

+0

(https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.stripplot.html)它們似乎是居中(雖然在一個水平的,而不是垂直的情節)。也許你可以在你的問題中添加一個[MCVE](http://stackoverflow.com/help/mcve)來重現這種行爲? – tom

+0

@tom:我添加了這個例子。 – Bade

回答

0

組之間的距離自動計算,有沒有簡單的方法來改變它,我知道的,但使用的是一種間接的方式來修改它在箱線圖:關鍵字width。使用默認值,一切都會對齊。

sns.set(style="ticks") 
sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, 
      palette="PRGn", linewidth=1) 
sns.stripplot(x="day", y="total_bill", hue="smoker", data=tips, 
       palette="PRGn", size=4, edgecolor="gray", split=True) 
sns.despine(offset=10, trim=True) 

aligned plot

在向[當前頁]底部的示例