我有一个关于使用以下数据创建点图的问题:

    Patient ID Day Dosage of Drug (mg)
     1552        1     .3
     1552        7     .8
     1552       14    1.2
     1663        1     .2
     1663        7     .7
     1663       18    1.4

我可以创建点图,其中 x 轴为“天”,y 轴为每个患者,这样对于患者 ID 1552,在第 1、7 和 14 天有三个点。没有问题。但现在我想让点的大小与当天服用的剂量成正比,这样第 14 天的点将大于同一患者 ID 行上的 7 和 1。有什么办法可以做到这一点吗?

我知道 dotchart() 函数有一个可修改的 cex 元素,它会改变 y 轴字体/点的大小,但它的作用是一致的。有没有办法单独绘制每个点,并且每次根据剂量数据使点的大小不同?

最佳答案

我会使用 ggplot2 创建这样一个图表:

ggplot(aes(x = day, y = patient, size = dosage), data = df) +
      geom_point()

我假设带有数据的 data.frame 被称为 df ,并且它包含名为 day、patient 和 dose 的列。

10-08 03:31