我正在做小提琴曲线图,但我有极端的数据点,因此我得到了类似这样的东西:
sns.violinplot(x = "x_axis", y = "y_axis", hue="groups", data = my_data, split = True)

但是,如果我在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)我得到的东西是这样的:

当然,这并不是我们想要的,因为就底层数据而言,第二个图与第一个图并不相同。所以我的问题是:有没有一种方法可以用图形表示所有的数据,但图形只在Y轴上从0到200显示?
发布于 2017-07-14 02:21:03
通过在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)

https://stackoverflow.com/questions/45087361
复制相似问题