在 r 中绘制或可视化群组分析(三角形)数据
Plotting or visualizating cohort analysis (triangular) data in r
考虑以下群组分析数据table:
源自此数据:
df <- structure(list(cohort = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 5L), wk = c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 1L, 2L, 1L), value = c(24L, 12L, 10L, 5L, 2L, 75L, 43L, 11L, 14L, 97L, 35L, 12L, 9L, 4L, 5L), flag = c(0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L)), .Names = c("cohort", "wk", "value", "flag"), class = "data.frame", row.names = c(NA, -15L))
有哪些方法可以在 R
中优雅地绘制此数据?
尝试 01
旋转不正确,但易于创建 - 对于那些使用上图中格式的人来说很难解释
library(ggplot2)
ggplot(df, aes(x = wk, y = cohort, fill = factor(flag))) +
geom_tile(color = "white") +
geom_text(aes(label = value), color = "white")
感谢@jeremycg 上面的评论 - 添加 scale_y_reverse()
效果非常好:
library(ggplot2)
ggplot(df, aes(x = wk, y = cohort, fill = factor(flag))) +
geom_tile(color = "white") +
geom_text(aes(label = value), color = "white") +
scale_y_reverse()
考虑以下群组分析数据table:
源自此数据:
df <- structure(list(cohort = c(1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 4L, 4L, 5L), wk = c(1L, 2L, 3L, 4L, 5L, 1L, 2L, 3L, 4L, 1L, 2L, 3L, 1L, 2L, 1L), value = c(24L, 12L, 10L, 5L, 2L, 75L, 43L, 11L, 14L, 97L, 35L, 12L, 9L, 4L, 5L), flag = c(0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L)), .Names = c("cohort", "wk", "value", "flag"), class = "data.frame", row.names = c(NA, -15L))
有哪些方法可以在 R
中优雅地绘制此数据?
尝试 01
旋转不正确,但易于创建 - 对于那些使用上图中格式的人来说很难解释
library(ggplot2)
ggplot(df, aes(x = wk, y = cohort, fill = factor(flag))) +
geom_tile(color = "white") +
geom_text(aes(label = value), color = "white")
感谢@jeremycg 上面的评论 - 添加 scale_y_reverse()
效果非常好:
library(ggplot2)
ggplot(df, aes(x = wk, y = cohort, fill = factor(flag))) +
geom_tile(color = "white") +
geom_text(aes(label = value), color = "white") +
scale_y_reverse()