Как изменить размер точки в точечной диаграмме () в R

У меня есть вопрос о создании точечной диаграммы, используя следующие данные:

    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 в качестве каждого пациента, чтобы для идентификатора пациента 1552 было три точки в дни 1, 7 и 14. Никаких проблем там нет. Но теперь я хочу сделать так, чтобы размеры точек были пропорциональны количеству дозы, принятой в тот день, чтобы точка на 14-й день была больше, чем 7 и 1 на одной и той же линии идентификации пациента. Есть ли способ, которым я могу сделать это?

Я знаю dotchart() функция имеет модифицируемый cex элемент, который изменяет размер шрифта / точки оси y, но делает это равномерно. Есть ли способ построить каждую точку отдельно и каждый раз делать размер точки разным в соответствии с данными дозы?

2 ответа

Я бы создал такую ​​диаграмму, используя ggplot2:

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

Где я предполагаю, что data.frame с данными называется dfи что он содержит столбцы с именами день, пациент и дозировка.

Если вы используете 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))

Другие вопросы по тегам