如何在R中的dotchart()中改变点大小

时间:2012-06-13 12:50:35

标签: r charts size vary

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

    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轴字体/点大小,但它会统一。有没有办法分别绘制每个点,每次根据剂量数据使点大小不同?

2 个答案:

答案 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))

enter image description here