morgan121
morgan121

Reputation: 2253

Two lines appear on my plot when there should be one

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

Answers (1)

morgan121
morgan121

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

Related Questions