如何可视化3D密度函数?


19

图形化显示3D密度函数的最佳方法是什么?如我想可视化 ?

ž=FXÿXÿ

没必要,但是R代码会很棒。


3
我将其更改为更加统计。

1
如果这些选项缺少某些内容,那么可以指定它是什么以及您的需求是什么,这将对您很有帮助,以便我们找到一种更适合他们的可视化效果。
gung-恢复莫妮卡

1
这些已经足够确定,但是我还有其他选择

3
@nico,即使更改之前,我也不认为这会偏离主题/更适合SO。代码请求被指定为可选,&data-visualization是我们任务的一部分。
gung-恢复莫妮卡

1
@whuber,最初的问题只是“可视化3D数据集”(您可以在编辑历史记录中看到它)。尽管您的观点显然是正确的,但我认为这是话题。
gung-恢复莫妮卡

Answers:


25

好吧,我想到了四种可能的方法(尽管我确信还有更多方法),但是基本上您可以将数据绘制为透视图,轮廓图,热图,或者如果您更喜欢3-D散点图图(当您具有所有对的值时,或多或少是透视图。这是每对的一些示例(来自中的众所周知的3-D数据集):žXÿR

在此处输入图片说明 在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

这是另外两个具有比以前给定的绘图功能更好的绘图功能的绘图。 在此处输入图片说明 在此处输入图片说明 因此,取决于您的偏好,将决定您希望以哪种方式可视化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")

那个热图令人眼花。乱。
gung-恢复莫妮卡

@Gung,(或真的有人),您是否知道是否要添加一个边栏来告诉热图颜色对应的值?那当然是使用image命令。

3
我认为您希望该image.plot()命令添加一个颜色条。同样,filled.contour()生成一个相似的图,默认情况下添加一个颜色条。
2013年


2
当我们在这里时,我只是指出,您可以根据需要自定义调色板...最简单(但可能不是最好)的方法是使用colorRampPalette(),例如,如果键入a = colorRampPalette(c('dark blue','blue','light blue','yellow','orange', 'red','dark red'))它会创建一个函数a生成通过这些颜色的颜色连续体的离散近似值。争论a是一个整数,它确定此离散近似的分辨率。
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.