Bagaimana cara memvisualisasikan fungsi kepadatan 3-D?

19

Apa cara terbaik secara grafis untuk memvisualisasikan fungsi kepadatan 3-D? Seperti pada saya ingin memvisualisasikan

z=fX,Y(x,y)
?

Tidak perlu tetapi Rkode untuk ini akan bagus.


sumber
3
Saya mengubahnya menjadi lebih statistik.
1
Jika ada sesuatu yang kurang tentang opsi-opsi itu, akan sangat membantu jika Anda dapat menentukan apa itu & apa sebenarnya kebutuhan Anda sehingga kami dapat menemukan semacam visualisasi yang mungkin lebih sesuai dengan mereka.
gung - Reinstate Monica
1
Itu sudah pasti tetapi apa pilihan saya yang lain /
3
@nico, saya tidak berpikir ini akan di luar topik / lebih cocok untuk SO bahkan sebelum perubahan. Permintaan kode ditentukan sebagai opsional, & data-visualizationmerupakan bagian dari mandat kami.
gung - Reinstate Monica
1
@whuber, pertanyaan aslinya hanya "memvisualisasikan dataset 3D" (Anda dapat melihatnya di riwayat edit). Saya menganggap itu sebagai topik, meskipun poin Anda, seperti yang dibuat, jelas benar.
gung - Reinstate Monica

Jawaban:

25

z(x,y)R

masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini

Berikut adalah dua plot tambahan yang memiliki fitur plot yang lebih bagus daripada yang diberikan sebelumnya. masukkan deskripsi gambar di sini masukkan deskripsi gambar di sini Jadi, tergantung pada preferensi Anda, Anda akan menentukan cara yang Anda inginkan untuk memvisualisasikan set data 3-D.

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

sumber
Peta panas itu membutakan.
gung - Reinstate Monica
@Ung, (atau siapa pun benar-benar) apakah Anda tahu jika ada adalah untuk menambahkan bilah samping yang memberi tahu nilai-nilai apa yang sesuai dengan warna peta panas? Itu tentu saja menggunakan perintah gambar.
3
Saya pikir Anda ingin image.plot()perintah untuk menambahkan bilah warna. Juga, filled.contour()buat plot serupa dengan bilah warna yang ditambahkan secara default.
Makro
5
Mama selalu memberitahuku untuk tidak menatap mata matahari , @GavinSimpson.
gung - Reinstate Monica
2
Sementara kita di sini, saya hanya akan menunjukkan bahwa Anda dapat menyesuaikan palet warna dengan cara apa pun yang Anda inginkan ... Cara termudah (tapi mungkin bukan yang terbaik) untuk melakukan ini adalah menggunakan colorRampPalette(), misalnya jika Anda mengetiknya a = colorRampPalette(c('dark blue','blue','light blue','yellow','orange', 'red','dark red'))membuat fungsi ayang menghasilkan perkiraan diskrit dari kontinum warna yang melewati warna-warna itu. Argumen untuk aadalah bilangan bulat yang menentukan resolusi pendekatan diskrit ini.
Makro