首页 > 编程问答 >使用 R 生成寿命图

使用 R 生成寿命图

时间:2024-07-27 05:50:52浏览次数:14  
标签:python r plot

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


library(ggplot2)
library(dplyr)

# 创建示例数据
df <- data.frame(
  Cell = c(rep(1, 9), rep(2, 9), rep(3, 8)),
  Generation = c(1:9, 1:9, 1:8),
  Doubling_time = c(40, 70, 80, 100, 100, 80, 90, 70, 190, 50, 90, 100, 90, 80, 160, 250, 170, 170, 60, 100, 100, 150, 100, 130, 120, 450)
)

# 计算累积加倍时间
df <- df %>%
  group_by(Cell) %>%
  mutate(Cumulative_time = cumsum(Doubling_time))

# 创建寿命图
ggplot(df, aes(x = Cumulative_time, y = Generation, group = Cell)) +
  geom_line(aes(color = factor(Cell))) +
  geom_point(aes(color = factor(Cell)), size = 3) +
  labs(x = "时间(分钟)", y = "代", color = "细胞") +
  theme_classic()

这将创建一个寿命图,其中:

  • x 轴 表示每个细胞的累积加倍时间(分钟)。
  • y 轴 表示世代数。
  • 每条线 代表一个不同的细胞。
  • 每条线上的点 代表细胞分裂的事件。

你可以通过调整 ggplot2 中的参数来定制绘图的外观,例如颜色、线条类型和主题。

其他提示:

  • 你可以按照你的喜好更改轴标签。
  • 你可以添加图例标题或完全删除图例。
  • 你可以探索 ggplot2 中的不同主题以更改绘图的外观。

我希望这有帮助!如果你有任何其他问题,请告诉我。

标签:python,r,plot
From: 78799974

相关文章

  • isinstance() arg 2 必须是类型、类型元组或联合
    我在尝试训练模型时收到一条错误消息,但出于某种原因,每次更改模型时它都会给我相同的消息。以下是代码:#Definetrainingargumentstraining_args=TrainArgument(output_dir="bert_results",num_train_epochs=3,per_device_train_batch_size=8,per_......
  • 使用 Selenium 时的 WebDriver 错误错误:OSError: [WinError 193] %1 不是有效的 Win32
    我正在使用文档中的代码:https://pypi.org/project/webdriver-manager/#use-with-chrome安装并升级所有软件包并运行下面的代码后:fromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServiceasChromeServicefromwebdriver_manager.......
  • Python griddata() 和 Matlab griddata():某些网格点的结果不同
    在将一些(相当大的物理)Matlab代码转换为Python时,我偶然发现了这种情况。当对相同的二维离散数据进行插值时,Python/Scipy的griddata()函数给出的结果与Matlab的对应函数不同。griddata()Matlab示例代码:Python示例代码:%Samplepoints(x,y):7x5=3......
  • 为什么存在 re._compile?
    这是re.compile:>>>importre,inspect>>>print(inspect.getsource(re.compile))defcompile(pattern,flags=0):"Compilearegularexpressionpattern,returningaPatternobject."return_compile(pattern,......
  • Ebay Python SDK 仅在特定项目类别上返回错误
    我在一个项目中使用ebaySDK一段时间了。最近我尝试导入一些商品,例如手表、手机壳等...并且我使用了eBay自己通过eBay返回的英国商店页面上的类别ID他们的“get_category_suggestions”API端点,但eBay似乎有选择地决定拒绝某些项目并引发服务器错误!为了测试,我做了......
  • 使用特定的Python版本(MacOS)制作virtualenv
    我安装了brew,python3(默认和最新版本)和pip3,pyenv。TensorFlow现在不支持python3.7,所以我听说我应该制作一个独立运行3.6或更低版本的virtualenv。我安装了python3.6.7bypyenvinstall3.6.7但无法制作virtualenv-p3.6.7(mydir)因为3.6.7不在P......
  • 使用Python去除图像中的线条
    我正在尝试使用Python和cv2、numpy、skimage等从黑白图像中删除“阴影线”(如果图像中存在“阴影线”)。本质上,我的图像可以有1或2条曲线,如下例所示。但每条线都有一条1-5像素外的阴影线,需要删除。我怎样才能在Python中做到这一点?原始......
  • Python 和 OpenCV:如何裁剪半成形边界框
    我有一个为无网格表创建网格线的脚本:脚本之前:脚本之后:是否有一种简单的方法,使用OpenCV来裁剪“脚本之后”图像,使其仅包含四边边界框?示例输出:编辑:我目前正在研究一种解决方案,该解决方案可以找到垂直/水平方向的第一条/最后一条......
  • 有没有办法用 PyCharm 捕获单元测试异常?
    pythonunittest运行程序处理所有异常。我想用我的调试器捕获它们。有没有办法让我的单元测试运行程序重新引发测试异常以终止进程?我想自己处理它们。编辑:找到了解决方案。您可以创建一个unittest.TestSuite并调用debug()来运行您想要调试的测试-......
  • 如何将 Pandas Dataframe 过滤为整数值?
    我有一个包含字符串值的数据框列。我想过滤到具有整数的行。我可以执行以下操作来查找它是否是数字,但这也会返回浮点数。result=pd.to_numeric(df['col1'],errors='coerce').notnull()应该返回“1”不应返回“1.1”。如何过滤为整数(不包括漂浮)?可以使用......