绘图字符

问题描述 投票:1回答:1

我真的很陌生(第三周)。我正在尝试绘制一个由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

r ggplot2 plot location
1个回答
0
投票

根据您的数据,我认为将其呈现为“热图”的一种好方法。首先,我们可以将数据转换为更长的格式(我使用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")

enter image description here

看起来像您所期望的吗?

© www.soinside.com 2019 - 2024. All rights reserved.