我需要两个y轴数字。建议用hrbrmstr使用简单的地块。但调整图形到我的设置时,我发现我不能添加在右侧的ylab,得到一个有线错误:如何避免在绘制R时出现有线ylab误差
Error in axis(4, ylim = c(0, 1), col = "black", col.axis = "black", las = 1, :
'labels' is supplied and not 'at'
这是可以避免的? 看代码FPR SOURCE OF ERROR
featPerf <- data.frame(expS=c("1", "2", "3", "4"),
exp1=c(1000, 0, 0, 0),
exp2=c(1000, 5000, 0, 0),
exp3=c(1000, 5000, 10000, 0),
exp4=c(1000, 5000, 10000,20000),
accuracy=c(0.4, 0.5, 0.65, 0.9))
# make room for both axes ; adjust as necessary
par(mar=c(5, 5, 5, 7) + 0.2)
# plot the bars first with no annotations and specify limits for y
#barplot(as.matrix(featPerf[,2:5]), axes=FALSE, xlab="", ylab="", ylim=c(0, max(colSums(featPerf[2:5]))))
barplot(as.matrix(featPerf[,2:5]), axes=FALSE, xlab="", ylab="", beside=TRUE)
# make the bounding box (or not...it might not make sense for your plot)
#box()
# now make the left axis
axis(2, ylim=c(0, max(colSums(featPerf[2:5]))), col="black", las=1)
# start a new plot
par(new=TRUE)
# plot the line; adjust lwd as necessary
plot(x=1:4, y=featPerf[,6], xlab="Experiments", ylab="Abs. # of Features", axes=FALSE, type="l", ylim=c(0,1), lwd=5)
# annotate the second axis -- SOURCE OF ERROR -> VVVVVVVVVVVVVVVVVV
axis(4, ylim=c(0,1), col="black", col.axis="black", las=1, labels="Accuracy")
“axis”的'labels'参数定义了要在刻度标记旁边打印的内容,而不是轴“名称”。你没有定义滴答的位置,这就是你得到这个错误的原因。 – Roland
@Roland谢谢。我怎样才能避免这种情况?你可以提供最后一行'轴的代码(4,ylim = ...' – alex
我不确定你在那里做什么,不要把一个值传递给'labels'?研究文档。 – Roland