在R中绘制标称数据簇
假设我们有7个类别(例如宗教),我们希望不以线性方式绘制它们,而是以自动选择的集群进行排列。在这里,组内的个体有相同的反应,但不应绘制在一行上(绘制顺序数据时会发生这种情况) 总而言之:在R中绘制标称数据簇,r,R,假设我们有7个类别(例如宗教),我们希望不以线性方式绘制它们,而是以自动选择的集群进行排列。在这里,组内的个体有相同的反应,但不应绘制在一行上(绘制顺序数据时会发生这种情况) 总而言之: 自动使用可用的图形空间 无顺序分组,分布在画布上 个人仍然可见;没有重叠 如果团队中的个人被某个(无形的)圈子所束缚,那就太好了 是否有专门为此目的设计的包装?我需要查找哪些关键字 示例数据: religion <- sample(1:7, 100, T) # No overlap here, but
- 自动使用可用的图形空间
- 无顺序分组,分布在画布上
- 个人仍然可见;没有重叠
- 如果团队中的个人被某个(无形的)圈子所束缚,那就太好了
religion <- sample(1:7, 100, T)
# No overlap here, but I would like to see the group part come out more.
plot(religion)
在链接的图像中,每个点都有三个关联的数字:坐标x和y以及组(颜色)。如果每个人只有一个信息,可以执行以下操作:
set.seed(1)
centers <- data.frame(religion=1:7, cx=runif(7), cy=runif(7))
eps <- 0.04
data <- within(merge(data.frame(religion=sample(1:7, 100, T)), centers),
{
x <- cx+rnorm(length(cx),sd=eps)
y <- cy+rnorm(length(cy),sd=eps)
})
with(data, plot(x,y,col=religion, pch=16))
set.seed(1)
中心将坐标分配给每组的中心后,
您可以使用wordcloud::textplot
避免标签重叠
# Data
n <- 100
k <- 7
religion <- sample(1:k, n, TRUE)
names(religion) <- outer(LETTERS, LETTERS, paste0)[1:n]
# Position of the groups
x <- runif(k)
y <- runif(k)
# Plot
library(wordcloud)
textplot(
x[religion], y[religion], names(religion),
xlim=c(0,1), ylim=c(0,1), axes=FALSE, xlab="", ylab=""
)
不清楚您想要实现什么目标。我以为我知道,但示例数据让我困惑。请把示例图放进去。@Tomas是这样的,没有中间的线,我想仅仅链接没有数据和解释的图是不够的@托马斯把每个点都想象成一个个体,并用颜色来代表不同的宗教。@托马斯我想得到一个类似的图形,在个体之间没有线条,基于示例“数据”。令人困惑的是,一个生成随机图的答案比另一个生成随机图的答案多4票(而且不需要加载一堆外部代码来完成)。+1来补偿。谢谢,但我必须承认文森特的回答看起来更专业:-)非常感谢,这是很大的帮助。
library(igraph)
A <- outer( religion, religion, `==` )
g <- graph.adjacency(A)
plot(g)
plot(minimum.spanning.tree(g))