看起来ggplot2::geom_polygon
以不同的方式运行Windows与OSX。这是一个例子:
library("ggplot2")
df <- data.frame(x = c(1, 4, 4, 1, 1, 2, 3, 3, 2, 2, 1),
y = c(2,2, 5, 5, 2, 3, 3, 4, 4, 3, 2),
hole = c(FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, TRUE, FALSE))
ggplot(data=df) + geom_polygon(mapping=aes(x, y), fill="green")
以下是我在Windows上为我生成的内容:
...在我的Mac上:
在上面的例子中,应该预期的行为可能有点令人困惑!沿负方向追踪洞是更明智的,并获得一致的行为(两者都像上面的Windows输出):
index <- 1:nrow(df)
index[df$hole] <- rev(index[df$hole])
dfReversed <- df[index,]
ggplot(data=dfReversed) + geom_polygon(mapping=aes(x, y), fill="green")
我正在使用相同版本的R和Ggplot2:
Windows 8 OS X 10.9.1 R v3.0.2 Ggplot2 v0.9.3.1。
造成这种差异的原因是什么?或者更一般地说,geom_polyon
如何决定在这些令人困惑的例子中绘制什么?