在 r 中将 6-D 绘制为 2-D [关闭]

Posted

技术标签:

【中文标题】在 r 中将 6-D 绘制为 2-D [关闭]【英文标题】:Plot 6-D into 2-D in r [closed] 【发布时间】:2016-03-24 03:01:59 【问题描述】:

如何在具有 2 个维度的图中绘制具有 6 个维度的数据集。

我有一个包含 6 个属性和 1000 多行的数据集,用于 k-means 聚类。

现在我想在执行聚类后可视化数据。有人能给我一些关于如何解决这个问题的提示吗?谢谢。

【问题讨论】:

关于什么是最好的情节类型的问题并不是真正的编程问题。如果您需要有关数据统计可视化的建议,Cross Validated 可能是您提出问题的更好地方。如果您知道要制作什么情节但不知道如何制作它,那么这将是 Stack Overflow 的问题(特别是如果您包含 reproducible example) 或者,根据您的数据,您可以在 ggplot2 中变得时髦,并将一个 var 映射到 x,一个映射到 y,一个映射到大小、填充颜色、边框颜色、形状……或者使用 rgl 以 3D 形式进行。 是的,我知道我需要一个二维绘图,但我需要在 R 中使用什么命令是一个问题。 【参考方案1】:

pairs() 可能有用。

设置数据(非结构化,因为这样做更容易):

set.seed(101)
x <- rnorm(6000,nrow=6)
clust <- sample(1:5,size=1000,replace=TRUE)

现在绘图(gap=FALSE 是装饰性的;pch="." 使大型数据集的绘图速度更快):

pairs(x,gap=FALSE,col=clust,pch=".")

这仅向您显示二维切片(即,您可能会以这种方式错过数据中的高维结构),但总比没有好。如果你真的想可视化更高维的结构,你可以试试rggobi ...

【讨论】:

【参考方案2】:

最简单的方法是使用 PCA 将数据的维度减少到 2 或 3 维。 k-means 聚类应该为数据的每一行分配一个组,以便您可以轻松地在缩减数据集上绘制不同的组。这是一种执行 PCA 的简单方法,但您也可以执行 LLE 或其他形式的降维。

data(iris)
unique(iris$Species)
#[1] setosa     versicolor virginica
iris.pca<-princomp(iris[,c("Sepal.Length", "Sepal.Width", "Petal.Width", "Petal.Width")], center=T, scale=T)


plot(iris.pca$scores[,1], iris.pca$scores[,2], col=iris$Species)

【讨论】:

只有 6 个变量,做 PCA 减少到 2-3 维可能没有必要......

以上是关于在 r 中将 6-D 绘制为 2-D [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

绘制数据 R [关闭]

如何在 R 中绘制回归树的预测值与实际值? [关闭]

[R中具有渲染图像的3D图[关闭]

为啥行函数会关闭 R 中的路径?

在 C# 中将对象数组转换为浮点数组 [关闭]

在 SQL Server 中将身份设置为打开或关闭