Annotation_raster不适用于scale_x_reverse

时间:2012-03-21 10:42:56

标签: r ggplot2

我正在创建以光栅文件为背景的地理地图。为了更好地显示,我想要将它们中的一些向侧面翻转(即,使得北方指向左侧,而不是向上)。这意味着我必须反转x轴(除了翻转x和y),否则数据显示错误(镜像)。

它适用于geom_tile,但当然这非常慢,特别是在做facet时。 所以,我想使用annotation_raster。这也很好,但只有在我反转x轴之前。然后它不再显示。

此外,我怀疑这可能是相关的:swiching xmin和xmax值似乎没有任何影响。始终显示xmin = min(xmin,xmax)和xmax = max(xmin,xmax)。

library(ggplot2) ## v0.9.0

## works
qplot(mpg, wt, data = mtcars) +   annotation_raster(rainbow, xmin=15, xmax=20, ymin=3, ymax=4)

## swiching xmin and xmax, doesn't affect plotting
qplot(mpg, wt, data = mtcars) +   annotation_raster(rainbow, xmin=20, xmax=15, ymin=3, ymax=4)

## doesn't work
qplot(mpg, wt, data = mtcars) +   annotation_raster(rainbow, xmin=15, xmax=20, ymin=3, ymax=4) + scale_x_reverse()

我很感激任何想法。

干杯

1 个答案:

答案 0 :(得分:2)

Kohske在ggplot帮助列表上发布了一个解决方法,它通过使用annotate_raster的负坐标解决了这个问题:

qplot(mpg, wt, data = mtcars) + annotation_raster(rainbow, xmin=-15,
      xmax=-20, ymin=3, ymax=4) + scale_x_reverse()