【问题标题】:R: how to increase the distance between label and boxplotR:如何增加标签和箱线图之间的距离
【发布时间】:2021-01-04 14:51:37
【问题描述】:
boxplot(count ~ spray, data = InsectSprays, col = "lightgray", names = c("Apple \n Sauce", "Banana", "Candy", "Dandelion", "Eve", "Fox"))

上面的代码给了我:

我有一个多行标签“Apple Sauce”,但我不知道如何正确分隔它,以便标签不会覆盖在箱线图的顶部。如何增加标签和箱线图之间的距离?

编辑:假设我想删除其中一个箱线图

newInsectSprays <- InsectSprays[1:60,]
boxplot(count ~ spray, data=newInsectSprays, col="lightgray", xaxt="n")
axis(1, axTicks(1), labels=F)
mtext(c("Apple\nSauce", "Banana\n", "Candy\n", "Dandelion\n", "Eve\n"), 
      1, 2, at=axTicks(1))

此代码重复了“Apple Sauce”标签。我该如何解决这个问题?

编辑 2:

newInsectSprays <- InsectSprays[1:60,]
boxplot(newInsectSprays$count[newInsectSprays$spray == "A"], 
        newInsectSprays$count[newInsectSprays$spray == "B"],
        newInsectSprays$count[newInsectSprays$spray == "C"],
        col="lightgray", xaxt="n")
mtext(c("Apple\nSauce", "Banana\n", "Candy\n"), 
      1, 2, at=axTicks(1))

【问题讨论】:

    标签: r plot boxplot


    【解决方案1】:

    构建自定义 x 轴。我们可能希望避免使用空格,并将\n 也添加到其他字符串的末尾,以获得更清晰的结果。

    boxplot(count ~ spray, data=InsectSprays, col="lightgray", xaxt="n")
    axis(1, axTicks(1), labels=F)
    mtext(c("Apple\nSauce", "Banana\n", "Candy\n", "Dandelion\n", "Eve\n", "Fox\n"), 
          1, 2, at=axTicks(1))
    

    编辑:

    spray 是一个因子列,不再需要一个因子,我会使用 drolevels

    newInsectSprays <- InsectSprays[1:60,]
    boxplot(count ~ spray, data=transform(newInsectSprays, spray=droplevels(spray)), 
            col="lightgray", xaxt="n")
    mtext(c("Apple\nSauce", "Banana\n", "Candy\n", "Dandelion\n", "Eve\n"), 
          1, 2, at=axTicks(1))
    

    编辑2

    boxplot(count ~ droplevels(spray), 
            newInsectSprays[newInsectSprays$spray %in% c("A", "B", "C"), ], 
            xaxt="n", xlab="spray")
    mtext(c("Apple\nSauce", "Banana\n", "Candy\n"), 1, 2, at=1:3)
    

    【讨论】:

    • @YQC 未使用的因子水平问题,请参阅编辑。使用str(newInsectSprays)查看。
    • 谢谢。你能看看Edit2吗?即使只有 3 个箱线图,我也不确定为什么要重复标签。
    • @YQC 我不太确定,因为我不会那样编码。但是,基本上at= 参数是从 1 开始的序列,所以试试mtext(c("Apple\nSauce", "Banana\n", "Candy\n"), 1, 2, at=1:3)
    • @YQC 要显示“代码不同”,请参阅edit2,我们可以方便地将droplevels 包裹在公式中的喷雾周围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多