一半(不分开!)海伯恩的小提琴情节

2024-10-02 10:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,seaborn通过设置split=True,根据hue变量提供{a1}。我想做一个'半'小提琴情节,即一个情节,其中一半小提琴被省略。这样一个图描述的东西类似于每个连续变量的pdf,只在每个分类变量的每条垂直线的一侧绘制。在

我已经设法让seaborn用一个超出绘制值范围的额外数据点和一个额外的虚拟色调来绘制这个图,但是我想知道这是否可以在不改变数据集的情况下完成,例如在sns.violinplot()参数内。在

例如,此图:

enter image description here

由以下代码段创建:

# imports
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# load dataset from seaborn
datalist = sns.get_dataset_names()
dataset_name = 'iris'
if dataset_name in datalist:
    df = sns.load_dataset(dataset_name)
else:
    print("Dataset with name: " + dataset_name + " was not found in the available datasets online by seaborn.")

# prepare data
df2 = df.append([-999,-999,-999,-999,'setosa'])
df2['huecol'] = 0.0
df2['huecol'].iloc[-1]= -999

# plot
fig = plt.figure(figsize=(6,6))
sns.violinplot(x='species',y="sepal_width",
            split=True, hue ='huecol', inner = 'quartile',
            palette="pastel", data=df2, legend=False)
plt.title('iris')

# remove hue legend
leg = plt.gca().legend()
leg.remove()
plt.ylim([1,5.0])
plt.show()

Tags: nameimporttrueas绘制pltseabornhue
1条回答
网友
1楼 · 发布于 2024-10-02 10:28:30

答案很简单,不,如果不诱使seaborn认为存在一个hue礼物,那么seaborn是不可能的。在

This answer演示了如何在matplotlib中实现这一点,原则上同样可以应用于seaborn小提琴情节,即切断小提琴路径的一半。在

相关问题 更多 >

    热门问题