按颜色组在packcircle函数中生成的分组图

按颜色组在packcircle函数中生成的分组图,r,plot,ggplot2,circle-pack,R,Plot,Ggplot2,Circle Pack,我想创建一个类似于此的绘图,其中每个点表示特定类型的唯一数据点(例如红色组或蓝色组),每个组的点形成一个圆形 到目前为止,我使用R中的packcircles函数实现了这一点: 如何将不同的颜色“组合”在一起?因为我使用的是packcircle函数,所以圆是从圆心开始画的,然后向外螺旋,所以点的排序确实会对它们进行分组,但我更希望类似于我上面提供的示例 这是我用来生成绘图的代码 library(packcircles) library(ggplot2) library(plyr) librar

我想创建一个类似于此的绘图,其中每个点表示特定类型的唯一数据点(例如红色组或蓝色组),每个组的点形成一个圆形

到目前为止,我使用R中的packcircles函数实现了这一点:

如何将不同的颜色“组合”在一起?因为我使用的是packcircle函数,所以圆是从圆心开始画的,然后向外螺旋,所以点的排序确实会对它们进行分组,但我更希望类似于我上面提供的示例

这是我用来生成绘图的代码

library(packcircles)
library(ggplot2)
library(plyr)
library(dplyr)
样本数据

data <- data.frame(group=paste("Group", letters[1:4]), value=rep(1,100))
data <- data[order(data$group), ]

提前谢谢

我认为这样做的方法实际上是在将包装与数据绑定之前,按照您想要的轴进行排序。与您的做法相同,但订购沿x方向的包装:

packing <- circleProgressiveLayout(data$value, sizetype = "area")
packing <- packing[order(packing$x),]
id <- data$group
packing <- cbind(id,packing)
dat.gg <- circleLayoutVertices(packing, idcol=1, xysizecols=2:4, npoints=1)
打包
ggplot() + 
geom_point(data = dat.gg, aes(x,y, colour=factor(id))) +
           theme_minimal()  +
           theme(legend.position="none",
                 panel.grid.major=element_blank(),
                 panel.grid.minor=element_blank(),
                 axis.text=element_blank())
packing <- circleProgressiveLayout(data$value, sizetype = "area")
packing <- packing[order(packing$x),]
id <- data$group
packing <- cbind(id,packing)
dat.gg <- circleLayoutVertices(packing, idcol=1, xysizecols=2:4, npoints=1)
packing <- circleProgressiveLayout(data$value, sizetype = "area")
packing$theta <- atan2(packing$y,packing$x)
packing <- packing[order(packing$theta),]
id <- data$group
packing <- cbind(id,packing)
dat.gg <- circleLayoutVertices(packing, idcol=1, xysizecols=2:4, npoints=1)

ggplot() + 
  geom_point(data = dat.gg, aes(x,y, colour=factor(id))) +
  theme_minimal()  +
  theme(legend.position="none",
        panel.grid.major=element_blank(),
        panel.grid.minor=element_blank(),
        axis.text=element_blank())