Reputation: 2253
I am making a plot in ggplot, and when I add the geom_line()
layer it includes 2 lines instead of one. Can anyone help me understand why it's doing this?
Code:
library(ggplot2)
a <- data.frame(SubjectId=c(1:3, 1:3, 1:3, 1:3),
Cycle=c(1,1.1,1.2, 2,2.1,2.2, 3,3.1,3.2, 4,4.1,4.2),
Dose=c(sort(rep(1:3,3)), 3,3,3),
DLT=c("No","No","Yes","No","No","No","No","Yes","Yes","No","Yes","Yes"))
ggplot(aes(x=Cycle, y=Dose, fill=DLT), data = a) +
scale_fill_manual(values = c("white", "black")) +
geom_line(colour="grey20", size=1) +
geom_point(shape=21, size=5) +
xlim(1, 4.5) +
ylim(1, 4) +
ylab("Dose Level") +
theme_classic() +
theme(axis.text =element_text(size=10),
axis.title =element_text(size=12, face="bold", colour="grey20"),
legend.text =element_text(size=10),
legend.title=element_text(size=12, face="bold", colour="grey20"))
I just want one line to go through the points in order of Cycle, but sorting a by Cycle doesn't change the line at all. What am I doing wrong?
Upvotes: 2
Views: 61
Reputation: 2253
put fill=DLT
in the geom_point() section, not at the top. Eg:
ggplot(aes(x=Cycle, y=Dose), data = a) +
scale_fill_manual(values = c("white", "darkred")) +
geom_line(colour="grey20", size=1) +
geom_point(shape=23, size=5, aes(fill=DLT)) +
xlim(1, 4.5) +
ylim(1, 4) +
ylab("Dose Level") +
theme_classic() +
theme(axis.text =element_text(size=10),
axis.title =element_text(size=12, face="bold", colour="grey20"),
legend.text =element_text(size=10),
legend.title=element_text(size=12, face="bold", colour="grey20"))
Upvotes: 2