【问题标题】:Half coloured boxplot in RR中的半彩色箱线图
【发布时间】:2014-10-28 09:36:05
【问题描述】:

是否有让原生 R boxplot 函数为顶部和底部框生成不同颜色的箱线图?像这样的:

这是我想出的功能:

h.boxplot <- function(..., col.top='orange', col.bottom='yellow', col.scheme='none'){
    cols = c(col.top, col.bottom)
    if(col.scheme != 'none'){
      cs =  list(blue=c('#0071c1', '#3198ff'), green=c('#008001', '#99cc00'), yellow=c('#ffcc00', '#cc9900'))
      stopifnot(col.scheme %in% names(cs))
      cols = cs[[col.scheme]]
    }

    bx<-boxplot(..., col = "white", lty=1, boxlwd=0.00001)
    n = length(bx$names)

    rect(1:n-.4, bx$stats[2,], 1:n+.4, bx$stats[3,], col=cols[2], border=NA)
    rect(1:n-.4, bx$stats[3,], 1:n+.4, bx$stats[4,], col=cols[1], border=NA)
    return(bx)
}

# Examples
data = list(A=1:10, B=20:50)
h.boxplot(data, col.scheme='green', outline=F, frame=F)
h.boxplot(data, col.scheme='blue', outline=F, frame=F)

应该给出类似的东西:

【问题讨论】:

    标签: r colors plot visualization boxplot


    【解决方案1】:

    您无法在基本 boxplot 函数上设置参数来获得该行为,但您可以通过在绘图上绘制不同颜色的矩形来伪造它。例如

    bx<-boxplot(count ~ spray, data = InsectSprays, col = "lightgray")
    rect(1:6-.4, bx$stats[2,], 1:6+.4, bx$stats[3,], col="orange")
    rect(1:6-.4, bx$stats[3,], 1:6+.4, bx$stats[4,], col="yellow")
    

    您可以根据自己的喜好继续自定义。

    【讨论】:

    • 我正是按照这些思路思考的!谢谢!我会尽快为其他人发布我的功能。
    猜你喜欢
    • 2012-05-23
    • 1970-01-01
    • 2019-09-03
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多