可以在lattice和ggplot2图中使用polygon()或等效的吗?

时间:2011-11-29 01:03:35

标签: r plot ggplot2 polygon lattice

是否可以使用lattice库中使用ggplot2创建的元素(或使用类似函数创建的元素)注释polygon()(或graphics)个数字?

除了在网上发布并在Deepayan Sarkar的书中印刷的简单图表的示例之外,我对这两个图书馆都不太熟悉。因此,虽然我已经使用graphics库为我在R中执行的操作编写了代码,但我特别感谢latticeggplot2的相关函数和用法示例。 。感谢。

2 个答案:

答案 0 :(得分:11)

以下是ggplot2

中第一个示例的?polygon()版本
x <- c(1:9,8:1)
y <- c(1,2*(5:3),2,-1,17,9,8,2:9)

ggplot(NULL, aes(1:10, 1:10)) + geom_point() +
  geom_polygon(aes(x, y), fill = "orange", colour = "skyblue", alpha = 0.5)

enter image description here

答案 1 :(得分:8)

有一系列方法允许将图形对象添加到点阵图中。在latticeExtra包中有layer和“+”方法。在pkg:lattice本身中,可以使用trellis.focus(...)添加现有图表,然后添加panel.polygon()等面板调用。我过去用这些来注释contourplot()s。

如果您在帮助(contourplot)上执行示例,然后按照:

进行操作
trellis.focus("panel", 1, 1)
do.call("panel.polygon", list(x =c(5,15,15,5,5), y=c(60,60,90,90,60) ) )
trellis.unfocus()

...你应该看到一个带有顶点c(5,60),c(15,60),c(15,90),c(5,90)的矩形已被放置在图的面板#1中。请注意,编号在左下角为(1,1)。我一般没有使用面向对象从do.call()返回一个vlaue,但我怀疑它会成功。

enter image description here