将自定义标签添加到ggplot geom_contour

Luk*_*kas 2 r ggplot2

我正在尝试用这些断点处的指定断点和标签制作等高线图.我尝试添加使用无论是在休息的标签direct.label或者geom_dl,但没有成功.

dat <- melt(volcano)
brks <- c(100, 120, 140, 160)
g <- ggplot(dat, aes(x = Var1, y = Var2, z = value)) +
  geom_contour(colour = 'black', breaks = brks)
g
Run Code Online (Sandbox Code Playgroud)

该部分工作正常,但当我尝试添加标签时:

direct.label(g, list("bottom.pieces", colour='black'))
Run Code Online (Sandbox Code Playgroud)

我收到错误: Need colour or fill aesthetic to infer default direct labels.

而且,当我尝试:

g + geom_dl(aes(label = brks),  method = 'bottom.pieces')
Run Code Online (Sandbox Code Playgroud)

我明白了: Error: Aesthetics must be either length 1 or the same as the data (5307): label, x, y, z

有什么建议?

Mab*_*lba 5

我认为我已经采用了一种解决方法来显示标签geom_dl:

library(lattice)
library(directlabels)
dat <- melt(volcano)
brks <- c(100, 120, 140, 160)
g <- ggplot(dat, aes(x = Var1, y = Var2, z = value)) +
     geom_contour(colour='black', breaks = brks)+
     geom_dl(aes(label=..level..), method="bottom.pieces", 
             stat="contour",breaks = brks)
g
Run Code Online (Sandbox Code Playgroud)

只需指出geom_dl你想要标记aes(label=..levels..)break(breaks=brks)中包含的levels (),它就知道要显示的标签.