我有一个关于使用以下数据创建点图的问题:
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天的点将大于7和1,在同一个患者ID线上。我有没有办法做到这一点?
我知道dotchart()函数有一个可修改的cex元素,可以改变y轴的字体/点大小,但它是统一的。有没有办法分别绘制每个点,并且每次根据剂量数据使点的大小不同?
发布于 2012-06-13 22:05:51
我将使用ggplot2创建这样一个图表:
ggplot(aes(x = day, y = patient, size = dosage), data = df) +
geom_point()其中,我假设包含数据的data.frame名为df,并且它包含名为day、patient和dosage的列。
发布于 2012-06-13 22:06:58
如果你使用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))

https://stackoverflow.com/questions/11015213
复制相似问题