【问题标题】:How can I add a legend to a goodness of fit plot in R?如何在 R 中的拟合优度图中添加图例?
【发布时间】:2011-11-04 08:30:39
【问题描述】:

我正在使用来自vcd 包的goodfit 来生成拟合优度图。

我想添加一个图例,说明条形是实际计数,而点(由线连接)是合适的,例如泊松和机器学习。

legend 不起作用。我怎样才能轻松地为这个情节添加一个图例?

谢谢!

【问题讨论】:

    标签: r plot legend


    【解决方案1】:

    goodfit 对象的绘图函数使用grid 图形系统(请参阅?rootogramgetAnywhere(rootogram.default))。

    你有两个选择:

    1. 使用相当有限的grid.legend 函数(来自包grid)。
    2. 使用gridBase 包在网格图中嵌入基本图形图例。

    这是第一个选项的简单示例:

    library("vcd")
    dummy <- rnbinom(200, size=1.5, prob=0.8)
    gf <- goodfit(dummy, type="nbinomial", method="MinChisq")
    plot(gf)
    pushViewport(viewport(x=unit(0.8, "npc"),
                          y=unit(0.8, "npc"),
                          width=stringWidth("Legend x"),
                          height=unit(6, "line"),
                          name="vp1"))
    grid.legend(labels=c("Legend 1", "Legend 2"), pch=1:2)
    popViewport()
    

    【讨论】:

    • 谢谢。但是如何设置图例中的符号/颜色以匹配实际图表中的符号/颜色?
    【解决方案2】:

    修改@rcs 的答案以使用grid_legend(与goodfit 一起在vcd 包中),它是为用户设计的(grid.legend 是一个未记录的内部函数),并显示一个专门针对这个情节。在基本图形中使用fill=c(NA,"gray")legend 一样会很好,但它没有在grid_legend 中实现。

    library("vcd")
    dummy <- rnbinom(200, size=1.5, prob=0.8)
    gf <- goodfit(dummy, type="nbinomial", method="MinChisq")
    plot(gf)
    grid_legend(x=unit(0.8, "npc"),
                y=unit(0.8, "npc"),
                labels=c("est NBinom (MinChiSq)","obs"),
                title="",
                pch=c(16,15),col=c("red","gray"))
    

    【讨论】:

      【解决方案3】:

      如果没有具体的例子就很难说(AFAIK 这不是goodfit 的限制),但我会用legend 检查一些事情:

      1. 您可以为参数x 放置带有"topright""bottomleft" 等的图例。
      2. 您可以使用par("usr") 查询 x 和 y 轴范围。如果绘图是对数刻度,并且您想将图例放置在 y 的最大值处,则必须使用 10^par("usr")[4],依此类推。
      3. 传递参数xpd=NA 以查看是否将图例放置在绘图区域之外,并查看是否需要设置xjustyjust

      【讨论】:

      • 实际上不起作用,因为goodfit 使用@rcs 的答案中解释的网格图形...
      猜你喜欢
      • 1970-01-01
      • 2011-11-30
      • 2014-03-07
      • 1970-01-01
      • 2020-05-07
      • 2021-07-27
      • 2021-11-28
      • 2023-03-07
      • 2017-02-09
      相关资源
      最近更新 更多