我有一个记录单个细胞寿命和生成时间的数据集,我想将其绘制如下: 示例_RLS_图 参考: https://doi.org/10.1186/s12951-022-01379-9
这是我的示例数据集:
| Cell | Generation | Doubling_time |
| -------- | ---------- |-------------- |
| 1 | 1 | 40 |
| 1 | 2 | 70 |
| 1 | 3 | 80 |
| 1 | 4 | 100 |
| 1 | 5 | 100 |
| 1 | 6 | 80 |
| 1 | 7 | 90 |
| 1 | 8 | 70 |
| 1 | 9 | 190 |
| 2 | 1 | 50 |
| 2 | 2 | 90 |
| 2 | 3 | 100 |
| 2 | 4 | 90 |
| 2 | 5 | 80 |
| 2 | 6 | 160 |
| 2 | 7 | 250 |
| 2 | 8 | 170 |
| 2 | 9 | 170 |
| 3 | 1 | 60 |
| 3 | 2 | 100 |
| 3 | 3 | 100 |
| 3 | 4 | 150 |
| 3 | 5 | 100 |
| 3 | 6 | 130 |
| 3 | 7 | 120 |
| 3 | 8 | 450 |
我是 R 的超级新手,我当前的统计软件(Prism)无法处理这种类型的图。我很感谢任何包/来源的线索来帮助我生成类似的图。非常感谢!!
我尝试使用 Prism 绘制它,但它当然不如示例图那么复杂。 Prism 产生的 RLS 倍增时间 而且它也不支持数据排序/同步。很想学习如何用 R 或 Python 或任何开源工具来实现它!
不确定这是否捕获了您想要的所有内容,但这在 ggplot2 中看起来很简单。在这里,我根据这个答案制作了一个自定义重复比例。
library(tidyverse)
df <- tibble::tibble(
Cell = rep(1:3, c(9L, 9L, 8L)),
Generation = c(1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 1L, 2L, 3L, 4L, 5L, 6L,
7L, 8L, 9L, 1L, 2L, 3L, 4L, 5L, 6L, 7L, 8L),
Doubling_time = c(40L, 70L, 80L, 100L, 100L, 80L, 90L, 70L, 190L, 50L, 90L, 100L,
90L, 80L, 160L, 250L, 170L, 170L, 60L, 100L, 100L, 150L, 100L,
130L, 120L, 450L),
)
color_mapping <- rep(viridis::viridis(5),1000)
ggplot(df, aes(Doubling_time, Cell, fill = factor(Generation))) +
geom_col(orientation = "y") +
scale_fill_manual(values = color_mapping[1:n_distinct(df$Generation)])