2017-04-25 3 views
2

Ich habe einen Datenrahmen aus einer CSV in der wie folgt aussieht:ggplot Plots Fehlerbalken, aber nicht unbedingt die Datenpunkte in 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 

ich versuche, dies zu plotten mit folgenden Skript:

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

Diese Plots nur Fehlerbalken (zentriert um die entsprechenden Punkte, soweit ich das beurteilen kann). Ich plane es mit anderen solchen Datenrahmen auf der gleichen Handlung, und sie funktionieren gut, aber sie haben keine "NA" s, was zu der Annahme führt, dass sie der Schuldige sind. Das vollständige Skript sieht wie folgt aus:

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

Wie kann ich ggplot die richtigen Punkte anzeigen lassen?

+0

mit Was ist 'valley_c_w_summary'? –

+0

@ J.Con Es war ein Kopieren/Einfügen-Fehler. Ich habe es (hoffentlich) behoben. – 5r9n

+0

@ J.Con Um Ihre Frage direkt anzusprechen, ist valley_c_w_summary ein Datenrahmen, der von einer .csv – 5r9n

Antwort

1

Alistaires Kommentar fasst Ihre Antwort zusammen, Sie müssen na.omit um Ihren Datenrahmen setzen auch müssen Sie nicht Ihre Daten auf jedem der Geoms aufrufen, wie unten, ich habe Ihre Daten kopiert und in eine Daten Rahmen genannt 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") 

ich die Grafik unten bekam, ich hoffe, das ist, was Sie erwarten:

enter image description here

Bei howe Ver, Sie müssen die NA annähern, können Sie eine Funktion namens na.approx in zoo Bibliothek verwenden.

Ihr Code so etwas wie unten sein würde:

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

Der Ausgang jetzt anders wenig sein würde, haben die Fehlerbalken erhöht. Sie können über die Dokumenation von Spline und linearen Transformationen der NA Annäherung lesen na.approxhere

enter image description here

Verwandte Themen