使用R格式设置Map轴标签的格式以显示纬度和经度

7eumitmz  于 2023-07-31  发布在  其他
关注(0)|答案(3)|浏览(104)

我想用R语言画一张Map,坐标轴上有经度和纬度的标签。
我使用以下代码来绘制Map:

plot(countries, xlim=c(5,17), ylim=c(42,48),axes=FALSE)
#where xlim is the degrees east/west, and ylim north/south

字符串
在图中,我已经抑制了轴,因为我不想简单地说“5,6,7等......”,我需要他们说“5度E,6度E......”,其中“度”部分是度符号(即“E”)。上标o)。下面的脚本可以做到这一点,但我希望它说“6度E,8度E,等等……”

axis(1, at=c(6,8,10,12,14,16), labels=c(expression(6*degree),expression(8*degree),
expression(10*degree),expression(12*degree),expression(14*degree),
expression(16*degree)))


先谢谢你。

rkue9o1l

rkue9o1l1#

这是可行的,但我很确定可以用更优雅的方式来完成。

plot(c(), xlim=c(5,17), ylim=c(42,48),axes=FALSE)  
degs = seq(6,16,2)

字符串
为每个项目创建一个bquote字符串,用符号替换degree,用degs中的数字替换x

a = sapply(degs,function(x) bquote(.(x)*degree ~ E))


对bquotes列表中的每个项目调用expression

axis(1, at=degs, lab=do.call(expression,a))

5cg8jx4n

5cg8jx4n2#

这绝对比我的解决方案更优雅...

axis(1, at=c(6,8,10,12,14,16), 
    labels=c(expression(paste(6*degree,"E")),expression(paste(8*degree,"E")),
    expression(paste(10*degree,"E")),expression(paste(12*degree,"E")),
    expression(paste(14*degree,"E")),expression(paste(16*degree,"E"))))

字符串

g9icjywg

g9icjywg3#

使用这个:

plot(shp, col="red", border="red", xlim=c(40.01,40.2), 
ylim=c(-1.6,-1.4), xaxs="i", yaxs="i")
plot(pw, add=TRUE, col="blue", border="blue")
sp::degAxis(side = 1, las=1, at = seq(40.01,40.2,0.05))
sp::degAxis(side = 2,las = 1, at=seq(-1.6,1.4,0.1))
box()

字符串

相关问题