R + ggplot:坐标变换和geom_fill

时间:2010-08-18 18:30:08

标签: r ggplot2

以下代码效果很好:

p <- ggplot(df,aes(x=x,y=y))
p <- p + geom_tile(aes(fill=z))
p

它描绘了一个很好的热图。此处df包含xy,使用expand.grid()创建,z包含每个xy的值})协调。

此代码另一方面

p <- ggplot(df,aes(x=x,y=y))
p <- p + coord_map(project="lagrange")
p <- p + geom_tile(aes(fill=z))
p

根本没有绘制任何东西(并且没有用我尝试的所有坐标变换绘制任何东西)。我的理解是coord_map对x和y数据起作用,填充应该在变换后的坐标上绘制。但是,这一定是错误的,因为一旦坐标被映射到新的帧,就不会被绘制。

所以我的问题是:我该如何解决这个问题呢?这可能与我的data.frame df

有关

1 个答案:

答案 0 :(得分:1)

我认为问题在于瓷砖geom如何计算它应该覆盖的区域与新坐标系的交互。我尝试使用此代码重新创建您的问题。

vol.m <- melt(volcano)

#points & cartesian
p <- ggplot(vol.m, aes(X1, X2, color = value)) + geom_point()
#points and map
p + coord_map()

#hex & cartesian
p <- ggplot(vol.m, aes(X1, X2, fill = value)) + geom_hex(stat = "identity")
#hex & map
p + coord_map

我和geom_tile()在那里坐了一会儿尝试同样的事情,但它没有绘制,所以我会接受你的话,它不起作用。注意六边形是如何搞固在地图坐标上的。我想当试图绘制已计算填充区域的瓷砖时,它无法容忍在不同的坐标系上绘制它们。

修改 也就是说,改变坐标系仅仅改变绘制图的“方格纸”。因此,如果您计算了线性回归统计量,然后将坐标更改为对数变换,则绘制的回归线将会弯曲。我猜测ggplot2无法“弯曲”瓷砖以适应非笛卡尔坐标系。