使用 R 生成寿命图

问题描述 投票:0回答:1

我有一个记录单个细胞寿命和生成时间的数据集,我想将其绘制如下: 示例_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 或任何开源工具来实现它!

python r plot
1个回答
0
投票

不确定这是否捕获了您想要的所有内容,但这在 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)])

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.