首页 > 解决方案 > Seaborn Catplot Violin 以负整数绘制年龄分布

问题描述

我正在尝试绘制有关幸存者、性别、阶级变量的年龄分布。

from matplotlib import pyplot
import seaborn

titanic= seaborn.load_dataset("titanic")

g = seaborn.catplot(data = titanic, x = 'survived', y = 'age',
                    hue = 'sex', split = True,
                    row='class', kind ='violin', legend = False)

结果如下图所示。

如果您看到我画了一个圆圈的第一个子图的年龄分布,您会看到它绘制在没有意义的负数上。

我怎么解决这个问题?年龄数据不包含任何负数。

在此处输入图像描述

标签: pythonmatplotlibseabornviolin-plotcatplot

解决方案


您圈出的特定小提琴图仅基于 3 个值:[2、25、50]。小提琴图绘制了使用这 3 个点获得的核密度估计。在您的情况下,KDE 有很大一部分低于零。

cut = 0如果需要,您可以通过添加参数(参见violinplot)将小提琴图的绘图范围限制为观察数据的范围。


推荐阅读