在R中格式化地图轴标签以显示纬度和经度

时间:2014-04-30 18:37:36

标签: r map latitude-longitude axes axis-labels

我试图在R中绘制一张地图,轴上有经度和纬度标签 我使用以下代码绘制地图:

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 ......"其中"度" part是度数符号(即上标o)。下面的脚本可以做到这一点,但是我希望它能说'#34; 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)))

提前致谢。

2 个答案:

答案 0 :(得分:0)

这很有效,但我确信它可以以更优雅的方式完成。

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

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

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

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

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

答案 1 :(得分:0)

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

    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"))))