Pandas Seaborn条形图在打印时会混淆列值

Pandas Seaborn条形图在打印时会混淆列值,pandas,seaborn,data-visualization,bar-chart,Pandas,Seaborn,Data Visualization,Bar Chart,好吧,这让我抓狂,我不知道这是怎么回事,这应该是一个非常简单的海生条形图。我有以下数据帧: Users Count App Name 0 224244 Facebook 1 202253 Messenger – Text and Video Chat for Free 2 164995 Google Play Games 3 151713 Instagram 4 132949 Google Pay 5 126474 Netflix 6 122877 Pi

好吧,这让我抓狂,我不知道这是怎么回事,这应该是一个非常简单的海生条形图。我有以下数据帧:

Users Count App Name
0   224244  Facebook
1   202253  Messenger – Text and Video Chat for Free
2   164995  Google Play Games
3   151713  Instagram
4   132949  Google Pay
5   126474  Netflix
6   122877  Pinterest
7   110071  Amazon Shopping
8   108515  Samsung Pay
9   108204  Pandora Music
10  105865  Snapchat
11  103858  Pinterest
12  101676  Uber
13  94741   Yelp: Food Shopping Services Nearby
14  83623   Wish - Shopping Made Fun
15  83327   Spotify Music
16  81678   WhatsApp Messenger
17  76064   Amazon Prime Video
18  68823   eBay: Shop Deals - Home Fashion & Electronics
19  64677   Amazon Shopping
20  59513   Walmart
我所做的就是用它画出一个海生的酒吧图:

plt.figure(figsize=(8,6))
sns.barplot(x='Users Count', y='App Name', data=pop_apps_df, alpha=0.8, ci=None)
plt.title('20 Most Popular Apps')
plt.ylabel('App Name', fontsize=12)
plt.xlabel('Number of Unique MAIDs', fontsize=12)
plt.show()
然而,该图在某种程度上没有从“用户计数”中提取与“应用程序名称”列上的行相等的正确值(注意亚马逊购物栏)。到底是什么导致了这一切?我该怎么办??我到处找,找不到答案或解决办法


亚马逊购物
在您的数据框中以不同的值出现两次(第7行和第19行)。删除重复的值,一切都应该正常


此外,您可能需要增加绘图高度以显示所有行。

亚马逊购物
在数据框中以不同的值出现两次(第7行和第19行)。删除重复的值,一切都应该正常

此外,您可能希望增加打印高度以显示所有行。

每个文档:

条形图表示对数值变量的中心趋势的估计

同样重要的是要记住,条形图只显示平均值(或其他估计值)

因为“亚马逊购物”出现了两次,所以低值和高值的平均值反映在条形图中。要解决,考虑两个解决方案:

  • 使用聚合/统计函数(如
    numpy.sum
    )调整默认的
    estimator
    参数:

    sns.barplot(x='Users Count', y='App Name', data=pop_apps_df, 
                estimator=np.sum, alpha=0.8, ci=None)
    
  • 绘图前进行聚合:

    pop_apps_agg = pop_apps_df.groupby(['App Name'], as_index=False)["Users Count"].sum()
    
    sns.barplot(x='Users Count', y='App Name', data=pop_apps_agg, alpha=0.8, ci=None)
    
  • 也可以考虑在代码< > PLT.Sub()/代码>之前添加<代码> PLT.ClultTyLayOutAuthor(<代码> >)。因此,y轴标签越适合于绘图。

    每个文档:

    条形图表示对数值变量的中心趋势的估计

    同样重要的是要记住,条形图只显示平均值(或其他估计值)

    因为“亚马逊购物”出现了两次,所以低值和高值的平均值反映在条形图中。要解决,考虑两个解决方案:

  • 使用聚合/统计函数(如
    numpy.sum
    )调整默认的
    estimator
    参数:

    sns.barplot(x='Users Count', y='App Name', data=pop_apps_df, 
                estimator=np.sum, alpha=0.8, ci=None)
    
  • 绘图前进行聚合:

    pop_apps_agg = pop_apps_df.groupby(['App Name'], as_index=False)["Users Count"].sum()
    
    sns.barplot(x='Users Count', y='App Name', data=pop_apps_agg, alpha=0.8, ci=None)
    
  • 也可以考虑在代码< > PLT.Sub()/代码>之前添加<代码> PLT.ClultTyLayOutAuthor(<代码> >)。因此,y轴标签越适合于绘图。