【问题标题】:How to Vary Dot Size in dotchart() in R如何在 R 中的 dotchart() 中改变点大小
【发布时间】:2012-06-13 12:50:35
【问题描述】:

我对使用以下数据创建点图有疑问:

    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 轴字体/点的大小,但它是一致的。有没有什么方法可以分别绘制每个点,并且每次根据 Dose 数据使点大小不同?

【问题讨论】:

  • 将向量传递给 cex 时会发生什么?

标签: r charts size vary


【解决方案1】:

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

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

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

【讨论】:

  • 天哪,效果很好。在查看了 ggplot 教程后,我稍微修改了 ggplot 并使用了 geom_point(aes(size = dose))。非常感谢!
  • 介意勾选一个答案作为正确答案吗?这样人们就会获得一些声誉,每个人都可以看到你的问题得到了解决。
【解决方案2】:

如果你使用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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-17
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多