我正在尝试使用ggplot2创建栅格图
我的数据如下:
freqData <- data.frame(cells = rep(1:27, each = 101),
frequency = rep(1/seq(1, 1001, 10), 27),
power = rnorm(101*27))
现在,当我这样做
ggplot(freqData, aes(frequency, cells)) +
geom_raster(aes(fill = power), interpolate = T)
我明白了
有趣的是,放大显示如下:
如果我尝试将频率定义为seq(1, 1001, 10)
(即不使用1 /),那么一切都会按预期进行。
我可能在这里缺少真正明显的东西,有人可以帮忙吗?
答案 0 :(得分:1)
看起来插值仅在局部区域内有效。 垂直线是我们拥有的x点。我认为栅格的主要用途是用于等距的x和y数据点,例如https://ggplot2.tidyverse.org/reference/geom_tile.html中的示例,它在x轴上具有相同的差异。您的情况确实非常极端,因为1 /(1,10,20)...很快收敛到0
dt <- expand.grid(x=c(.01,.05,.15,.5,1),
y=seq(0,5,.1))
dt$power <- rnorm(1:nrow(dt))
ggplot(dt, aes(x, y)) +
geom_raster(aes(fill = power), interpolate = T) +
geom_vline(xintercept = unique(dt$x))
抱歉,除了尝试使用等间距的数据外,无法提供其他解决方案...希望有人有更好的答案:)