3-B yoğunluk fonksiyonu nasıl görselleştirilir?


19

3-B yoğunluk fonksiyonunu grafiksel olarak görselleştirmenin en iyi yolu nedir? Olduğu gibi ?

z=fX,Y(x,y)

Gerekli değil ama bunun için Rkod harika olurdu.


3
Daha istatistiksel olarak değiştirdim.

1
Bu seçeneklerden yoksun bir şey varsa, ne olduğunu ve tam olarak ihtiyaçlarınızın ne olduğunu belirleyebilmeniz en yararlı olacaktır, böylece onlara daha uygun olabilecek bir görselleştirme bulabiliriz.
gung - Monica'yı eski durumuna getirin

1
Bunlar yeterli ama diğer seçeneklerim

3
@nico, bunun konu dışı / değişikliklerden önce bile SO için daha uygun olacağını düşünmüyorum. Kod isteği isteğe bağlı olarak belirtildi & data-visualizationgörevimizin bir parçası.
gung - Monica'yı eski durumuna getirin

1
@whuber, asıl soru sadece "3B veri kümesini görselleştirmek" idi (düzenleme geçmişinde görebilirsiniz). Konuyla ilgili olduğunu düşünüyorum, ancak belirttiğiniz gibi açıkça doğru.
gung - Monica'yı eski durumuna getirin

Yanıtlar:


25

Akla gelen dört olası yaklaşım var (çok daha fazlası olduğundan emin olmama rağmen) ama temel olarak verileri bir perspektif grafiği, bir kontur grafiği, bir ısı haritası veya 3 boyutlu bir dağılım tercih ederseniz plot ( tüm çiftleri için değerlerine sahip olduğunuzda aşağı yukarı bir perspektif grafiğidir . Her birinin bazı örnekleri (iyi bilinen 3-B veri setinden ):( x , y )z(x,y)R

resim açıklamasını buraya girin resim açıklamasını buraya girin resim açıklamasını buraya girin resim açıklamasını buraya girin

Burada, daha önce verilenlerden daha güzel çizim özelliklerine sahip iki ek grafik var. resim açıklamasını buraya girin resim açıklamasını buraya girin Bu nedenle, tercihinize bağlı olarak, 3 boyutlu veri kümelerini hangi şekilde görselleştirmek istediğinizi belirtebilirsiniz.

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

Bu ısı haritası kör edici.
gung - Monica'yı eski durumuna getirin

@Gung, (ya da gerçekten herhangi biri), ısı haritasının renklerinin hangi değerlere karşılık geldiğini söyleyen bir yan çubuk eklemek için olup olmadığını biliyor musunuz? Bu elbette image komutunu kullanmaktır.

3
image.plot()Komutun renk çubuğu eklemesini istediğinizi düşünüyorum . Ayrıca, filled.contour()varsayılan olarak bir renk çubuğu eklenmiş benzer bir grafik oluşturur.
Makro


2
Hazır buradayken, ben sadece renk paleti istediğiniz şekilde ... kullanıyor Bunu yapmanın en kolay (ama muhtemelen en iyi) biçimini özelleştirebilirsiniz işaret edeceğiz colorRampPalette()yazarsanız örneğin a = colorRampPalette(c('dark blue','blue','light blue','yellow','orange', 'red','dark red'))bir işlevi oluşturur abu renklerin içinden geçen bir renk sürekliliğinin ayrık bir yaklaşımını oluşturur. Argümanı a, bu ayrık yaklaşımın çözünürlüğünü belirleyen bir tam sayıdır.
Makro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.