oep*_*pix 3 r contour tile ggplot2
我正在尝试使用ggplot2包创建一个等温线图,您可以在注释中找到显示所需结果的示例.我在网上看过很多例子,例如:
data <- read.table("http://s000.tinyupload.com/download.php?file_id=01371475872599670620&t=0137147587259967062053048", header=TRUE)
ggplot(data) + aes(x=x, y=y, z=z, fill=z) + stat_contour() + geom_tile()
Run Code Online (Sandbox Code Playgroud)
当我对我的数据使用完全相同的代码时,我得到以下结果:
图片:
正如您在上图中所看到的,数据似乎与stat_contour()部分一起使用,看起来很完美,但它不适用于geom_tile(),它似乎只创建了这三条水平线.数据似乎正确读取,因为轮廓线有效,图例也包含正确的值.我不知道为什么这些文件不会被填满.
我非常感谢您提供的任何帮助,谢谢!
由于网格不规则,可能会发生这种情况.首先尝试插值,然后执行绘图:
library(ggplot2)
library(akima)
library(viridis)
library(ggthemes)
dat <- read.table("http://s000.tinyupload.com/download.php?file_id=01371475872599670620&t=0137147587259967062053048", header=TRUE)
di <- interp(dat$x, dat$y, dat$z,
xo=seq(min(dat$x), max(dat$x), length=200),
yo=seq(min(dat$y), max(dat$y), length=200))
dat_interp <- data.frame(expand.grid(x=di$x, y=di$y), z=c(di$z))
ggplot(dat_interp) +
aes(x=x, y=y, z=z, fill=z) +
geom_tile() +
stat_contour(color="white", size=0.25) +
scale_fill_viridis() +
theme_tufte(base_family="Helvetica")
Run Code Online (Sandbox Code Playgroud)