R语言ggplot2:如何在箱线图上添加中位数和置信区间?
R语言ggplot2:如何在箱线图上添加中位数和置信区间?
在使用R语言进行数据可视化时,箱线图是一种常用的展示数据分布的方法。为了更清晰地展示数据的中心趋势和离散程度,我们可以在箱线图上添加中位数和置信区间的标签。
以下代码展示了如何使用ggplot2包创建一个箱线图,并在图上添加中位数和95%置信区间的标签:Rlibrary(ggplot2)
设定颜色和字体colors <- c('#999999', '#E69F00')font <- 'Arial'
生成箱线图p <- ggplot(comparison_hp, aes(x = group, y = ISQ_new)) + geom_boxplot(width = 0.5, fill = colors[1], color = colors[2], outlier.shape = NA) + theme_bw(base_family = font) + labs(x = 'Group', y = 'ISQ Score') + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(), axis.line = element_line(color = 'black'), axis.text = element_text(size = 12, color = colors[2]), axis.title = element_text(size = 14, color = colors[2], face = 'bold'), legend.title = element_blank(), legend.text = element_text(size = 12, color = colors[2]), legend.position = 'none', plot.title = element_text(size = 16, color = colors[2], face = 'bold'))
添加中位数和置信区间标记p <- p + geom_text(aes(label = paste0('Median: ', round(median(ISQ_new[group == 'Healthy']), 2))), x = 1, y = 0.9, color = colors[2], hjust = 0, size = 4, fontface = 'bold') + geom_text(aes(label = paste0('Median: ', round(median(ISQ_new[group == 'Patient']), 2))), x = 2, y = 0.9, color = colors[2], hjust = 1, size = 4, fontface = 'bold') + geom_text(aes(label = paste0('95% CI: [', round(quantile(ISQ_new[group == 'Healthy'], probs = 0.025), 2), ', ', round(quantile(ISQ_new[group == 'Healthy'], probs = 0.975), 2), ']'))), x = 1, y = 0.85, color = colors[2], hjust = 0, size = 4) + geom_text(aes(label = paste0('95% CI: [', round(quantile(ISQ_new[group == 'Patient'], probs = 0.025), 2), ', ', round(quantile(ISQ_new[group == 'Patient'], probs = 0.975), 2), ']'))), x = 2, y = 0.85, color = colors[2], hjust = 1, size = 4)
添加图形标题p <- p + ggtitle('Comparison of ISQ Score between Healthy and Patient Groups') + theme(plot.title = element_text(hjust = 0.5))
显示图形print(p)
代码解释:
- 加载ggplot2包:
library(ggplot2)2. 设定颜色和字体: 使用colors和font变量定义颜色和字体,方便后续使用。3. 创建箱线图: 使用ggplot()函数创建基础图形,geom_boxplot()函数绘制箱线图。4. 设置主题和标签: 使用theme_bw()设置黑白主题,labs()添加坐标轴标签,theme()自定义主题元素。5. 添加中位数和置信区间标签: 使用geom_text()函数添加文本标签,paste0()函数拼接字符串,median()函数计算中位数,quantile()函数计算分位数。6. 添加图形标题: 使用ggtitle()函数添加图形标题。7. 显示图形: 使用print()函数显示图形。
通过以上代码,我们可以在箱线图上清晰地展示中位数和95%置信区间,使数据可视化结果更加直观易懂。
原文地址: https://www.cveoy.top/t/topic/cgiy 著作权归作者所有。请勿转载和采集!