在 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 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章