r - 将两个 ggplot 散点图与横断面作为原点相结合
问题描述
我在州立公园担任林业技术人员,我的老板有兴趣寻找新的方法来绘制我们的林业地块。我们在 0.6 英亩的正方形(所有地块边界为 49.2m)中收集了树木数据。我们从两个水平样带中收集了树木位置数据,一个在 10.1m,一个在 39.1m,都从南到北。
我们以这种方式收集数据是因为很难从一个样带中看到图中的所有树木。所以,我有来自样带 1 的一些树位置的 x,y 数据,一些来自样带 2,还有一些来自两个样带以比较准确性。
X 是沿样带的距离,Y 是到树的距离,都成直角。如果树在样带的西边,它的 Y 值为负,如果它在东边,它的 Y 值是正的。你明白为什么我不能将数据合并到一个数据集中吗?
我可以按照我想要的方式绘制两个图(在脚本下方),但我需要将它们放在同一个图上,这样我就可以比较从样带 1 和样带 2 测量的那些树。我不知道如何要做到这一点,因为横断面需要是两个不同的起源。
如何覆盖ggplot
显示横断面的两个散点图?任何帮助是极大的赞赏。
我已经阅读了所有相关的帖子,但没有找到任何有效的方法。有一篇使用 geom_step 的有趣帖子,但我无法用我当前的代码弄清楚。我需要保持 aes() 线原样(我认为),以便这些点显示为树 DBH 的表示。
p1<-ggplot(trans1, aes(x=Transect.1.Distance.from,
y=Transect.1.Distance.Along)) +
geom_point(colour="red",aes(size=DBHcm))
p2<-p1 + geom_hline(yintercept = 0)
p2
p3<-ggplot(trans2, aes(x=Transect.2.Distance.from,
y=Transect.2.Distance.along)) +
geom_point(colour="black",aes(size=DBHcm))
p4<-p3+geom_hline(yintercept = 0)
p4
我试着做一些愚蠢的事情,比如 ggplot(p2+p4) 但错误信息说
“错误:不知道如何将 p4 添加到绘图中”
以下是样带 1 和 2 中我的数据集中的一些示例数据:
Tree ID Species DBHcm Cut Transect1.Distance.from Transect1.Distance.Along
336 PSMEM 34.60 No 9.4 -6.3
408 SESE3 50.70 Yes 3.5 -2.7
337 PSMEM 36.30 Yes 9.6 -3.2
409 SESE3 48.10 Yes 5.4 3.6
338 PSMEM 19.00 Yes 13.7 -4.8
410 PSMEM 30.90 No 10 1.7
339 PSMEM 28.50 Yes 13.6 -7.8
Tree ID Species DBHcm Cut Transect2.Distance.from Transect2.Distance.along
446 PSMEM 24.50 Yes 44.3 -10.1
379 SESE3 23.10 No 50 -11
447 PSMEM 32.30 No 40.2 -8.8
380 PSMEM 22.10 No 51.5 -10.4
381 PSMEM 29.20 No 48.8 -7.3
448 PSMEM 42.80 No 39.3 -4.8
382 PSMEM 18.70 No 46.6 -6.4
449 PSMEM 24.00 No 43 -5.8
383 SESE3 12.60 No 48.1 -7.3
385 SESE3 28.00 No 51.8 -7.3
这是我运行建议的代码时得到的图, 在此处输入图像描述
解决方案
试试这个开始。如果确实有效,请提供一些数据进行测试。
p <- ggplot() +
geom_point(data = trans1, aes(x=Transect.1.Distance.from,
y=Transect.1.Distance.Along, size=DBHcm), colour="red") +
geom_hline(yintercept = 0) +
geom_point(data = trans2, aes(x=Transect.2.Distance.from,
y=Transect.2.Distance.along, size=DBHcm), color = "black")
p
使用您提供的数据:
library(tidyverse)
trans1 <- tribble(
~TreeID, ~Species, ~DBHcm, ~Cut, ~Transect1.Distance.from, ~Transect1.Distance.Along,
336, "PSMEM", 34.60, "No", 9.4, -6.3,
408, "SESE3", 50.70, "Yes", 3.5, -2.7,
337, "PSMEM", 36.30, "Yes", 9.6, -3.2,
409, "SESE3", 48.10, "Yes", 5.4, 3.6,
338, "PSMEM", 19.00, "Yes", 13.7, -4.8,
410, "PSMEM", 30.90, "No", 10, 1.7,
339, "PSMEM", 28.50, "Yes", 13.6, -7.8
)
trans2 <- tribble(
~TreeID, ~Species, ~DBHcm, ~Cut, ~Transect2.Distance.from, ~Transect2.Distance.Along,
446, "PSMEM", 24.50, "Yes", 44.3, -10.1,
379, "SESE3", 23.10, "No", 50, -11,
447, "PSMEM", 32.30, "No", 40.2, -8.8,
380, "PSMEM", 22.10, "No", 51.5, -10.4,
381, "PSMEM", 29.20, "No", 48.8, -7.3,
448, "PSMEM", 42.80, "No", 39.3, -4.8,
382, "PSMEM", 18.70, "No", 46.6, -6.4,
449, "PSMEM", 24.00, "No", 43, -5.8,
383, "SESE3", 12.60, "No", 48.1, -7.3,
385, "SESE3", 28.00, "No", 51.8, -7.3
)
和相同的代码:
p <- ggplot() +
geom_point(data = trans1, aes(x=Transect1.Distance.from,
y=Transect1.Distance.Along, size=DBHcm), colour="red") +
geom_hline(yintercept = 0) +
geom_point(data = trans2, aes(x=Transect2.Distance.from,
y=Transect2.Distance.Along, size=DBHcm), color = "black")
p
推荐阅读
- python - 在 Heroku 上部署 Django 项目时没有名为“config.settings”的模块
- c++ - 延长 Boost 日志核心的生命周期
- python - Discord.py 在消息中列出用户时的反应
- html - 为输入元素创建自定义模式
- python - 尝试使用 VS Code 使用 Python3 打开 CSV 文件时出现意外结果
- excel - 在 sub 中使用函数时出现类型不匹配错误
- python - 使用 DataFrame 引用产品密钥中的值并将它们加在一起
- python - 使用beautifulsoup抓取网站后如何访问属性
- node.js - 使用 Jenkins 替换配置文件中的密码
- python - 我正在使用 python 页面,我创建了两个顶层,一旦按下正确的登录,不知道如何在它们之间切换