[英]Boxplot of CSV data with ggplot2
我有一个每天六个月(2016年8月-2017年1月)每天取重量的CSV文件。 我想为每个月绘制一个箱线图,基本上可以绘制每个月数据的summary()。 我想使用ggplot2,因为它看起来更漂亮。 我到处寻找解决方案,并提出了许多解决方案,但似乎没有解决任何问题。
数据的标题和摘要:
> wts <- read.csv('weights.csv', header=T, sep=',')
> head(wts)
August.2016 September.2016 October.2016 November.2016 December.2016 January.2016
1 254.2 250.0 248.2 245.8 245.6 244.4
2 252.6 249.2 248.6 246.4 246.0 245.0
3 251.8 250.6 249.2 248.0 246.4 244.3
4 253.2 252.4 249.8 247.5 246.0 243.6
5 252.2 250.6 248.8 247.0 246.0 242.6
6 254.0 251.0 247.8 247.6 246.0 242.0
> summary(wts)
August.2016 September.2016 October.2016 November.2016 December.2016 January.2016
Min. :249.6 Min. :245.6 Min. :245.4 Min. :244.2 Min. :243.4 Min. :241.6
1st Qu.:252.2 1st Qu.:248.3 1st Qu.:246.7 1st Qu.:246.2 1st Qu.:244.8 1st Qu.:242.9
Median :252.8 Median :249.2 Median :247.8 Median :246.6 Median :245.6 Median :243.6
Mean :252.7 Mean :249.1 Mean :247.6 Mean :246.7 Mean :245.3 Mean :243.5
3rd Qu.:253.6 3rd Qu.:250.0 3rd Qu.:248.2 3rd Qu.:247.2 3rd Qu.:246.0 3rd Qu.:244.3
Max. :255.2 Max. :252.4 Max. :249.8 Max. :248.6 Max. :247.0 Max. :245.0
NA's :1 NA's :1 NA's :1
从我收集的数据来看,我需要以ggplot喜欢的方式重塑数据,但是我不确定该怎么做。 如果可能的话,我也想在箱形图上突出显示均值(带有实际数字)。 我可以知道怎么做吗?
谢谢
为了保持相同的范例,可以使用tidyr
包中的tidyr
gather()
将数据重塑为长格式,然后将结果插入ggplot()
。 要添加描述均值的文本,可以将stat_summary()
与"text"
geom一起使用,并将mean
函数应用于value
变量。
library(tidyr)
library(ggplot2)
ggplot(gather(wts, factor_key = TRUE),
aes(key, value)) +
geom_boxplot() +
stat_summary(aes(label = ..y..),
fun.y = function(x) round(mean(x), 2),
geom = "text",
size = 3,
color = "red")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.