ggplot绘制错误条,但不绘制R中的实际数据点

ggplot绘制错误条,但不绘制R中的实际数据点,r,plot,ggplot2,errorbar,R,Plot,Ggplot2,Errorbar,我从.csv中读取了一个数据帧,如下所示: valley_cw_摘要: "","times","means","sd" "1",1,23.7326530612245,0.822951942679513 "2",10,NA,NA "3",11,27.9811602527283,2.18451736644603 "4",12,NA,NA "5",13,28.8594485927628,2.47839597165728 "6",14,NA,NA "7",15,28.5562894887995,2.46

我从.csv中读取了一个数据帧,如下所示:

valley_cw_摘要:

"","times","means","sd"
"1",1,23.7326530612245,0.822951942679513
"2",10,NA,NA
"3",11,27.9811602527283,2.18451736644603
"4",12,NA,NA
"5",13,28.8594485927628,2.47839597165728
"6",14,NA,NA
"7",15,28.5562894887995,2.4613545973872
"8",16,NA,NA
"9",17,26.9750287026406,1.87035639782657
"10",18,NA,NA
"11",19,25.2288340034463,1.0835585618286
"12",2,NA,NA
"13",20,NA,NA
"14",21,24.5269385410684,0.804365453635496
"15",22,NA,NA
"16",23,24.1512923607122,0.806920352501217
"17",24,NA,NA
"18",25,24.0809803921569,0.826911680243558
"19",3,23.5923254472014,0.889646609799541
"20",4,NA,NA
"21",5,23.3741488747836,0.932515616519176
"22",6,NA,NA
"23",7,23.2863296955773,0.982225553711973
"24",8,NA,NA
"25",9,25.4694252873563,1.33025859840695
我试图用以下脚本来描绘这一点:

ggplot(data=valley_c_w_summary,aes(x = times,y=means))+
  theme_classic()+
  geom_line(data = valley_c_w_summary,aes(x=times,y=means))+
  geom_errorbar(data=valley_c_w_summary,aes(ymin=means-sd,ymax=means+sd))+
  labs(x="Time",y="Temperature in canopy May to December")
这只绘制错误条(据我所知,以适当的点为中心)。我在同一个图上用其他类似的数据帧绘制它,它们工作得很好,但它们没有任何“NA”,这让我相信它们是罪魁祸首。其完整脚本如下所示:

ggplot(data=ridge_cw_summary,aes(x = times,y=means))+
  geom_errorbar(data=ridge_c_w_summary,aes(ymin=means-sd,ymax=means+sd),colour="red")+
  geom_line(aes(y=means),colour="red")+
  theme_classic()+
  geom_line(data = valley_c_w_summary,aes(x=times,y=means))+
  geom_errorbar(data=valley_c_w_summary,aes(ymin=means-sd,ymax=means+sd))+
  geom_line(data = edge_c_w_summary,aes(x=times,y=means),colour="blue")+
  geom_errorbar(data=edge_c_w_summary,aes(ymin=means-sd,ymax=means+sd),colour="blue")+
  labs(x="Time",y="Temperature in canopy May to December")

如何让ggplot显示正确的点?

Alistaire comment总结了您的答案,您需要在数据框周围添加
na。省略
,您也不需要调用每个几何图形上的数据,如下所示,我已复制了您的数据并将其放入名为vally_c_w_summary的数据框中:

ggplot(data=na.omit(valley_c_w_summary),aes(x = times,y=means))+
  geom_errorbar(aes(ymin=means-sd,ymax=means+sd),colour="red")+
  geom_line(aes(y=means),colour="blue",size=1)+
  theme_classic()+
  labs(x="Time",y="Temperature in canopy May to December")
我得到了下图,我希望这是您所期望的:

但是,如果需要近似NAs,可以在
zoo
库中使用名为na.approx的函数

您的代码如下所示:

library(zoo)
library(ggplot2)
ggplot(data=data.frame(na.approx(valley_c_w_summary)),aes(x = times,y=means))+
  geom_errorbar(aes(ymin=means-sd,ymax=means+sd),colour="red")+
  geom_line(aes(y=means),colour="blue",size=1)+
  theme_classic()+
  labs(x="Time",y="Temperature in canopy May to December")
现在,输出将略有不同,误差条已增加。您可以使用
NA.approx


什么是
valley_c_w_summary
?@J.Con这是一个复制/粘贴错误。我(希望)修复了它。@J.Con为了直接回答您的问题,valley_c_w_summary是一个从.csv读取的数据帧,只需将对数据的调用包装在
na.省略
。此外,只需对
ggplot
中的数据进行一次调用,并让Geom继承。比较一点,
ggplot(na.省略(df),aes(x=次数,y=平均值))+geom_线()+geom_误差条(aes(ymin=平均值-sd,ymax=平均值+sd))