是否可以在seaborn boxplot上设置ylim参数?
举个例子:
y = np.random.randn(300)
sns.boxplot (y=y)
Run Code Online (Sandbox Code Playgroud)
显示器
但如果我试试
ax.set_ylim=(-5, 5)
Run Code Online (Sandbox Code Playgroud)
没什么区别.是否可以为给定数据集图设置不同于默认值的箱图的ylim值?
作为Udacity课程的一部分,我正在处理Titanic乘客数据集(来自Kaggle)。我正在使用Seaborn FacetGrid来查看按旅行舱位和性别划分的乘客年龄分布概况-色调为“幸存”(1/0)。
该图运行良好,我想向每个子图添加垂直中线-但对于每个子图(1/0)中的两个“色相”中的每一个,其颜色都不同(且注释也不同)。下面的vertical_mean_line代码中的' '函数在没有多个'hue'数据的绘图上效果很好-但我找不到一种为每种色调绘制不同线条的方法
有什么想法可以在Seaborn中做到吗?
当前的Seaborn FacetGrid绘图输出:

码:
sns.set()
sns.set_context('talk')
sns.set_style('darkgrid')
grid = sns.FacetGrid(titanic_data.loc[titanic_data['is_child_def'] == False], col='Sex', row = 'Pclass', hue='Survived' ,size=3.2, aspect=2)
grid.map(sns.kdeplot, 'Age', shade=True)
grid.set(xlim=(14, titanic_data['Age'].max()), ylim=(0,0.06))
grid.add_legend()
# Add vertical lines for mean age on each plot
def vertical_mean_line_survived(x, **kwargs):
plt.axvline(x.mean(), linestyle = '--', color = 'g')
#plt.text(x.mean()+1, 0.052, 'mean = '+str('%.2f'%x.mean()), size=12)
#plt.text(x.mean()+1, 0.0455, 'std = '+str('%.2f'%x.std()), size=12)
grid.map(vertical_mean_line_survived, 'Age')
# Add text to each plot for relevant popultion size
# NOTE …Run Code Online (Sandbox Code Playgroud) 我有一个带有 c 的 pandas DF。10 年来的 16 万个日期观测值,并希望删除闰年 2 月 29 日以来的所有观测值,以便能够在所有年份中进行一致的逐日比较。
带有时间戳的 df 列(使用 pd.to_datetime 创建)是“日期”。
我使用以下内容创建月份和日期列
df['month'] = temp_data.Date.dt.month
df['day'] = temp_data.Date.dt.day
以及以下内容来创建 2 月 29 日日期的布尔掩码:
df['leapday'] = df.apply(lambda x: True if x['month'] == 2 and x['day'] == 29
else False, axis = 1)
并且可以轻松过滤这个布尔掩码上的 df 。但在 160k 观察的 df 上,这很慢,我怀疑有一种更有效的方法来做到这一点。
有什么建议么?