2017-04-25 2 views
2

J'ai un dataframe lu depuis un fichier .csv qui ressemble à ceci:parcelles ggplot barres d'erreur, mais pas de points de données réels dans R

valley_cw_summary:

"","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 

je tente de tracer ce qui suit script:

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") 

Ceci ne trace que les barres d'erreur (centrées autour des points appropriés pour autant que je sache). Je suis en train de le tracer avec d'autres données de ce type sur la même parcelle, et ils fonctionnent bien, mais ils n'ont pas de «NA», ce qui me porte à croire qu'ils sont le coupable. Le script complet qui ressemble à:

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") 

Comment puis-je obtenir ggplot pour afficher les points appropriés?

+0

Qu'est-ce 'valley_c_w_summary'? –

+0

@ J.Con C'était une erreur de copier/coller. Je l'ai (je l'espère) fixé. – 5r9n

+0

@ J.Con Pour répondre directement à votre question, valley_c_w_summary est une dataframe lue à partir d'un fichier .csv – 5r9n

Répondre

1

Alistaire résume votre réponse, vous devez mettre na.omit autour de votre trame de données aussi vous n'avez pas besoin d'appeler vos données sur chacune des geoms, comme ci-dessous, j'ai copié vos données et les ai mises dans une donnée cadre appelé 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") 

J'ai obtenu le graphique ci-dessous, j'espère que c'est ce que vous attendez:

enter image description here

En cas howe Ver, vous devez approximer les NA, vous pouvez utiliser une fonction appelée na.approx dans la bibliothèque zoo.

Votre code serait quelque chose comme ci-dessous:

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") 

La sortie serait peu différent maintenant, les barres d'erreur ont augmenté. Vous pouvez lire sur l'Documenation de spline et transformations linéaires de l'approximation NA utilisant na.approxhere

enter image description here