我需要兩個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