如何使用多个类别绘制箱线图

3

我有一个数据框,看起来像这样:

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)

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

1个回答

0

由于您的日期包括时间,因此需要删除时间,以便您拥有离散的日期。然后,编写一个R公式(y ~ x * x2 ...符号),描述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') 

似乎可以工作。谢谢! :) 现在只是在考虑如何为日期和交通模式添加一堆标签,因为我有一个比这个小示例更大的数据框。 - Dalia G.
使用ggplot。你知道如何在图中删除NAs吗?嗯,它会显示一个NA的部分。 - Dalia G.
嗯,有些变化,但该部分仍然存在。 - Dalia G.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接