考虑df
:
d <- data.frame(x=c(1,1,2),y=c(1,2,2)*100)
以及以下情节:
gg <- ggplot(d,aes(x,y))
gg <- gg + scale_x_continuous(expand=c(0.5,1))
gg <- gg + scale_y_continuous(expand=c(0.5,1))
gg + geom_encircle(s_shape=1, expand=0) + geom_point()
我想知道是否像ggplot / gggalt一样在晶格包中对图形的特定部分进行了某种形式的圆形或椭圆形设计。
答案 0 :(得分:1)
将panel.chull()
叠加在情节上的凸包上并不难。 layer()
中的latticeExtra
函数使点阵图形更加像ggplot一样...
d <- data.frame(x=c(1,1,2),y=c(1,2,2)*100)
library(lattice)
library(latticeExtra)
panel.chull <- function(x, y, type="l", ...) {
ch <- grDevices::chull(x, y)
ch <- c(ch,ch[1]) ## close the polygon
panel.xyplot(x[ch],y[ch], type=type, ...)
}
现在部署它:
g1 <- xyplot(y~x,data=d) ## base plot
g1 + layer(panel.chull(x,y,col="red")) ## add convex hull
注意:
geom_encircle
的全部功能,则可以将该代码的全部内容导入到您自己的自定义面板函数中...