R 如何使用ggplot制作与密度图外观相同的水平图

R 如何使用ggplot制作与密度图外观相同的水平图,r,ggplot2,contour,density-plot,R,Ggplot2,Contour,Density Plot,我喜欢ggplot视图的密度图(如下所示)。我想知道如何使用一组插入的数据(数据:)生成类似的图形。换句话说,我想要一个具有离散轮廓和着色颜色的图 我将感谢你的帮助 例如: 使用lattice软件包可以制作相同的绘图: library(ggplot2) library(lattice) library(latticeExtra) data=read.table("data.txt",header = T,sep = ";") #discrete field levelplot(var~lon

我喜欢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()


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

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

对于lattice,必须为
levelplot
函数和
colorkey
参数列表以及
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))
     )
   )

#dat请制作一个简单的可复制示例,显示您当前拥有的“水平图”,包括问题中的一些示例数据。这将使它更有可能得到有用的答案。我将在标准帖子中提供更多细节。对不起,我的英语不好。