制作圆形堆积条形图

问题描述

enter image description here

我想绘制一个圆形堆积条形图,其中组为 YEAR, 每个观察值的值为 count

观察值是 ORIGENFROM 列。因此,每个 ORIGEN 必须包含每个“FROM”观察,f.example,来自 HOSPITAL 的样本可能来自:ER一个特定的单位或其他地方。我希望 Hospital(或其他 ORIGEN)的每个条形图根据“FROM”(急诊室、出口等)以不同的颜色显示

我尝试了下一个,显然我失败了!

data <- isolate_from.ORIGEN %>% gather(key = "observation",value="value",-c(1,2)) 

#isolate_from.ORIGEN

# Set a number of 'empty bar' to add at the end of each group

empty_bar <- 2
nObsType <- nlevels(as.factor(data$observation))
to_add <- data.frame( matrix(NA,empty_bar*nlevels(data$YEAR)*nObsType,ncol(data)) )
colnames(to_add) <- colnames(data)
to_add$YEAR <- rep(levels(data$YEAR),each=empty_bar*nObsType )
data <- rbind(data,to_add)
data <- data %>% arrange(YEAR,FROM)
data$id <- rep( seq(1,nrow(data)/nObsType),each=nObsType)


# Get the name and the y position of each label

    label_data <- data %>% group_by(id,observation) %>% summarize(tot=sum(count))
    number_of_bar <- nrow(label_data)
    angle <- 90 - 360 * (label_data$id-0.5) /number_of_bar     # I substract 0.5 because the letter must have the angle of the center of the bars. Not extreme right(1

) or extreme left (0)
label_data$hjust <- ifelse( angle < -90,1,0)
label_data$angle <- ifelse(angle < -90,angle+180,angle)
 

# prepare a data frame for base lines

base_data <- data %>% 
  group_by(YEAR) %>% 
  summarize(start=min(id),end=max(id) - empty_bar) %>% 
  rowwise() %>% 
  mutate(title=mean(c(start,end)))
 

# prepare a data frame for grid (scales)

grid_data <- base_data
grid_data$end <- grid_data$end[ c( nrow(grid_data),1:nrow(grid_data)-1)] + 1
grid_data$start <- grid_data$start - 1
grid_data <- grid_data[-1,]

我无法在 R 中制作图形,因为出现错误

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...