我对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)
感谢您的帮助!
答案 0 :(得分:5)
我无法通过这么简单的解决办法看到一个没有答案的旧问题。
简单的问题是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..
。
答案 1 :(得分:2)
使用ggplot&gt; 2.0.0你需要添加方法=&#34; bottom.pieces&#34; (或top.pieces)到direct.label调用
library(directlabels)
direct.label(e, method="bottom.pieces")