Wie visualisiere ich eine 3D-Dichtefunktion?


19

Wie lässt sich eine 3D-Dichtefunktion am besten grafisch darstellen? Wie möchte ich mir vorstellen?

z=fX,Y.(x,y)

Nicht notwendig, aber RCode dafür wäre toll.


3
Ich habe es geändert, um es statistischer zu machen.

1
Wenn an diesen Optionen etwas fehlt, ist es am hilfreichsten, wenn Sie angeben, was es ist und was genau Ihre Anforderungen sind, damit wir eine Art Visualisierung finden können, die besser zu ihnen passt.
gung - Wiedereinsetzung von Monica

1
Die sind ausreichend sicher, aber was sind meine anderen Optionen /

3
@nico, ich glaube nicht, dass dies für SO off-topic / besser geeignet gewesen wäre, sogar vor den Änderungen. Die Anforderung des Codes wurde als optional angegeben und data-visualizationist Teil unseres Mandats.
gung - Wiedereinsetzung von Monica

1
@whuber, die ursprüngliche Frage war nur "Visualisieren eines 3D-Datensatzes" (Sie können es im Bearbeitungsverlauf sehen). Ich gehe davon aus, dass dies ein aktuelles Thema ist, obwohl Ihr Standpunkt klar zutreffend ist.
gung - Wiedereinsetzung von Monica

Antworten:


25

z(x,y)R

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

Hier sind zwei zusätzliche Diagramme mit besseren Diagrammfunktionen als die zuvor angegebenen. Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben Abhängig von Ihren Vorlieben bestimmen Sie also, wie Sie 3D-Datensätze visualisieren möchten.

Here is the `R` code used to generate these four mentioned plots.
library(fields)
library(scatterplot3d)

#Data for illistarition
x = seq(-10, 10, length= 100)
y = x
f = function(x, y) { r = sqrt(x^2+y^2); 10 * sin(r)/r }
z = outer(x, y, f)
z[is.na(z)] = 1

#Method 1
#Perspective Plot
persp(x,y,z,col="lightblue",main="Perspective Plot")

#Method 2
#Contour Plot
contour(x,y,z,main="Contour Plot")
filled.contour(x,y,z,color=terrain.colors,main="Contour Plot",)

#Method 3
#Heatmap
image(x,y,z,main="Heat Map")
image.plot(x,y,z,main="Heat Map")

#Method 4
#3-D Scatter Plot
X = expand.grid(x,y)
x = X[,1]
y = X[,2]
z = c(z)
scatterplot3d(x,y,z,color="lightblue",pch=21,main="3-D Scatter Plot")

Diese Heatmap ist blendend.
gung - Wiedereinsetzung von Monica

@Gung, (oder wirklich jemand) weißt du, ob es einen Seitenbalken gibt, der angibt, welchen Werten die Farben der Heatmap entsprechen? Das geht natürlich mit dem Befehl image.

3
Ich denke, Sie möchten, dass der image.plot()Befehl eine Farbleiste hinzufügt. Außerdem filled.contour()erzeugt ein ähnliches Grundstück mit einem Farbbalken standardmäßig hinzugefügt.
Makro


2
Während wir hier sind, werde ich nur darauf hinweisen, dass Sie die Farbpalette nach Belieben anpassen können. Die einfachste (aber wahrscheinlich nicht die beste) Möglichkeit, dies zu tun, besteht darin colorRampPalette(), z. B. a = colorRampPalette(c('dark blue','blue','light blue','yellow','orange', 'red','dark red'))eine Funktion zu erstellen , wenn Sie sie eingeben adas erzeugt eine diskrete Approximation eines Farbkontinuums, das durch diese Farben verläuft. Das Argument bis aist eine Ganzzahl, die die Auflösung dieser diskreten Approximation bestimmt.
Makro
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.