1

我喜欢 ggplot 视图(下)的密度图的外观。我想知道如何使用一组插值数据制作类似的图表(数据:https ://www.dropbox.com/s/z8jbz10nnydsqw5/data.txt?dl=0 )。换句话说,我想要一个具有离散轮廓和阴影颜色的图形。

我会感谢你的帮助

带有 ggplot 的密度图

例如:

使用 lattice 包可以制作相同的图:

library(ggplot2)
library(lattice)
library(latticeExtra)

data=read.table("data.txt",header = T,sep = ";")
#discrete field
levelplot(var~long+lat,data = data,contour=T)

带格子的水平图

但是,在 ggplot 中,当我应用密度图时,我得到了这个结果:

ggplot(data,aes(x=long,y=lat))+geom_density2d(aes(fill=var))+theme_bw()

用ggplot绘制错误

我不想做密度图。我只想制作一个看起来像图 1 中的密度图的图。

4

1 回答 1

0

ggplot相信你需要类似的东西ggplot(dat, aes(long, lat, fill = var)) + geom_raster()而不是geom_density2d功能。默认填充函数是连续的,如下图所示。其他人可以将您指向使用离散颜色的功能。

默认ggplot geom_raster

对于 lattice,您必须为levelplot函数colorkey参数列表参数中的参数列表labels提供颜色和断点。colorkey这不是很明显......但这里有一个例子。

# dat <- read.delim(f, sep = ";")
  myCol <- brewer.pal(11, "RdYlBu")[c(6,8:11)]
  breaks <- seq(min(dat$var), max(dat$var), len = 6)
  levelplot(var ~ long + lat, data = dat,
    at = breaks,
    col.regions = myCol,
    colorkey = list(col = myCol, at = breaks,
      labels = list(at = breaks, labels = round(breaks))
     )
   )

具有离散步骤的水平图示例

于 2019-11-05T17:33:18.607 回答