R geom_tile ggplotly 忽略宽度和高度

R geom_tile width and height are ignored in ggplotly

geom_tileheightwidth 参数在转换为 ggplotly 时未被考虑在内,如下例所示。有解决办法吗?请注意,我的数据集实际上非常大(+80k 个数据点),所以我希望有一个有效的解决方案,如果有的话。

library(plotly)

X <- data.frame(x = c(1, 2, 1, 2), y = c(1, 1, 2, 2), z = 1:4)
gg <- ggplot(X, aes(x, y)) + geom_tile(aes(fill = z), width = .5, height = .5)

gg
ggplotly(gg)

这似乎是 ggplotly 中的一个错误。最简单的方法是将 geom_tile 转换为 geom_rect。我认为这不会比 geom_tile 效率低,因为您只是在复制 geom_tile 在内部所做的事情。

library(plotly)

X <- data.frame(x = c(1, 2, 1, 2), y = c(1, 1, 2, 2), z = 1:4)

width <- .5
height <- .5

gg <- ggplot(X, aes(x, y)) + 
  geom_rect(aes(xmin = x - width/2, xmax = x + width/2, 
                ymin = y - height/2, ymax = y + height/2, fill = z))

ggplotly(gg)