Python 只有前n个类别的sns条带图

Python 只有前n个类别的sns条带图,python,python-3.x,data-visualization,seaborn,Python,Python 3.x,Data Visualization,Seaborn,我的代码可以很好地绘制sns stripplot: f, ax = plt.subplots(figsize=(15,12)) sns.stripplot(data = cars, x='price', y='model', jitter=.5) plt.show() 但有太多的汽车模型,所以我希望只可视化数据集中出现频率最高的n个汽车模型。 是否有任何lambda计算或类似的东西,我可以应用于价格或模型,而无需创建单独的数据帧 如果有更好的可视化库可以提供帮助,请随意提出。您可以找到最常用的

我的代码可以很好地绘制sns stripplot:

f, ax = plt.subplots(figsize=(15,12))
sns.stripplot(data = cars, x='price', y='model', jitter=.5)
plt.show()
但有太多的汽车模型,所以我希望只可视化数据集中出现频率最高的n个汽车模型。 是否有任何lambda计算或类似的东西,我可以应用于
价格
模型
,而无需创建单独的数据帧


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

您可以找到最常用的列值。在这里,我选择了最常见的两种型号:

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()

顺序,色调顺序:字符串列表,可选。以绘制中的分类级别,否则将根据数据推断级别 对象

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

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

我知道我可以这样做,但我在想,是否有一种方法我可以传递给sns,它可以过滤数据帧并在不创建单独数据帧的情况下处理它。