2017-04-21 5 views
0

Ich habe ein Dataset, in dem jede Zeile einem x-, y- und z-Wert entspricht.3D-Konturen auf Streudiagramm zeichnen

Ich möchte ein 2D-Streudiagramm der Variablen x und y erstellen und die 2D-Konturen des dreidimensionalen Raumes überlagern.

habe ich versucht, die folgenden:

load("https://www.dropbox.com/s/ya5g2n47al2cn1j/df.Rdata?dl=0") 
df <- as.data.frame(df) 
ggplot(data=df, aes(x=df$x,y=df$y,color=df$z))+ 
    geom_point()+ 
    geom_contour(aes(z=df$z)) 

aber ich die Warnmeldung erhalten:

Warning message: 
Not possible to generate contour data 

Gibt es eine Möglichkeit, dies zu tun? Die meisten Beispiele, die ich verwenden Online-ähnliche Daten von x finden konnten, y, z Form

Hier ist, wie die Daten aussehen:

> head(df) 
      x   y    z 
1 0.15395671 0.1548728 -9.622222e-02 
2 0.18148413 0.1554308 -1.091111e-01 
3 0.07870902 0.1538021 -2.911111e-02 
4 0.13514970 0.1134729 -1.133333e-01 
5 0.03504008 0.1053258 4.222222e-03 
6 0.02161680 0.1140364 -1.110223e-16 
+0

können zeigen Ihnen, was die df aussieht wie ein paar Zeilen angezeigt, so dass es klar ist, was die Daten wie diese Art könnte helfen, sieht –

+1

ich die Frage – tzi

Antwort

2

Ich denke, Ihre Daten können nicht einen Wert von z für jede mögliche Kombination von x haben und y-Werte; Sie könnten keine Matrix haben, die "x" Zeilen und "y Spalten ist und einen Wert von z bei jedem Index haben, Sie hätten Lücken. Sie können jedoch immer noch mit geom_density_2d() bekommen, was Sie wollen. Angesichts Ihrer Beispieldaten oben:

x<-c(0.15395671, 0.18148413, 0.07870902, 0.1351497, 0.03504008, 0.0216168) 
y<-c(0.1548728, 0.1554308, 0.1538021, 0.1134729, 0.1053258, 0.1140364) 
z<-c(-0.09622222, -0.1091111, -0.02911111, -0.1133333, 0.004222222, 0) 

xyz <- data.frame(x,y,z) 

ggplot(xyz, aes(x, y, z = z)) + geom_density_2d() 

enter image description here

+0

Dank bearbeitet, aber ich würde?. Ich würde gerne die Interpolation mit den 3D-Konturen machen. " – tzi

+0

Ich bin mir ziemlich sicher, dass du interpolieren kannst, um deine Matrix mit Werten zu füllen, aber du würdest das tun ly füllen viele Lücken zu dem Punkt, dass es nicht sinnvoll sein könnte. Das heißt, ich kenne Ihre Daten nicht! Vielleicht fehlen Ihnen nicht die vielen z-Werte für x-y-Paare. –

Verwandte Themen