我正在尝试生成一个条形图,但是y轴比例太短。这是我的代码:

barplot(as.matrix(dat), log="y", ylim=c(10000,100000000), beside=TRUE,
        ylab = "Number of reads", col = c("gray","black","white"))

它为轴留出了空间(按照ylim),但未填充实际轴。我经历过?barplot并尝试了一些方法(从谷歌搜索到我认为xpd = F, yaxs = c(10000,10000000,5)应该可以,但是没有用)。

我知道这是一件小事,但这恰恰是我长久以来一直坚持的那种问题,而不是实际工作,因此任何帮助将不胜感激!

编辑:
为输入家伙们加油!

最初我确实没有使用ylim进行绘制,但是最终却出现了一个更加离奇的轴(同样的问题)。实际上,我选择了ylim值以使其轴间距更好。

数据如下:
dat <- read.table(text="D2,D3n,D3m,D4n,D4m
21234722,34262282,31920464,25486357,20712943
35343,64403,22537,39934,46547
126646,312286,101105,81537,76944", header=TRUE, sep=",")

编辑2:
@DWin正确-我更新了R,现在可以正常工作-谢谢大家!

最佳答案

我看到您尝试设置ylim,但给出了错误的值。这将改变绘图的比例(如缩放)。例如查看此:

par(mfrow=c(2,1))
tN <- table(Ni <- stats::rpois(100, lambda = 5))
r <- barplot(tN, col = rainbow(20),ylim=c(0,50),main='long y-axis')
r <- barplot(tN, col = rainbow(20),main='short y axis')

另一个选择是绘制没有轴的图,并使用axisusr手动设置它们:
require(grDevices) # for colours
par(mfrow=c(1,1))
r <- barplot(tN, col = rainbow(20),main='short y axis',ann=FALSE,axes=FALSE)
usr <- par("usr")
par(usr=c(usr[1:2], 0, 20))
axis(2,at=seq(0,20,5))

10-08 11:57