R: Как маркировать конкретные контуры с помощью direct.label
Я относительно новичок в ggplot2
, и у меня возникают проблемы с добавлением соответствующих меток в мои контуры.
Используя классический пример вулкана, я могу добавить метки к графику контура по умолчанию:
library(plyr)
library(ggplot2)
library(directlabels)
library(reshape)
volcano<-melt(volcano)
v<-ggplot(volcano, aes(x,y,z=z))
e<-v + stat_contour(aes(colour=..level..))
direct.label(e)
В приведенном выше примере метки добавляются соответствующим образом, но все усложняется, если я попытаюсь указать свои собственные точки останова для контуров:
e<-v + stat_contour(aes(breaks=c(160, 170, 180), colour=..level..))
direct.label(e)
Теперь контуры указаны перерывами, которые я предоставил, но метки все еще отображаются для всех стандартных контуров. Как мне отображать только метки для графических контуров?
Связанная проблема, как бы я нарисовал метки для уровней контура, не включенных в значение по умолчанию? Скажем разрыв 165:
e<-v + stat_contour(aes(breaks=c(165), colour=..level..))
direct.label(e)
Спасибо за любую помощь!
Ответы
Ответ 1
Я не мог стоять, чтобы увидеть старый вопрос без ответа с таким легким решением.
Простой задачей было отображение внутри stat_contour()
. Ваш вызов должен быть:
v<-ggplot(volcano, aes(x=X1,y=X2,z=value)) # specify the mapping properly
e<-v + stat_contour(aes(colour=..level..), breaks=c(160, 170, 180))
direct.label(e)
С разрывами, не включенными в отображение aes, и colour=..level..
.
![enter image description here]()