使用 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 中的数据框中的重复/分组行制作分组箱线图的主要内容,如果未能解决你的问题,请参考以下文章

如何用R中的样本组制作特定行的箱线图

使用 seaborn 或 matplotlib 分组箱线图的数据格式

ggplot 分组箱线图中的平均值 (R)

使用 ggplot2 将平均值添加到 R 中的分组箱形图

将分割图(点图)添加到分组箱线图 - Pandas 和 Seaborn

R语言分组箱线图添加显著性标记简单小例子