0

I have created a dummy dataframe representative of my data-

SQ     AgeGroup       Prop    LCI      UCI
2010-1  0 to 18        4.3    4.2      4.4
2010-1  19 to 25       5.6    5.3      5.6
2010-1  26 and over    7.8    7.6      7.9
2010-2  0 to 18        4.1    3.9      4.2
2010-2  19 to 25       5.8    5.6      5.9
2010-2  26 and over    8.1    7.9      8.3
2010-3  0 to 18        4.2     4       4.4
2010-3  19 to 25       5.5    5.2      5.6
2010-3  26 and over    7.6    7.4      7.7
2010-4  0 to 18        3.9    3.6      4.1
2010-4  19 to 25       5.2    5        5.4
2010-4  26 and over    7.4    7.2      7.6
2011-1  0 to 18        4.3    4.1      4.5
2011-1  19 to 25       5.7    5.5      5.8
2011-1  26 and over    8.2    8        8.3
2011-2  0 to 18        4.1    4        4.5
2011-2  19 to 25       5.7    5.5      5.9
2011-2  26 and over    8.2    8        8.4
2011-3  0 to 18        4.4    4.2      4.6
2011-3  19 to 25       5.7    5.5      7.9
2011-3  26 and over    8.2    8        8.4

which creates an image that looks like this- enter image description here

I have used the following code-

library(readxl)
library(dplyr)
library(epitools)
library(gtools)
library(reshape2)
library(binom)
library(pivottabler)
library(readxl)
library(phecharts)
library(ggplot2)
library(RODBC)
rm(list=ls())

df<-read_xlsx("Dummydata.xlsx")

pd<-position_dodge(width=0.3)
limits <- aes(ymax =df$UCI , ymin = df$LCI)
p<-ggplot(df, aes(x = SQ, y =Prop, group=AgeGroup, colour= AgeGroup)) +
  geom_line(position=pd)+
  geom_point(size=2.0, position=pd)+
  geom_errorbar(limits, width = 0.55, size=0.4, position= pd)+
  labs(
    y = "Percentage",
    x = "Study Quarter")


p<-p + 

  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))+
  scale_y_continuous(name="Percentage",breaks=c(0,2,4,6,8,10),limits=c(0,10))+#limits need to change with every pot

  scale_fill_manual(values = pal)+
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1,size=16))+
  theme(axis.text.y=element_text(size=16))+
  theme(legend.text = element_text(size=18))+

  theme(legend.title=element_text(size=16))+
  theme(legend.title=element_blank())+
  theme(legend.position="bottom")+
  theme(axis.title = element_text(size=22))



p + geom_vline(xintercept = c(2,4,6), linetype="dotted", 
               color = "black", size=1.0, show.legend = TRUE)

However, what I want is that the three geom lines should have a lable (L1, L2 and L3) at the top of each of these lines and a separate legend at the bottom where I can add what these lines stand for. Something like this-

L1: Launch of x
L2: Launch of y
L3: Launch of z

Can someone please help with this?

HM8689
  • 143
  • 1
  • 1
  • 10
  • [This](https://stackoverflow.com/a/50240153/786542) will help with the legend part. For the text, you can use either `geom_text` or `annotate` with the correct x- and y- coordinates – Tung Sep 18 '18 at 17:44
  • Please share your data and the code you're working on so others can help. See more here [How to make a great R reproducible example?](https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) – Tung Sep 18 '18 at 17:45
  • Including the output of `dput(df)` will make it easiest for others to bring in your data. – Jon Spring Sep 18 '18 at 17:54

0 Answers0