以下代码效果很好:
p <- ggplot(df,aes(x=x,y=y))
p <- p + geom_tile(aes(fill=z))
p
它描绘了一个很好的热图。此处df
包含x
和y
,使用expand.grid()
创建,z
包含每个x
,y
的值})协调。
此代码另一方面
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
?
答案 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
无法“弯曲”瓷砖以适应非笛卡尔坐标系。