【发布时间】:2016-01-22 23:52:50
【问题描述】:
我有一个ggplot图,例如:
library(ggmap)
ggmap(get_map())
我希望轴标签自动标记为 N-S / W-E:例如,在上述情况下,应该显示 95.4°E 而不是 lon -95.4。
我试图弄乱scales 包并使用scale_x_continuous 和scale_y_continuous 标签和中断选项,但我没有设法使它工作。
拥有scale_y_latitude 和scale_x_longitude 会很棒。
编辑: 感谢@Jaap 的回答,我得到了以下信息:
scale_x_longitude <- function(xmin=-180, xmax=180, step=1, ...) {
ewbrks <- seq(xmin,xmax,step)
ewlbls <- unlist(lapply(ewbrks, function(x) ifelse(x < 0, paste(x, "W"), ifelse(x > 0, paste(x, "E"),x))))
return(scale_x_continuous("Longitude", breaks = ewbrks, labels = ewlbls, expand = c(0, 0), ...))
}
scale_y_latitude <- function(ymin=-90, ymax=90, step=0.5, ...) {
nsbrks <- seq(ymin,ymax,step)
nslbls <- unlist(lapply(nsbrks, function(x) ifelse(x < 0, paste(x, "S"), ifelse(x > 0, paste(x, "N"),x))))
return(scale_y_continuous("Latitude", breaks = nsbrks, labels = nslbls, expand = c(0, 0), ...))
}
效果很好。但由于某种原因,我的 R 似乎不喜欢基点前面的度数符号......它显示为一个简单的点,例如经度 -24 变为 24..W
【问题讨论】:
标签: r ggplot2 latitude-longitude axis-labels ggmap