2015-07-21 92 views
1

我有點新的R和我想要繪製如下:[R情節 - Y軸,繪製的值是不相關的

x <- c(1:13) 
y <- c(19.77, 18.07, 20.55, 16.42, 18.47, 20.18, 22.91, 13.18, 18.07, 17.05, 13.45, 11.11, 22.52) 
y2 <- c(26.93, 24.5, 25.73, 23.65, 20.50, 29.58, 18.8, 17.38, 12.2, 18.17, 12.55, 15.63, 26.07) 
par(mar=c(5,7,5,3), pch=22, col="Black") 
plot(x, y2, main="TITLE", xaxt = "n", xlab='', yaxt = "n", ylab = "", type="b", col="Blue") 
par(new = TRUE) 
plot(x, y, xaxt = "n", xlab='', yaxt = "n", ylab = "", type="b", col="cyan", pch=21) 
range <- seq(0, 30, 1) 
axis(1, at=x, labels=x) 
axis(2, at=range, labels=range, las=1) 
mtext(side = 1, text = "X", line = 3, col="Black") 
mtext(side = 2, text = "Tiempo", line = 5, xpd=FALSE, col="Black") 
# Legend. 
legend(x= "bottomleft", y=0.92, legend=c("Exp1","Exp2"), col=c("cyan", "blue"), pch=c("_","_")) 

它繪製確定,具體如下:

My plot

但是,我覺得y軸與真實值不相關。例如,在數據(y和y2)中,我們可以看到其中一個最大值是26.93,但在數據中,根據該圖的最高值大約爲23。

我一直在玩範圍變量,但我還沒有找到任何方法來糾正這一點。谷歌一直沒有幫助,因爲我不知道我該如何搜索這個問題。你們有沒有任何想法我做錯了什麼?

此外,我希望值範圍從0到30,而不是從11到23.也許這與問題有關。

任何提示將是有價值的!提前致謝。

+0

有趣的是,你在t上有13個x值和13個刻度線他是y軸。我會立即推斷,而不必查看重新映射標籤的代碼。 – N8TRO

回答

1

住在儘可能靠近你的代碼,你可以改變線#5,#7是這樣的:

plot(y2 ~ x, main="TITLE", xaxt = "n", xlab='', yaxt = "n", ylab = "", type = "b", col = "Blue", ylim = c(0,30)) 
lines(y ~ x, xaxt = "n", xlab = '', yaxt = "n", ylab = "", type = "b", col = "cyan", pch = 21) 

enter image description here

1

使用matplot

matplot(x, cbind(y2,y), t='b', col = c("blue", "cyan"), pch = c(22, 21), lty = c(1,1), xaxt = "n", xlab="", yaxt = "n", ylab = "") 
axis(1, at=x, labels=x) 
axis(2, at=range, labels=range, las=1) 
mtext(side = 1, text = "X", line = 3, col="Black") 
mtext(side = 2, text = "Tiempo", line = 5, xpd=FALSE, col="Black") 
legend(x= "bottomleft", y=0.92, legend=c("Exp1","Exp2"), col=c("cyan", "blue"), pch=c("_","_")) 

enter image description here