gpt4 book ai didi

r - ggplot2 geom_tile : how to have no spacing between lines when plotting non-continuous data

转载 作者:行者123 更新时间:2023-12-02 17:59:57 25 4
gpt4 key购买 nike

我正在尝试使用 ggplot2 为(气象)变量绘制水平图。该变量在时间(我的 x 轴)上连续测量,但在每个时间步长的高度(y 轴)不连续。因此,生成的图显示指定高度(y 坐标)处的数据,但不显示中间位置的数据。这是一个例子:

library(ggplot2)
data <- runif(400, min=0, max=10)
index <- c(1:20)
heights <- c(1,2,3,4,5,7,9,12,15,19,23,28,33,39,45,52,59,67,75,83)
dat <- as.data.frame(cbind(expand.grid(X=index,Y=heights),data))
ggplot(dat, aes(x=dat[,1], y=dat[,2],z=dat[,3])) +geom_tile(aes(fill=dat[,3]))

这会产生以下图: image here

是否有一种简单的方法可以完全填充绘图,即使绘图上部的线条更宽?谢谢!

最佳答案

好的,还有一个解决方案..您可以使用 approx 函数进行插值。虽然也许二维克里金法更适合您的应用???

library(purrr)
dat2<- dat %>%
split(.$X) %>%
map_dfr(~ approx(.$Y, .$data, xout =1:83), .id = "X")

ggplot(dat2, aes(x=as.integer(dat2$X), y=dat2$x, z=dat2$y)) +geom_tile(aes(fill=dat2$y))

这会给你: enter image description here

关于r - ggplot2 geom_tile : how to have no spacing between lines when plotting non-continuous data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48640077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com