Jak wizualizować funkcję gęstości 3D?

19

Jaki jest najlepszy sposób graficznej wizualizacji funkcji gęstości 3D? Jak w chciałbym wizualizować ?

z=faX,Y(x,y)

Nie jest to konieczne, ale Rkod do tego byłby świetny.


źródło
3
Zmieniłem to, aby było bardziej statystyczne.
1
Jeśli czegoś brakuje w tych opcjach, będzie to najbardziej pomocne, jeśli możesz określić, co to jest i jakie dokładnie są twoje potrzeby, abyśmy mogli znaleźć rodzaj wizualizacji, który mógłby im lepiej pasować.
gung - Przywróć Monikę
1
Są one wystarczające, ale jakie są moje inne opcje /
3
@nico, nie sądzę, że byłoby to nie na temat / lepiej nadaje się do SO, nawet przed zmianami. Żądanie kodu zostało określone jako opcjonalne i data-visualizationjest częścią naszego mandatu.
gung - Przywróć Monikę
1
@ Whuber, pierwotne pytanie brzmiało „wizualizuj zestaw danych 3D” (możesz to zobaczyć w historii edycji). Uważam, że jest to temat, chociaż twoja uwaga, jak już powiedziano, jest wyraźnie poprawna.
gung - Przywróć Monikę

Odpowiedzi:

25

z(x,y)R

wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj

Oto dwa dodatkowe wykresy, które mają ładniejsze funkcje kreślenia niż te podane wcześniej. wprowadź opis zdjęcia tutaj wprowadź opis zdjęcia tutaj Zatem w zależności od preferencji podyktujesz sposób wizualizacji zestawów danych 3D.

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

źródło
Ta mapa cieplna jest oślepiająca.
gung - Przywróć Monikę
@ Gung (czy ktokolwiek naprawdę) czy wiesz, czy istnieje dodanie paska bocznego, który mówi, jakie wartości odpowiadają kolorom mapy cieplnej? To oczywiście za pomocą polecenia image.
3
Myślę, że chcesz, aby image.plot()polecenie dodało pasek kolorów. Ponadto filled.contour()generuje podobną działkę z barem Kolor dodano domyślnie.
Makro,
5
Mama zawsze mówiła mi, żebym nie patrzył w oczy słońca , @GavinSimpson.
Gung - Przywróć Monikę
2
Skoro już tu jesteśmy, wskażę, że możesz dostosować paletę kolorów w dowolny sposób ... Najłatwiejszym (ale prawdopodobnie nie najlepszym) sposobem na zrobienie tego colorRampPalette(), np. Jeśli wpiszesz, a = colorRampPalette(c('dark blue','blue','light blue','yellow','orange', 'red','dark red'))to utworzy funkcję aktóry generuje dyskretne przybliżenie kontinuum kolorów przechodzącego przez te kolory. Argumentem ajest liczba całkowita, która określa rozdzielczość tego dyskretnego przybliżenia.
Makro,