ggplot绘制错误条,但不绘制R中的实际数据点
我从.csv中读取了一个数据帧,如下所示: valley_cw_摘要: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
"","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))