我试图在这些断点处制作带有指定断点和标签的等高线图。我尝试使用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
该部分工作正常,但当我尝试添加标签时:
direct.label(g, list("bottom.pieces", colour='black'))
我收到错误:Need colour or fill aesthetic to infer default direct labels.
而且,当我尝试:
g + geom_dl(aes(label = brks), method = 'bottom.pieces')
我得到:Error: Aesthetics must be either length 1 or the same as the data (5307): label, x, y, z
有什么建议吗?
答案 0 :(得分: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
只需在geom_dl
中指明您要标记中断(aes(label=..levels..)
)中包含的级别(breaks=brks
),以便知道要显示的标签。
答案 1 :(得分:0)
首先我确定我有最新版本的直接标签。
然后:
dat <- reshape2::melt(volcano)
brks <- c(100, 120, 140, 160)
g <- ggplot(dat, aes(x = Var1, y = Var2, z = value)) +
geom_contour(aes(colour = ..level..), breaks = brks)
g
direct.label(g, list("bottom.pieces", colour='black'))