我有一个关于使用以下数据创建圆点图的问题:
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轴的点图作为“day”和y轴作为每个患者,因此对于患者ID 1552,在第1,7和14天有三个点。没有问题。但是现在我想这样做,以便点大小与当天服用的剂量成比例,以便第14天的点在相同的患者ID线上大于7和1。我有什么方法可以做到这一点吗?
我知道dotchart()
函数有一个可修改的cex
元素,它可以改变y轴字体/点大小,但它会统一。有没有办法分别绘制每个点,每次根据剂量数据使点大小不同?
答案 0 :(得分:1)
我会使用ggplot2创建这样的图表:
ggplot(aes(x = day, y = patient, size = dosage), data = df) +
geom_point()
我假设带有数据的data.frame被称为df
,并且它包含名为day,patient和dose的列。
答案 1 :(得分:1)
如果你使用ggplot2
包,你可以这样做:
dat <- read.table(textConnection("ID Day Dose
1552 1 .3
1552 7 .8
1552 14 1.2
1663 1 .2
1663 7 .7
1663 18 1.4"), header=TRUE)
require(ggplot2)
p <- ggplot(dat, aes(factor(Day), factor(ID)))
p + geom_dotplot(binaxis = "y", stackdir = "center", binpositions="all") +
geom_point(aes(size=Dose))