gpt4 book ai didi

r - 从ggplot2中的不同数据帧过度绘图

转载 作者:行者123 更新时间:2023-12-04 03:13:07 24 4
gpt4 key购买 nike

我的目标是绘制一条河流的路径,并用点表示河流附近的重要地点。

我有两个数据框,分别给出了河流和地点的坐标:

river<-data.frame(
long=c(-2.816452494909265,-2.845487331898639,-2.883036393822358),
lat=c(56.38229290416972,56.36346886284386,56.36577994637793))

samploc<-data.frame(
site=c("Site1","Site2","Site3"),
long=c(-2.826213585663894,-2.816519300644918,-2.868437228090127),
lat=c(56.3649482229089,56.38166100310631,56.36716019476281))

使用一个旧派的R绘图,并使用par(new = T)并保存xlim和ylim,我会得到这样的结果:

old school plot http://users.utu.fi/susjoh/Riverplot.png

但我想使用ggplot2做到这一点。可以轻松地单独调用河流和点:
ggplot(river,aes(x=long,y=lat)) + geom_path()
ggplot(samploc,aes(x=long,y=lat,lab=site)) + geom_point() + geom_text(vjust=2)

我试图通过从前两个创建以下数据框来作弊:
> rivsamp
river.long river.lat samp.site samp.long samp.lat
1 -2.816452 56.38229 NA NA NA
2 -2.845487 56.36347 NA NA NA
3 -2.883036 56.36578 NA NA NA
4 NA NA Site1 -2.826214 56.36495
5 NA NA Site2 -2.816519 56.38166
6 NA NA Site3 -2.868437 56.36716

ggplot(rivsamp) +
geom_path(aes(x=river.long,y=river.lat)) +
geom_point(aes(x=samp.long,y=samp.lat)) +
geom_text(aes(x=samp.long,y=samp.lat,lab=samp.site),vjust=2)

ggplot2 plot http://users.utu.fi/susjoh/riverggplot.png

它可以工作,但是创建此新数据帧并不像旧的par(new = T)方法那样简单。

有没有一种简单的方法可以使用ggplot2对各个数据帧进行过度绘制?

谢谢!

最佳答案

这是一种方法

ggplot(samploc, aes(x = long, y = lat)) + 
geom_point() +
geom_text(aes(label = site), vjust = 2) +
geom_line(data = river, aes(y = lat))

关于r - 从ggplot2中的不同数据帧过度绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7516017/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com