Seaborn:剪裁显示

时间:2017-07-13 17:27:22

标签: python python-3.x pandas matplotlib seaborn

我正在做小提琴情节,但我有极端数据点,因此我得到类似的东西:

sns.violinplot(x = "x_axis", y = "y_axis", hue="groups", data = my_data, split = True)

with extremes

如果我在Y轴上剪切数据以排除> 200但是,像这样:

cut_data = my_data[my_data.y_axis < 200]
sns.violinplot(x = "x_axis", y = "y_axis", hue="groups", data = cut_data, split = True)

我得到这样的东西:

with data cut

但当然,这是不受欢迎的,因为就基础数据而言,第二个图与第一个图不同。 所以我的问题是:有没有办法绘制所有数据的图表,但图表只显示Y轴上的0到200?

1 个答案:

答案 0 :(得分:3)

您可以通过在matplotlib轴对象上设置y轴限制来截断绘图本身:

#create a sample data set
df = pd.DataFrame(np.random.gamma(1, 100, 10000), columns=['a'])
df['Group'] = np.random.choice(['group 1', 'group 2'], 10000)

#plot and the truncate the axis
fig, ax = plt.subplots(1)
sns.violinplot(x='Group', y='a', data=df, ax=ax)
ax.set_ylim(0, 200)

enter image description here