使用 R 中的数据框中的重复/分组行制作分组箱线图
Posted
技术标签:
【中文标题】使用 R 中的数据框中的重复/分组行制作分组箱线图【英文标题】:Make a grouped boxplot with the recurring/grouped rows in a dataframe in R 【发布时间】:2021-12-17 04:23:17 【问题描述】:我想制作这样的分组箱线图
包含三列数据框的元素、ID、issuer_bank 和每笔交易的风险评分。
我的起始数据框如下所示:
ID | issuer_name | risk_score |
---|---|---|
1 | POSTEPAY | 0 |
2 | BANCA SELLA | 10 |
3 | BANCA SELLA | 10 |
4 | BANCA SELLA | 10 |
5 | BANCA SELLA | 33 |
6 | POSTEPAY | 0 |
7 | POSTEPAY | 0 |
8 | POSTEPAY | 10 |
9 | CASSA CENTRALE BANCA - CREDITO | 0 |
10 | BANCA NAZIONALE DEL LAVORO SP | 0 |
11 | BANCO BPM SOCIETA PER AZIONI | 0 |
12 | NEXI PAYMENTS | 10 |
13 | UNICREDIT | 10 |
14 | CREDITO EMILIANO | 0 |
15 | POSTEPAY | 0 |
16 | POSTEPAY | 10 |
17 | POSTEPAY | 0 |
18 | N26 GMBH | 10 |
19 | BANCO BPM SOCIETA PER AZIONI | 25 |
20 | NEXI PAYMENTS | 10 |
21 | POSTEPAY | 10 |
22 | INTESA SANPAOLO | 0 |
23 | CREDIT AGRICOLE CARIPARMA | 10 |
24 | CREDIT AGRICOLE CARIPARMA | 10 |
25 | FINECOBANK | 0 |
26 | UNICREDIT | 44 |
27 | BANCA MONTE DEI PASCHI DI SIENA | 0 |
28 | UNICREDIT | 0 |
29 | FINECOBANK | 25 |
30 | CASSA CENTRALE BANCA - CREDITO | 10 |
31 | NEXI PAYMENTS | 10 |
32 | INTESA SANPAOLO | 25 |
33 | INTESA SANPAOLO | 0 |
34 | POSTEPAY | 10 |
35 | INTESA SANPAOLO | 10 |
36 | INTESA SANPAOLO | 20 |
37 | POSTEPAY | 10 |
38 | INTESA SANPAOLO | 10 |
39 | POSTEPAY | 0 |
40 | POSTEPAY | 0 |
41 | UNICREDIT | 10 |
42 | POSTEPAY | 10 |
43 | BIBANCA | 0 |
44 | POSTEPAY | 0 |
45 | INTESA SANPAOLO | 10 |
46 | FINDOMESTIC BANCA | 10 |
47 | POSTEPAY | 0 |
48 | POSTEPAY | 10 |
我想对 Issuer_name 进行分组,并制作风险评分的箱线图并在单个图表中计算所有内容。
我所做的手动过程如下
df_risk_score_single <- df_risk_score %>% filter(issuer_name == "POSTEPAY")
ggplot(data = df_risk_score_single, aes(x= issuer_name, y=risk_score))+geom_boxplot()
返回单个箱线图
有什么建议吗?
【问题讨论】:
目前尚不清楚您提出的“遵循这条道路”代码是如何缺失的(如果有的话)。你想让它输出不同的东西吗? 我用它作为一个例子,与我的用例没有直接关系,我的主要输出应该是一个带有多个箱线图的图表 如果您在 ggplot 中使用df_risk_score
而不是 df_risk_score_single
,您不会明白吗?如果要显示多个发行人的数据,为什么要将数据限制在一个发行人?
我不认为如果没有其他一些转换可以工作
ggplot 这样很好——如果它适用于轴上的一个离散项目,它应该适用于 1,000(美学格式挑战除外)。
【参考方案1】:
我认为您正在寻找类似以下代码 sn-p 的内容,其结果如下图所示。
我使用了您问题中的示例数据来编辑一个值。当然,您必须根据您的要求并使用您的完整数据来改进此代码。
ggplot(data = df_risk_score, aes(x= issuer_name, y=risk_score, group=issuer_name, fill = issuer_name)) +
geom_boxplot() +
theme(axis.text.x=element_blank(), axis.ticks.x=element_blank()) +
xlab("Issuer") +
ylab("Risk score") +
guides(fill=guide_legend(title="Legend Title: Issuer"))
【讨论】:
谢谢!它就像一个魅力,我只需要它来调整它,但现在我可以理解如何在 aes 部分中使用 group 功能 @Andrea - 不客气。如果某个答案帮助您解决了问题,请随时将答案标记为已接受。以上是关于使用 R 中的数据框中的重复/分组行制作分组箱线图的主要内容,如果未能解决你的问题,请参考以下文章
使用 seaborn 或 matplotlib 分组箱线图的数据格式