2010-11-19 16 views
1

Ich versuche, die Daten mit dem ggplot2 Paket zu zeichnen, aber ich bin die Kreuzung mit einem Fehler: die Daten einer Gruppe von Spalten, die jeden Tag Werten (die Werte ändern in Höhe)Plotten mit ggplot2. Fehler

V1 V2.... V500 
2E-15.....3E-14 
3e-14.....3E-21 
1.3E-15....NA 

I für Ich möchte alle Daten in zwei Achsen mit einer Füllung der Werte darstellen.

Code;

a<-data.frame("/../vertical_value.csv",sep=",",header=F) 
am<-melt(t(a)) 
dataset<-expand.grid(X = 1:500, H = seq(1,25,by=1)) 
dataset$axp<-am$value 
g<-ggplot(dataset, aes(x = X, y = H, fill = axp)) + geom_tile() 

Fehler:

Error: Casting formula contains variables not found in molten data: XHaxp 
+0

Jaun, wäre es überhaupt möglich, uns Ihre Daten oder Dummy-Daten in der gleichen Form zur Verfügung zu stellen? Der Casting-Fehler kann NAs in Ihren Daten widerspiegeln. na.omit (Datensatz) funktioniert möglicherweise. Aber es ist schwer zu sagen, ohne zu sehen, was es sein sollte. Kann jemand seinen Beitrag auch richtig kodifizieren? –

+0

Bitte geben Sie ein reproduzierbares Beispiel. Ich habe deinen Code mit 'a <- matrix (rnorm (500 * 25), nc = 500)' getestet und habe keine Fehler bekommen (ich verstehe auch nicht, warum du 'am' nicht direkt im Plot verwenden kannst) . – Aniko

+0

Ich weiß nicht genau, was hier vor sich geht, aber ich glaube, Ihr Fehler könnte auf der Stufe melt (t (a)) liegen? Es ist wirklich schwer, ohne ein reproduzierbares Beispiel weiter zu gehen. Hier ist ein ähnliches Beispiel, das funktioniert (tut mir leid um das Format): z <- data.frame (V1 = 1: 5, V2 = 2: 6, V3 = 3: 7); Bibliothek (Umformen); mm <- schmelzen (t (z)); Datensatz <- expand.grid (X = 1: 5, H = 1: 3); Datensatz $ axp <- mm $ Wert; Bibliothek (ggplot2); ggplot (Datensatz, aes (x = X, y = H, Füllung = axp)) + geom_tile() –

Antwort

1

an dieser Suche wieder, denke ich, dass Sie in der Lage sein sollte, diese nur zu umgehen, indem NA fallen Reihen, nachdem Sie schmelzen.

a<-data.frame("/../vertical_value.csv",sep=",",header=F) 
am<-melt(t(a)) 
am <- na.omit(am) ## ADD THIS LINE 
dataset<-expand.grid(X = 1:500, H = seq(1,25,by=1)) 
dataset$axp<-am$value 
g<-ggplot(dataset, aes(x = X, y = H, fill = axp)) + geom_tile() 
Verwandte Themen