R 语言ggplot报错:Removed 2 rows containing missing values (geom_errorbar)

R 语言ggplot报错:Removed 2 rows containing missing values (geom_errorbar)

可能是因为自己多加了 ylim=(a,b),而某点处的值超过了这个范围,从而ggplot画图功能自动删去超出范围的点,并报错去掉了值,如果出现这种错误可以修改ylim的范围或者直接去掉ylim。
范例如下。

my_plot_2<-function(N){
  epsilon<-rnorm(N)
  row<-1/1.8;theta<-2.13
  X<-filter(epsilon,filter=c(2*row*cos(theta),-row^2),method="recursive",sides=1)
  gamma_hat<-numeric(length=61)
  gamma<-numeric(length=61)
  X_bar<-mean(X)
  for(i in 0:60){
    gamma_hat[i+1]<-sum((X[1:(N-i)]-X_bar)*(X[(i+1):N]-X_bar))/N
  }
  rep=1000
  a<-matrix(data=0,nrow=rep,ncol=61)
  for(j in 1:rep){
    epsilon<-rnorm(N)
    row<-1/1.8;theta<-2.13
    X<-filter(epsilon,filter=c(2*row*cos(theta),-row^2),method="recursive",sides=1)
    X_bar<-mean(X)
    for(i in 0:60){
    a[j,i+1]<-sum((X[1:(N-i)]-X_bar)*(X[(i+1):N]-X_bar))/N
    }
  }
  gamma_true<-apply(a,2,mean)
  p<-ggplot(data.frame(x=0:60,y1=gamma_hat,y2=gamma_true), aes(x=x, y=y2)) +
    geom_line() +
    geom_point()+
    geom_errorbar(aes(ymin=y2-y1,ymax=y2+y1),width=.1)+
    ylim=c(-2,2)
  p
}

得到结果:

如图
如图所示为一个误差图
如图为一个误差图,但是报错去掉了一个数据,且误差图第一个点是没有误差棒的,这是因为加上误差之后范围超过上限2,从而被删掉。正确做法是删掉ylim。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值