我真的很陌生(第三周)。我正在尝试绘制一个由10个站点组成的数据集,每个站点最多3个不同土壤深度的16个地块。我的样本结果对2个电子受体DO和NO3分别为高,中和低。我想绘制每个站点/每个土壤深度图的结果。可以单独完成,但是如果有一种方法可以叠加多个绘图,那将非常棒! (不过可能超级先进。)这是我的数据集的样本。
Site Plot DO(1m) DO(3m) DO(5m)
A 1 H H H
A 2 H H M
A 3 H L H
A 4 H H L
A 5 M H H
A 6 L H M
到目前为止,我已经尝试过:
plot(factor(Plot),Site)
plot(Plot~factor(Site),DO 1m
我的想法是像在具有站点的地图上进行绘制并以坐标为坐标。如果可能的话,我希望使用ggplot
。
根据您的数据,我认为将其呈现为“热图”的一种好方法。首先,我们可以将数据转换为更长的格式(我使用pivot_longer
中的tidyr
来做到这一点),然后,我们可以使用geom_tile
中的ggplot
来创建每个DO得分的热图,基于他们的情节。
这种表示法的优点是,因为我们将得分作为填充值,它将自动在ggplot2
中创建一个配色方案。因此,我们不需要将字符格式转换为数字格式。如果要修改颜色图案,可以使用scale_fill_manual
。
总而言之,您可以编写类似的内容:
library(tidyr)
library(ggplot2)
library(dplyr)
df %>% pivot_longer(.,-c(Site, Plot), names_to = "DO",values_to = "Score") %>%
ggplot(aes(x = as.factor(Plot), y = DO, fill = Score))+
geom_tile(color = "black")+
geom_text(aes(label = Score))+
scale_y_discrete(labels = c("1m","2m","5m"))+
labs(x = "Plot", title = "Site A")
看起来像您所期望的吗?