【问题标题】:Designing boxplot in base R在基础 R 中设计箱线图
【发布时间】:2021-10-23 20:37:06
【问题描述】:

我在 R 中创建了下面的(非常简单的)箱线图。

boxplot(mpg ~ vs, data = mtcars)
stripchart(mpg ~ vs, data = mtcars,
           method = "jitter",
           vertical = TRUE,
           add = TRUE)

然后我想执行以下操作,但在四处搜索时我无法找到答案,所以我希望这里的人能够提供帮助。我想:

  1. 将“1”和“0”分别更改为“是”和“否” - 在不更改数据集的情况下是否可以?
  2. 将字体更改为 Times New Roman
  3. 突出显示一个特定的抖动点,以便直观地显示 mpg 值,例如 vs = 1 组中的最高值。

最好的问候

【问题讨论】:

  • 请编辑您的问题以包含错误添加的附加功能作为答案。

标签: r boxplot


【解决方案1】:

对于第一季度,您可以关注@Ben Bolker's answer,对于第二季度,您可以使用par 并确定您想要的字体系列。 Q3 您可以执行以下操作(具体取决于您需要什么,因为 OP 中没有指定):

par(family = 'serif')
mn.t <- max(mtcars$mpg[mtcars$vs == 1])


boxplot(mpg ~ vs, data = mtcars)
stripchart(mpg ~ vs, data = mtcars,
           method = "jitter",
           vertical = TRUE,
           add = TRUE,
           pch = 0)
points(2, mn.t, col = "orange", 
       pch = 15)

points 中的参数2 代表vs = 1。

【讨论】:

    【解决方案2】:

    对于第一季度:

    boxplot(mpg ~ vs, data = mtcars, names=c("No", "Yes"))
    

    尽管取决于您所做的事情,将vs 转换为上游因子 ( &lt;- factor(vs, levels = 0:1, labels = c("No", "Yes"))) 可能会更有原则/更好的工作流程

    对于第二季度,请参阅Changing Fonts for Graphs in Rextrafonts 包,或在 Windows 上为windowsFont()

    对于第三季度,我认为您可能必须自己挖掘并实施抖动,以便您知道抖动点在哪里。

    【讨论】:

      【解决方案3】:

      您可以尝试这样做,以避免最大值为两点:

      set.seed(123)
      
      par(family = "serif")
      
      boxplot(mpg ~ vs, data = mtcars,
              names = c("No", "Yes"))
      
      highlight <- row.names(subset(subset(mtcars, vs == 1), mpg == max(mpg)))
      
      
      stripchart(mpg ~ vs, data = mtcars[row.names(mtcars) != highlight, ],
                 method = "jitter",
                 vertical = TRUE,
                 add = TRUE)
      
      stripchart(mpg ~ vs, data = mtcars[row.names(mtcars) == highlight, ],
                 method = "jitter",
                 vertical = TRUE,
                 col = "red",
                 at = 2,
                 add = TRUE)
      
      text(2,
           mtcars$mpg[row.names(mtcars) == highlight],
           mtcars$mpg[row.names(mtcars) == highlight],
           cex = 1,
           pos = 2,
           col = "red") 
      

      reprex package (v2.0.0) 于 2021-08-23 创建

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-03
        • 1970-01-01
        • 1970-01-01
        • 2021-08-22
        • 2011-05-14
        • 1970-01-01
        • 2015-09-11
        • 1970-01-01
        相关资源
        最近更新 更多