2016-07-13 161 views
2

因素我在R於該圖的工作:繪製線圖與R中

graph

但是當你看到我得到這些固體破折號,而不是漂亮的線條。下面是我用來做這個圖形代碼:

par(mar = c(5,5,2,5)) 
    with(bedtimes, plot(trap, funestus, type="l", col="red3", 
       ylab=expression(italic(p))), 
       ylim=c(0,3)) 

    par(new = T) 
    with(bedtimes, plot(trap, bed, pch=16, axes=F, xlab=NA, ylab=NA, cex=1.2)) 
    axis(side = 4) 
    mtext(side = 4, line = 3, 'Proportion in bed') 
    polygon(bedtimes$bed,col=transp("gray", 0.3), border = NA) 

,這裏是我使用的數據的dput:

(removed) 

我意識到,這正在發生,因爲我的X軸是一個因素而不是數字。但是,試圖這樣(例如,使用as.POSIXct(paste0("2016-07-12",bedtimes$trap))變化是導致我各種各樣的問題,因爲我不得不阿克最初通過使用bedtimes$trap <- factor(bedtimes$trap, levels = bedtimes$trap)

我怎麼能產生這種相同的圖形,但用線確定[R繪製在正確的順序,這些因素?而不是這些破折號 我最終想要的是類似於這樣的圖形,給你出個主意(雖然不完全一樣):

graph

謝謝

+0

嘗試使用'as.numeric(陷阱)'=代替三個等級數(也'TYPE = 「L」'而非' pch = 16'如果你想要的是線) – Cath

+0

按級別數字你是指在X軸上的時間? –

+1

我的意思是'as.numeric(陷阱)'而不是'陷阱',然後用'levels(陷阱)'標記你的座標軸 – Cath

回答

2

正如我說的!評論,你可以嘗試用你的因子變量的水平:

par(mar = c(5,5,2,5)) 
with(bedtimes, plot(as.numeric(trap), funestus, type="l", col="red3", 
        ylab=expression(italic(p))), 
        ylim=c(0,3)) 
par(new = T) 
with(bedtimes, plot(as.numeric(trap), bed, type="l", axes=F, xlab="", ylab=NA, cex=1.2)) 
axis(4) 
axis(side = 1, at=1:length(levels(bedtimes$trap)), levels(bedtimes$trap)) 
mtext(side = 4, line = 3, 'Proportion in bed') 
polygon(bedtimes$bed,col="gray", border = NA) 

enter image description here

+2

謝謝,但是這消除了左邊的y軸和我對funestus 。我正在尋找像示例圖片中的兩個y軸和單獨的圖 –

+1

@SamuelHarper創建一個情節對不起,我只是沒有把你的代碼的第一部分。該圖像不是你將使用透明度參數的那個圖像 – Cath

+1

非常感謝你!如果我可以再問你一件事(因爲你已經回答了我的問題,所以這是完全可選的!) 如何旋轉我的軸標籤以便它們更易於閱讀?因爲它們有點太長而不能水平放置。 –