R 绘图以可视化a)多年来的集群大小b)集群之间的移动
作为kmean聚类的结果,我在几年内将人员分配到不同的聚类中。 请参阅代码中的一个小示例R 绘图以可视化a)多年来的集群大小b)集群之间的移动,r,plot,graphics,R,Plot,Graphics,作为kmean聚类的结果,我在几年内将人员分配到不同的聚类中。 请参阅代码中的一个小示例 df <- data.frame( personID = c(1,2,3,4,5,6,7,8,9,10), cluster2008 = c(1,1,2,2,2,2,2,2,3,3), cluster2009 = c(1,1,1,2,2,3,3,2,3,3), cluster2010 = c(1,1,3,3,1,1,1,2,2,2) ) df这里是使用tidyverse和gg软件包的尝试 libra
df <- data.frame(
personID = c(1,2,3,4,5,6,7,8,9,10),
cluster2008 = c(1,1,2,2,2,2,2,2,3,3),
cluster2009 = c(1,1,1,2,2,3,3,2,3,3),
cluster2010 = c(1,1,3,3,1,1,1,2,2,2)
)
df这里是使用tidyverse
和gg
软件包的尝试
library( tidyverse )
library( ggalluvial )
#prepare data for plotting
plotdata <- df %>%
#melt data to long
pivot_longer( cols = starts_with("cluster") ,
names_to = "year",
names_pattern = "^cluster(.*)",
values_to = "cluster" ) %>%
#alter plot columns
mutate( cluster = as.factor( cluster ), #clusters are discrete
weight = 1 )#each person counts as 1
ggplot(plotdata,
aes(x = year, stratum = cluster, alluvium = personID, y = weight,
fill = cluster, label = cluster)) +
geom_flow() +
geom_stratum( alpha = .5 ) +
geom_text(stat = "stratum", size = 3) +
#theme(legend.position = "none") +
ggtitle("movement over clusters")
库(tidyverse)
图书馆(GG)
#为绘图准备数据
绘图数据%
#将数据融化为长数据
pivot_更长(cols=以(“集群”)开始),
名称_to=“年”,
名称\u pattern=“^cluster(.*)”,
值_to=“cluster”)%%>%
#改变绘图列
变异(簇=因子(簇),#簇是离散的
体重=1)#每人计1
ggplot(绘图数据、,
aes(x=年,地层=簇,冲积层=人形,y=重量,
填充=簇,标签=簇)+
geom_流()+
geom_地层(α=0.5)+
几何图形文字(stat=“地层”,尺寸=3)+
#主题(legend.position=“无”)+
ggtitle(“集群上的移动”)