我碰到这个真棒和相对简单的包在这里看到 ,它可以创建极坐标形式美丽的标准化叠置条曲线像这样 。 我希望创建一个类似的情节,但这不是规范化的,而是可以将原始值作为输入。 在他的博客上,他表示有人制作了他的代码的非规范化版本,可以生成如下图: 这几乎就是我所需要的,但是我无法弄清楚如何 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我想做一个圆形堆叠条 plot ,其中组是YEAR
,每个观察的值是count
。
观察值是ORIGEN
和FROM
列。 因此,每个ORIGEN
必须包含每个“ FROM
”观察结果,例如,来自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 中制作图形,因为出现错误。
谢谢
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.