Как изменить размер точки в точечной диаграмме () в 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))