【问题标题】:Can one use polygon() or equivalent in lattice and ggplot2 plots?可以在 lattice 和 ggplot2 图中使用 polygon() 或等价物吗?
【发布时间】:2012-01-08 10:12:32
【问题描述】:

是否可以使用graphics 库中使用polygon()(或使用类似功能创建的元素)创建的元素来注释lattice(或ggplot2)图形?

除了发布在网络上并印在 Deepayan Sarkar 的书中的简单图表示例之外,我对这两个库都不太熟悉。因此,虽然我有我在 R 中使用 graphics 库所做的代码,但我将特别感谢 lattice 或 ggplot2 的相关、等效函数和用法示例。谢谢。

【问题讨论】:

  • ?panel.polygon 和 ?geom_polygon 分别(诚然,lattice doc 中没有示例,但想法与基本图形多边形相同)
  • 好问题。多年来,我注意到格点方法并不为人所知。标记方面的工作也很出色。

标签: r plot ggplot2 polygon lattice


【解决方案1】:

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

如果你在 help(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() 返回值,但我怀疑它会成功。

【讨论】:

    【解决方案2】:

    这是?polygon()中第一个示例的ggplot2版本

    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)
    

    【讨论】:

      猜你喜欢
      • 2011-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-09
      • 2021-06-19
      • 1970-01-01
      • 2019-03-20
      相关资源
      最近更新 更多