sns条带图,只包含前n个类别



我有一段代码可以很好地绘制sns条带图:

f, ax = plt.subplots(figsize=(15,12))
sns.stripplot(data = cars, x='price', y='model', jitter=.5)
plt.show()

但有太多的汽车模型,所以我希望只可视化数据集中最频繁出现的前n个汽车模型。还有什么lambda计算或类似的东西可以应用于pricemodel而不创建单独的数据帧吗?

如果有更好的可视化库可以帮助,请随意提出。

您可以使用value_counts((找到列中出现次数最多的值。在这里,我选择了最常见的两种型号:

most_occurring_values = cars['model'].value_counts().head(2).index

然后,您可以过滤原始数据帧,只选择包含频率最高的模型的行:

cars_subset = cars[cars['model'].isin(most_occurring_values)]

最后,使用该子集绘制数据:

f, ax = plt.subplots(figsize=(15,12))
sns.stripplot(data = cars_subset, x='price', y='model', jitter=.5)
plt.show()

根据官方文件

order,hue_order字符串列表,可选。在中绘制分类级别的顺序,否则根据数据推断级别对象

要选择前三种型号,您可以执行以下操作:

sns.stripplot(data = cars, x='price', y='model', jitter=.5, order=cars.model.value_counts().iloc[:3].index)

相关内容

  • 没有找到相关文章

最新更新