2017-03-17 73 views
0

data.frames我想2个data.frames不同长度的使用GGPLOT2用下面的代码绘制:错误ploting不同长度GGPLOT2

require(ggplot2) 

shortda <- data.frame(SST=seq(1:30),chla=rlnorm(30),year=rep(2001:2010,each=3)) 
longda <- data.frame(SST=seq(1:300),pred=rlnorm(300)) 

ggplot(shortda, aes(x=SST, y=chla, colour=year))+ geom_point() 

ggplot(shortda, aes(x=SST, y=chla, colour=year))+ geom_point() + geom_line(data=longda,aes(SST,pred)) 

一个data.frame第一曲线效果很好,但第二个给出了一个错误:

Error in eval(expr, envir, enclos) : object 'year' not found 

我做错了什么?

我sessinInfo是

sessionInfo() 
R version 3.3.3 (2017-03-06) 
Platform: x86_64-pc-linux-gnu (64-bit) 
Running under: Ubuntu 14.04.5 LTS 

locale: 
    [1] LC_CTYPE=en_US.UTF-8  LC_NUMERIC=C    LC_TIME=es_AR.UTF-8  
[4] LC_COLLATE=en_US.UTF-8  LC_MONETARY=es_AR.UTF-8 LC_MESSAGES=en_US.UTF-8 
[7] LC_PAPER=es_AR.UTF-8  LC_NAME=C     LC_ADDRESS=C    
[10] LC_TELEPHONE=C    LC_MEASUREMENT=es_AR.UTF-8 LC_IDENTIFICATION=C  

attached base packages: 
    [1] stats  graphics grDevices datasets utils  methods base  

other attached packages: 
    [1] ggplot2_2.1.0 

loaded via a namespace (and not attached): 
    [1] labeling_0.3  colorspace_1.2-6 scales_0.4.1  plyr_1.8.3  tools_3.3.3  gtable_0.2.0  
[7] Rcpp_0.12.4  grid_3.3.3  digest_0.6.9  munsell_0.4.3 
+0

我收到您发布的错误。通过上面的代码,我得到了'错误in(函数(...,row.names = NULL,check.rows = FALSE,check.names = TRUE,: 参数意味着不同的行数:300,0' –

回答

1

你不能把任何数据在ggplot声明。这样的事情会给你想要的结果吗?

ggplot()+ geom_point(data=shortda, aes(x=SST, y=chla, colour=year)) + 
      geom_line(data=longda,aes(SST,pred)) 

enter image description here

1

ggplot希望通过year而影响了你的线条,但在longda它不能找到它。

可以使用例如为:

geom_line(aes(y = pred), longda, col = 1) 

geom_line(aes(y = pred, col = NULL), longda) 

,表明你的颜色映射不应适用于该线。