点阵包中 geom_encircle 的变体
variant of geom_encircle in lattice package
考虑 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这样的点阵包中的图形的特定部分有任何形式的圆圈或椭圆。
将凸包叠加在绘图上的 panel.chull()
放在一起并不难。 latticeExtra
中的 layer()
函数使点阵图形更像 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
的所有功能,您可以将该代码的核心内容导入您自己的自定义面板功能中...
考虑 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这样的点阵包中的图形的特定部分有任何形式的圆圈或椭圆。
将凸包叠加在绘图上的 panel.chull()
放在一起并不难。 latticeExtra
中的 layer()
函数使点阵图形更像 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
的所有功能,您可以将该代码的核心内容导入您自己的自定义面板功能中...