我正在做小提琴情节,但我有极端数据点,因此我得到类似的东西:
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?
答案 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)