R matplot的ggplot版本

R matplot的ggplot版本,r,ggplot2,R,Ggplot2,我一直在研究数据集的数据可视化 我发现了一个基线图版本,可以让我直观地看到治疗前后的效果 我想知道这个情节是否有ggplot版本 > dput(data) structure(list(ID = c("far001", "far002", "far003", "far004", "far005", "far006", "far007", "far008", "far009", "far010"), HBA1Cpre = c(7, 8, 7.5, 9, 8.1, 7.9, 7.3

我一直在研究数据集的数据可视化

我发现了一个基线图版本,可以让我直观地看到治疗前后的效果

我想知道这个情节是否有ggplot版本

> dput(data)
structure(list(ID = c("far001", "far002", "far003", "far004", 
"far005", "far006", "far007", "far008", "far009", "far010"), 
    HBA1Cpre = c(7, 8, 7.5, 9, 8.1, 7.9, 7.3, 7.4, 7.8, 7.1), 
    HBA1Cpost = c(6.5, 6.6, 6.8, 7, 6.3, 6.9, 6.7, 7.1, 7, 6.5
    )), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"
))

这里有两种方法

1使用geom_段指定每个点的起点和终点,起点为geom_点,终点为另一个geom_点

library(ggplot2)
ggplot(data, aes(x = "HBA1Cpre", xend = "HBA1Cpost",
                 y = HBA1Cpre, yend = HBA1Cpost)) +
  geom_segment() +
  geom_point() +
  geom_point(aes(x = "HBA1Cpost", y = HBA1Cpost)) +
  scale_x_discrete(limits = c("HBA1Cpre", "HBA1Cpost"))
2做一点重塑,将数据放在更长的形式,然后将时间状态映射到x。这里有一个额外的步骤,使时间状态成为一个因素,因此它可以以非字母顺序显示。也可以通过像上面那样操纵scale_x_离散来实现

library(dplyr)
data %>%
  pivot_longer(-ID, names_to = "time", values_to = "val") %>%
  mutate(time = factor(time, levels = c("HBA1Cpre", "HBA1Cpost"))) %>%
  ggplot(aes(x = time, y = val, group = ID)) +
  geom_line() +
  geom_point()
library(dplyr)
data %>%
  pivot_longer(-ID, names_to = "time", values_to = "val") %>%
  mutate(time = factor(time, levels = c("HBA1Cpre", "HBA1Cpost"))) %>%
  ggplot(aes(x = time, y = val, group = ID)) +
  geom_line() +
  geom_point()