我有一个关于使用以下数据创建点图的问题:
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 的列。