问题描述
我想绘制一个圆形堆积条形图,其中组为 YEAR
,
每个观察值的值为 count
。
观察值是 ORIGEN
和 FROM
列。因此,每个 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 (将#修改为@)