【问题标题】:Creating category plots for a diverse dataset in Python [duplicate]在 Python 中为不同的数据集创建类别图 [重复]
【发布时间】:2021-09-01 08:24:05
【问题描述】:

我有一个类似的数据集:

    Count          ID      size 
0   25             0001    1     
1   4              0001    2    
2   9              0001    3    
3   13             0001    4     
4   19             0001    5    
...          
8   11             0003    10           
9   10             0003    12              
10  7              0003    14              
11  15             0003    16 

要创建分类图,我使用以下简单代码:

import seaborn as sns
sns.catplot(data=df, x='size', y='Count', col='ID', kind='bar')

这给出了一个完美的结果。然而,目前我正在探索更大、更多样化数据集的可能性。 catplot 函数的问题在于它将对所有图使用相同的 bin。

新的数据集更像:

    Count          ID      size 
0   25             0001    1     
1   4              0001    2    
2   9              0001    3    
3   13             0001    4     
4   19             0001    5    
...          
8   11             0003    100           
9   10             0003    150              
10  7              0003    200              
11  15             0003    250

因此,对所有 ID 使用相同的 bin 并不重要。我的目标是为每个 ID 创建图,其中 bin 的范围取决于 ID 的最大和最小大小。不幸的是,我无法解决这个问题。

提前感谢您的帮助!

【问题讨论】:

  • 在数据框上尝试groupby,然后按组绘制
  • sns.catplot(data=df, x='size', y='Count', col='ID', kind='bar', sharex=False)

标签: python pandas matplotlib seaborn


【解决方案1】:

尝试使用 for 循环。示例:

import seaborn as sns

for id in df["ID"].unique():
    sns.catplot(data=df.where(df["ID"] == id), x='size', y='Count', col='ID', kind='bar')

我相信还有更多的pythonic方式,所以请稍等一下其他答案。

【讨论】:

    猜你喜欢
    • 2018-06-28
    • 2021-11-05
    • 1970-01-01
    • 2014-03-19
    • 2020-11-11
    • 2020-04-24
    • 2019-02-16
    • 2021-04-18
    • 1970-01-01
    相关资源
    最近更新 更多