在 R 中制作每小时数据的箱线图

机器算法验证 r 数据可视化 箱形图
2022-03-19 12:49:14

我每隔一小时测量两个固定位置的气温测量值。下面的代码是一组随机数字,用于表示我的数据格式:

set.seed(1)
RandData <- rnorm(8760*2,sd=10)
Locations <- rep(c('UK','France'),each=8760)

Date = seq(from=as.POSIXct("1991-01-01 00:00"), 
              to=as.POSIXct("1991-12-31 23:00"), length=8760)

Final <- data.frame(Loc = Locations,
                    Doy = as.numeric(format(Date,format = "%j")),
                    Tod = as.numeric(format(Date,format = "%H")),
                    Temp = RandData)

我可以使用以下代码将温度变化绘制为一年中的一天的函数:

require(lattice)
xyplot(Temp~Doy | Loc, data = Final, col = "black", type = "l")

这将显示数据的年度模式。但是,我想做的是制作一天中不同时间温度变化的箱线图。所以,对于上面的例子,我想要两个数字,每个国家一个,每个数字应该由显示 00:00、01:00... 的温度变化的箱形图组成,以此类推,参考 Final$Tod . 如何做到这一点?

非常感谢您的帮助。

2个回答

像这样的东西?

library(ggplot2)
ggplot(Final, aes(x = as.factor(Tod), y = Temp)) + geom_boxplot()  + facet_wrap(~ Loc)

在此处输入图像描述

library(robustbase)
adjbox(Final$Temp[Final$Loc=="UK"]~Final$Tod[Final$Loc=="UK"])

箱线图是一种可视化工具,所以我会给你一个视觉建议。您拥有的本质上是功能数据,因此您希望(出于可视化原因)使用承认这一点的箱线图工具。尝试fda 包中的功能箱线图功能。