2016-07-13 156 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

非常感谢你!如果我可以再问你一件事(因为你已经回答了我的问题,所以这是完全可选的!) 如何旋转我的轴标签以便它们更易于阅读?因为它们有点太长而不能水平放置。 –