我有一个像这样的data.frame:

date <- as.POSIXct(c("2015-08-14 08:04:50", "2015-08-14 08:06:50", "2015-08-14 08:015:50", "2015-08-15 08:17:50", "2015-08-15 08:23:50")
transport <- c("bus", "bus", "train", "train", "train")
no2 <- c(74, 78, 100, 90, 85)
df <- data.frame(date, transport, no2, stringsAsFactors = FALSE))

我想制作一个箱型图,该图将根据运输方式并在不同的日子使用。所以基本上我希望它可以分为两类:按天和按运输方式。据我所知,在箱线图函数中定义了x和y,因此可以根据x绘制y。

有人知道如何使用两个类别吗?

关于箱线图的另一个类似问题:
我有这样的数据:
date <- as.POSIXct(c("2015-08-14 08:04:50", "2015-08-14 08:06:50", "2015-08-14 08:015:50", "2015-08-15 08:17:50", "2015-08-15 08:23:50"))
no2_site1 <- c(74, 78, 100, 90, 85)
no2_site2 <- c(84, 88, 110, 100, 95)
df <- data.frame(date, no2_site1, no2_site2, stringsAsFactors = FALSE)

我的目的是制作一个箱线图,以显示不同地点的两个站点中的NO2浓度(每天2箱)。

最佳答案

由于您的日期包括时间,因此需要删除时间,以便您拥有不连续的日子。然后,编写一个描述y ~ x * x2 ...值的R公式(no2表示法)取决于datetransport之间的相互作用。

df$date = strftime(df$date, "%Y-%m-%d")
df$date = factor(df$date)
boxplot(no2 ~ date * transport, data = df, col=(c("gold","darkgreen")))

这是ggplot的代码
library(ggplot2)
ggplot(df, aes(x=date, y=no2)) + geom_boxplot(aes(fill=date))+ facet_grid(~ transport, scales='free_x')

关于r - R:如何对多个类别进行箱线绘图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32630454/

10-13 00:34