我在绘图区域内的水平条形图()上获取y轴时遇到问题。看到这个例子,我认为使用ylim和/或yaxp会阻止它离开绘图区域,但它似乎不起作用。
我试图重现我得到的设置:
x <- matrix(abs(rnorm(34)), nrow = 34, ncol = 3)
rownames(x) <- c(seq(0,6600,200))
barplot(x[,3], horiz=TRUE, space = 0.4, main = "Title", las=1, cex.names=0.8, ylab="y label")
但是,如果我添加ylim:
,则轴将进入绘图区域barplot(x[,3], horiz=TRUE, space = 0.4, ylim = c(0,25), yaxp=c(0,25,1), main = "Title", las=1, cex.names=0.8, ylab="y label")
答案 0 :(得分:5)
对于某些(奇怪的?)原因,barplot默认情况下xpd = T,将其设置为false会导致它像大多数情节函数一样剪辑:
barplot(x[,3], horiz=TRUE, space = 0.4, ylim = c(0,25), yaxp=c(0,25,1), main = "Title", las=1, cex.names=0.8, ylab="y label", xpd=F)
答案 1 :(得分:3)
这里的关键是在使用条形图时忘记ylim,而只是在数据中发送所需的绘图范围:
barplot(x[1:25,3], horiz=TRUE, space = 0.4, yaxp=c(0,25,1), main = "Title", las=1,
cex.names=0.8, ylab="y label")
另请注意,R中的索引从1开始,而不是0,就像在其他一些语言中一样。