2017-05-15 2 views
0

ich ein Bild haben, das als dieser Satz von Daten descibed:R: Zeichnung des unvollständigen monochrome Bild

0 49.5 -3 
... 
50 101 15 

Columns beschreibt: (1) X-Koordinate; (2) Y-Koordinate; und (3) Grauton (Abweichung vom Mittelwert). Mein Problem ist, dass die Menge der Punkte nicht füllen Rechteck (und dieser Satz wird in Teilmengen aufgeteilt), so kann ich nicht so etwas verwenden (100 und 202 sind Breite und Höhe des Bildes):

m <- matrix(dataset[[3]],100,202) 
image(m) 

Gibt es eine Möglichkeit, dieses Bild ohne Umwandlung des Datensatzes direkt zu zeichnen, oder nur mit Transformation der Graustufenspalte?

+0

Machen Sie die fehlenden Werte explizit Tannen, mit z. 'tidyr :: vollständig '. Sie müssen wahrscheinlich transformieren, es sei denn, Sie verwenden stattdessen 'ggplot'. – Axeman

+0

Und wie kann ich ggplot hier verwenden? –

+1

Siehe [hier] (http://ggplot2.tidyverse.org/reference/geom_tile.html). – Axeman

Antwort

0

So dank Axeman, ist hier die Lösung: Angenommen, wir haben eine Bilddaten

> imagedata 
    V1 V2 V3 
1  0.0 49.5 -3 
2  0.0 50.0 3 
... 
333 1.5 58.0 -4 
[ reached getOption("max.print") -- omitted 10273 rows ] 

Wir haben die folgenden Möglichkeiten, es zu drucken:

library(ggplot2) 
x <- imagedata[[1]] 
y <- imagedata[[2]] 
z <- imagedata[[3]] 
df <- data.frame(x,y,z) 
ggplot(df, aes(x, y)) + geom_tile(aes(fill = z)) 

Und dieses Bild wird gezeigt werden.