用于可视化人对之间的相似性/不相似性的软件解决方案

时间:2013-08-30 15:12:15

标签: visualization data-visualization

我计算了任意两对〜1200人之间的相似性/相异性,范围为0-1。

我想在X-Y平面上想象这些关系。是否有任何软件工具可以采用这些关系,并使人们彼此接近并且彼此相近并且远离每个具有高度相异性的人?

1 个答案:

答案 0 :(得分:2)

您需要使用Multidimensional Scaling。目标是确定数据的转换,以表示2维中线性距离的相似性的相对差异。您将需要使用经典或基于指标的缩放。

以下是R:

的示例

MDS Plot

代码相当简单。该magick全部在cmdscale,并使用vegdistcmdscale创建距离矩阵。然后,您可以使用R或将数据导出到其他位置以进行可视化。

## load libraries
library(ggplot2) # for charting
library(vegan) # for jaccard

## simulate some data - 1200 rows, 5 features/cols/fields
features <- matrix(abs(rnorm(1200*5)),ncol=5)
rownames(features) <- paste("P", seq(1:1200), sep="")

## calculate jaccard distances
d <- vegdist(features, method = "jaccard")

## Multidimensional Scaling
fit <- cmdscale(d,eig=TRUE, k=2)

# prepare the data for plotting
mds <- data.frame(
  x    = fit$points[,1],
  y    = fit$points[,2],
  name = rownames(features))

# plot
ggplot(mds, aes(x=x,y=y,label=color=name)) + geom_text(size=1)

## bonus visualization! - a dendrogram
fit <- hclust(d, method="ward")
plot(fit)