我有一个包含“溶解氧(时间序列)”的数据框,如下所示:
head(DO):
Month Season site1 site2 site3 site4 site5 site6
1 Dec Winter NA 3.0 0.00 5.60 4.1 3.8
2 Jan Winter 0.0 0.0 NA 5.70 4.0 6.0
3 Feb Winter 0.0 NA 0.00 3.30 1.6 5.5
4 Mar Spring 0.2 1.9 0.00 6.20 NA 8.5
5 Apr Spring 0.0 0.5 3.95 5.00 NA 7.7
6 May Spring 0.0 1.5 1.18 6.50 NA 5.9
我想使用ggplot绘制框图,以便查看不同网站的变化。请注意,月份和季节被视为因子。 我用过:
library(reshape2)
DO.m <- melt(DO, id=c("Month", "Season"))
当我运行上面的代码时,我得到了如下警告:
Warning message:
attributes are not identical across measure variables; they will be dropped.
但是我忽略了警告并尝试使用以下方式绘制数据(如论坛所示)
ggplot(subset(DO.m, !is.na(value)), aes(x=variable,y=value, col=variable)) +
geom_boxplot(outlier.colour = "red", outlier.size = 1) +
labs(title = "DO", x = "Station", y = "DO(mg/l)", color = "Station") +
geom_jitter(alpha= 0.4, shape=16, position=position_jitter(0.2))
上面的代码绘制了非常抽象的图像,这不是一个盒子图。 那么如何从融化数据中删除所有站点的NA?你的帮助会很高兴
答案 0 :(得分:0)
尝试传递na.rm = TRUE以融化:
library(reshape2)
DO.m <- melt(DO, id=c("Month", "Season"), na.rm = TRUE)
就删除属性以及是否可能导致任何问题而言,数据子集的输入将会有所帮助。但无论如何,让熔化拉出NA值可能是最好的地方。
我添加了一个问题,您是否已经检查了ggplot2的不同图层,以便一次查看它们产生的图层。例如,当你只使用ggplot图层+ geom_boxplot图层而没有geom_jitter
时,你得到的东西吗?