我已经组合了一个函数,它在默认情况下的行为与 hist 相同,但接受 log 参数。它使用了其他海报中的一些技巧,但添加了一些自己的技巧。hist(x)
并且myhist(x)
看起来一模一样。
原始问题将通过以下方式解决:
myhist(mydata$V3, breaks=c(0,1,2,3,4,5,25), log="xy")
功能:
myhist <- function(x, ..., breaks="Sturges",
main = paste("Histogram of", xname),
xlab = xname,
ylab = "Frequency") {
xname = paste(deparse(substitute(x), 500), collapse="\n")
h = hist(x, breaks=breaks, plot=FALSE)
plot(h$breaks, c(NA,h$counts), type='S', main=main,
xlab=xlab, ylab=ylab, axes=FALSE, ...)
axis(1)
axis(2)
lines(h$breaks, c(h$counts,NA), type='s')
lines(h$breaks, c(NA,h$counts), type='h')
lines(h$breaks, c(h$counts,NA), type='h')
lines(h$breaks, rep(0,length(h$breaks)), type='S')
invisible(h)
}
读者练习:不幸的是,并非所有适用于 hist 的东西都适用于 myhist。不过,这应该可以通过更多的努力来解决。