python Seaborn如何打印基于分类变量的彩色条形图

ryoqjall  于 2023-03-21  发布在  Python
关注(0)|答案(1)|浏览(89)

我试图绘制一个水平条形图,显示50个youtube频道与seaborn的视图数。然而,我无法根据dataframe的类别“category”为条形图着色,而不是因为每个其他类别的空间都很薄(但它们都设置为0)
dataframe:Dataframe
也许使用色调不是一条好路,但我还没有找到其他接近我想要的方式。
下面是我的尝试:
下面的代码:

sns.set_theme(style="whitegrid")

f, ax = plt.subplots(figsize=(6, 16))

sns.barplot(x="30d_average_views", y="display_name", data=df_name_to_views[0:20],
            hue='category',hue_order=['musique', 'divertissement', 'humour'],
            )

结果Initial plot这几乎是我想要的,但酒吧是如此之薄,它是非常难以阅读,它会更糟,因为我添加更多的数据和更多的类别

oogrdqng

oogrdqng1#

是否有可能[“categroy”,“display_name”]箱中没有足够的数据?
例如,如果对

df = pd.DataFrame({
    'x': [1, 2, 5, 6, 5, 2, 1, 3],
    'cat': ['a', 'a', 'b', 'b', 'b', 'a', 'a', 'a'],
    'cat2': ['c', 'c', 'c', 'c', 'c', 'd', 'd', 'd'],
})

它将为‘a’显示2个cat2条,而为‘d’仅显示1个。
但是,如果我在['b','d'] bin上再添加1个数据点,'a'和'b'都将有2个条形。
在你的图中,所有的“category”变量都存在,只是“display_name”没有足够的数据来存储所有的变量。
如果运行df.groupby(["display_name", "category"]).count()会发生什么?

相关问题