如何使用ggplot绘制R中四个变量的趋势?

时间:2017-11-19 04:38:38

标签: r ggplot2

我有一个数据集记录了四个不同时间点的肿瘤大小(每行是一名患者)。我想对这个数据集进行分析,以显示所有患者的总体情况,每个时间点后肿瘤大小都在减少。

我可以做什么样的分析?我应该如何使用ggplot来显示这些数据并显示趋势?非常感谢!

SUBJECTID   Baseline    1   2   3

1001        88          78  30  14
1002        29          26  66  16
1003        50          64  54  46
1004        91          90  99  43
1005        98          109 60  42
1007        100         100     54
1008        45          49  47  32
1009        75          66  57  7
1010        60          52  20  3
1011        68          68  56  47
1012        78          84  56  57
1013        71          70  8   5
1015        79          50  11  3
1016        73          60  57  36
1017        54          27  16
1018        50          37  33  26
1019        115         68  33  67
1021        63          55  0   0
1022        98          91  76  75
1024        76          76      0
1025        47          45  42  42
1026        32          25  14  0
1027        40          37  65  
1028        60          110 110 0

2 个答案:

答案 0 :(得分:2)

box plot可能有用。请尝试以下方法:

library(tidyverse)

df %>% 
  gather(key = "time", value = "tumor_size", -SUBJECTID) %>% 
  ggplot(aes(time, tumor_size)) +
  geom_boxplot() +
  labs(title = "Tumor Size ~ Time",
       subtitle = "Insert subtitle if you want",
       caption = "Insert caption if you want",
       x = "Time",
       y = "Tumor Size (insert unit)") +
  theme_bw() +
  theme(
    panel.grid.major.x = element_blank(),
    text = element_text(family = "Palatino"),
    plot.title = element_text(face = "bold", size = 20)
  )

enter image description here

如果您愿意,也可以添加geom_jitter()。在geom_boxplot() +行之后,添加:

geom_jitter(width = 0.1, pch = 21, fill = "grey") +

你会得到这样的东西:

enter image description here

答案 1 :(得分:0)

为了显示每个时间点后整体肿瘤大小正在减少,您通常需要在每个时间范围后的平均肿瘤大小。绘制比每个元素都容易得多。我已经写了如何使用前四行执行此操作,生成点图:

Django-project
    common-utils
       utils.py
    app1
       app1-code
       utils-specific-for-app1
    app2
       app2-code
       utils-specific-for-app2

点图:

Dot Graph

就要做什么分析而言,我无法回答这个问题。这取决于你想要它的样子。我所做的是表达数据的最基本方式。您可能需要使用柱形图,条形图,折线图等。这取决于您的个人偏好。在使用ggplot方面,您可以使用以下许多不同的示例:https://www.rstudio.com/wp-content/uploads/2015/03/ggplot2-cheatsheet.pdf