Я создаю диаграмму / график Ганта с использованием geom_segment (R novice).
этот код:
timeline <- ggplot(db, aes(x=Discovery.date, y=Compound.name, label=Compound.name, colour=Compound.name))+
geom_segment(aes(xend= End.Date, y=Compound.name, yend= Compound.name), size=5)+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank())+
geom_text(hjust = 'middle', nudge_x = 6, nudge_y= 0.11, colour="black")+
labs(x= "Discovery Date",
y= "Compound Name")+
theme(axis.text.y=element_blank(),
axis.ticks.y=element_blank(),
legend.position="none")+
timeline
возвращает этот график: неправильный порядок
Когда я изменяю порядок, чтобы отразить дату обнаружения, используя этот код:
db$Compound.name <- factor(db$Compound.name, levels = c("sarkomycin",
"carzinophilin",
"mitomycin C",
"streptozocin",
"chromomycin A3",
"mithramycin",
"bleomycin",
"actinomycin D",
"doxorubicin",
"daunorubicin",
"zinostatin",
"aclarubicin",
"peplomycin",
"epirubicin HCl",
"pirarubicin",
"idarubicin HCl",
"pentostatin",
"zinostatin stimalamer",
"valrubicin",
"amrubicin HCl",
"temsirolimus"))
db $ Compound.name <- factor (db $ Compound.name, levels = rev (levels (db $ Compound.name)))
результат: правильный порядок изменяет порядок, но теряет Compound.name = pirarubicin (y = 7th сверху) и становится серым сегментом вверху. Причина:
Удалено 1 строка, содержащая отсутствующие значения (Compound.name <- c («саркомицин», «карзинофилин», «митомицин С», «стрептозоцин», «хромомицин А3», «митрамицин», «блеомицин», «актиномицин D», «доксорубицин», «даунорубицин», «циностатин», «aclarubicin», «peplomycin», «эпирубицин HCl», «пирарубицин», «идарубицин HCl», «пентостатин», «zinostatin stimalamer», «valrubicin», «amrubicin HCl», «temsirolimus») Discovery. («1954», «1956», «1958», «1960», «1961», «1961», «1962», «1964», «1972», «1975», «1976», 1981 »,« 1981 »,« 1984 »,« 1988 »,« 1990 »,« 1992 »,« 1994 »,« 1999 »,« 2002 »,« 2007 ») End.Date <- c (« 1965 », «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018», «2018»). Df <- data.frame (Compound.name, Discovery.date, End.Date))
Изменен только порядок данных, и он находится в пределах xlim.
Любая помощь или предложения будут оценены.
Образец кода: