我已经为每个条形图中的多数类编写了一个有用的函数来着色直方图条:
color_hist <- function(x, cats, ...){
hist <- hist(x, plot=FALSE, ...)
cuts <- cut(x, breaks=hist$breaks)
color = apply(table(cuts, cats), 1, which.max)
hist(x, col=color,...)
}
color_hist(iris[,4], iris[,5])
我想尽可能地复制hist()
的行为,但我无法弄清楚如何将标题和x标签从原始直方图传递到彩色直方图:
我希望新的直方图与旧的直方图具有相同的默认标题/ xlabels,我还想通过任何其他用户指定的参数。任何人都可以帮我解决这个问题,或以其他任何方式改进这个功能吗?
(如果我可以让颜色相互融合,也会很酷,这取决于班级百分比......)
答案 0 :(得分:5)
请看一下hist.default
的代码,这是如何处理的......
color_hist <- function(x, cats, xlab = xname, main = paste("Histogram of", xname), ...){
xname <- paste(deparse(substitute(x), 500), collapse = "\n")
hist <- hist(x, plot=FALSE, ...)
cuts <- cut(x, breaks=hist$breaks)
color = apply(table(cuts, cats), 1, which.max)
hist(x, col=color, xlab = xlab, main = main, ...)
}
color_hist(iris[,4], iris[,5])