代码之家  ›  专栏  ›  技术社区  ›  Hrvoje

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

  •  -1
  • Hrvoje  · 技术社区  · 6 年前

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

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

    但有太多的汽车模型,所以我希望只可视化数据集中出现频率最高的n个汽车模型。 还有什么lambda计算或类似的东西,我可以申请 price model 不创建单独的数据帧?

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

    1 回复  |  直到 6 年前
        1
  •  2
  •   Sander van den Oord    6 年前

    您可以使用 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()
    
        2
  •  0
  •   mbh86 hexerei software    5 年前

    根据 official documentation

    秩序 :

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

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