如何使geom_contour创建的一条轮廓线与其他颜色分开?例如,在下面的代码中,除了标记为0.02的轮廓线之外,我怎么能保持所有轮廓线都是黑色的,我希望它是除了其余部分之外的颜色。
require(directlabels)
p <- ggplot(faithfuld, aes(eruptions, waiting)) +
geom_contour(aes(z = density, colour = ..level..))
p <- direct.label(p, list("bottom.pieces", cex = .6))
答案 0 :(得分:3)
ggplot(faithfuld, aes(eruptions, waiting)) +
geom_contour(aes(z = density,
colour = factor(..level.. == 0.02,
levels = c(F, T),
labels = c("Others", "0.02"))),
breaks = 0.005*0:10) +
scale_colour_manual(values = c("black", "red")) +
labs(colour = "Of interest:")
这是一种相当可扩展的方法。所有&#34; FALSE&#34; ..level.. == 0.02
的值将显示为黑色,而&#34; TRUE&#34;显示为红色。为了使其正常工作,我需要将断点设置为与完全 0.02(以及0.05的其他倍数)对齐,这是breaks =
所做的。
答案 1 :(得分:2)
我最终覆盖了两个geom_contour
作为解决方案,一个与color = ..level..
绑定,以便direct.label
起作用,另一个突出显示特定轮廓:
require(directlabels)
p <- ggplot(faithfuld, aes(eruptions, waiting)) +
geom_contour(aes(z = density, colour = ..level..)) +
scale_color_continuous(low = "black", high = "black") +
geom_contour(aes(z = density, colour = ..level..), breaks = .02, color = "red")
p <- direct.label(p, list("bottom.pieces", cex = .6))