Sorry for this - I'm new to this community and also to R (transitioning from Stata).
Here it go (please let me know if there is something missing...)
data.frame(
hr = c(0.64,0.89,0.9,0.54,0.8,0.82,0.62,
0.88,0.89,0.79,0.92,0.91,0.92,1.14,1.15,0.85,0.91,0.91,
0.81,0.98,0.99,1.2,1.37,1.36,0.7,0.89,0.92,0.95,0.99,
0.99,0.9,1.03,1.01,0.84,1.01,1.02,0.77,0.95,0.97,
0.87,0.95,0.96,0.93,1.01,1.01,1.12,0.97,0.98,1,0.99,
0.99,0.95,0.99,0.99,1.08,1.18,1.15,0.97,0.94,0.98,1.02,
1,1,1.01,0.99,0.98,1.02,1.03,1.03,0.86,0.96,0.97,
0.76,1.01,1.01,1.17,1.16,1.18,0.89,0.95,0.96,1.16,0.94,
0.93,0.95,1.01,1.03),
ll = c(0.6,0.81,0.82,0.49,0.69,0.71,0.57,
0.78,0.78,0.74,0.84,0.83,0.77,0.89,0.9,0.82,0.86,0.86,
0.78,0.91,0.92,0.97,1.03,1.01,0.64,0.78,0.81,0.84,
0.84,0.84,0.85,0.94,0.93,0.81,0.96,0.97,0.67,0.77,0.78,
0.83,0.89,0.89,0.9,0.97,0.97,0.91,0.75,0.75,0.91,0.88,
0.87,0.93,0.96,0.96,0.87,0.87,0.84,0.85,0.79,0.82,
0.96,0.92,0.92,0.93,0.9,0.89,1,1,1,0.8,0.87,0.88,
0.72,0.94,0.94,0.93,0.86,0.87,0.83,0.86,0.86,1.07,0.84,
0.83,0.9,0.94,0.94),
ul = c(0.69,0.98,1,0.59,0.93,0.96,0.68,1.01,
1.02,0.84,1.01,1,1.1,1.46,1.47,0.88,0.95,0.96,0.85,
1.04,1.06,1.49,1.84,1.83,0.77,1.01,1.04,1.07,1.16,
1.16,0.96,1.11,1.1,0.87,1.05,1.07,0.89,1.17,1.2,0.91,
1.02,1.03,0.96,1.06,1.06,1.38,1.25,1.27,1.1,1.12,1.12,
0.97,1.02,1.02,1.36,1.61,1.57,1.11,1.12,1.17,1.08,
1.09,1.08,1.08,1.09,1.08,1.05,1.07,1.07,0.91,1.06,1.06,
0.8,1.09,1.08,1.48,1.58,1.61,0.96,1.05,1.06,1.27,
1.04,1.04,1.01,1.1,1.11),
Cancer = as.factor(c("Oropharynx",
"Oropharynx","Oropharynx","Larynx","Larynx","Larynx",
"Esophagus","Esophagus","Esophagus","Stomach",
"Stomach","Stomach","Small intestine","Small intestine",
"Small intestine","Colon","Colon","Colon",
"Rectal","Rectal","Rectal","Anus","Anus","Anus",
"Liver","Liver","Liver","Gallbladder","Gallbladder",
"Gallbladder","Pancreas","Pancreas","Pancreas",
"Lung","Lung","Lung","Heart, Mediastinum and Pleura",
"Heart, Mediastinum and Pleura",
"Heart, Mediastinum and Pleura","Myeloma","Myeloma","Myeloma","Skin",
"Skin","Skin","Peritoneum","Peritoneum",
"Peritoneum","Soft Tissue","Soft Tissue","Soft Tissue",
"Breast","Breast","Breast","Vulva","Vulva","Vulva",
"Cervical","Cervical","Cervical","Endometrium",
"Endometrium","Endometrium","Ovary","Ovary",
"Ovary","Prostate","Prostate","Prostate","Kidney",
"Kidney","Kidney","Bladder","Bladder","Bladder",
"Eye","Eye","Eye","Brain","Brain","Brain",
"Thyroid","Thyroid","Thyroid","Lymph nodes","Lymph nodes",
"Lymph nodes")),
Model2 = as.factor(c("Model 1","Model 2",
"Model 3","Model 1","Model 2","Model 3","Model 1",
"Model 2","Model 3","Model 1","Model 2",
"Model 3","Model 1","Model 2","Model 3","Model 1",
"Model 2","Model 3","Model 1","Model 2","Model 3",
"Model 1","Model 2","Model 3","Model 1","Model 2",
"Model 3","Model 1","Model 2","Model 3","Model 1",
"Model 2","Model 3","Model 1","Model 2","Model 3",
"Model 1","Model 2","Model 3","Model 1",
"Model 2","Model 3","Model 1","Model 2","Model 3",
"Model 1","Model 2","Model 3","Model 1","Model 2",
"Model 3","Model 1","Model 2","Model 3","Model 1",
"Model 2","Model 3","Model 1","Model 2","Model 3",
"Model 1","Model 2","Model 3","Model 1",
"Model 2","Model 3","Model 1","Model 2","Model 3",
"Model 1","Model 2","Model 3","Model 1","Model 2",
"Model 3","Model 1","Model 2","Model 3","Model 1",
"Model 2","Model 3","Model 1","Model 2","Model 3",
"Model 1","Model 2","Model 3"))
)
install.packages("ggplot2")
library(ggplot2)
Code 1:
p=ggplot(data=data,
aes(x = Model2, y = hr, ymin = ll, ymax = ul ))+
geom_pointrange(aes(col=Model2))+
geom_hline(aes(yintercept =1, linetype='dashed'))+
xlab("")+
ylab("HR (95% Confidence Interval)")+
geom_errorbar(aes(ymin=ll, ymax=ul, col=Model2), width=0.2, cex=0.2)+
facet_wrap(Cancer~.,strip.position="left", nrow=27, scales = "free_y") +
theme(plot.title=element_text(size=8,face="bold"),
axis.text.y=element_text(hjust = 0.2, size = 4),
axis.text.x=element_text(hjust = 0.2, size = 4),
axis.ticks.y=element_blank(),
axis.title.y = element_blank(),
#axis.title.x = element_blank(),
panel.background = element_blank(),
strip.text.y = element_text(size=8, hjust=0,vjust = 1,angle=90,face="bold"))+
theme_minimal()+
theme(legend.position = "none")+
print(ggtitle("Minimally processed food"))+
coord_flip()
ggsave (p,file='ggforest_N1.pdf', width = 8, height=15, dpi=300)
code 2:
p=ggplot(data=data,
aes(x = Model2, y = hr, ymin = ll, ymax = ul, size=5 ))+
geom_pointrange(aes(col=Model2), size=0.2, shape=1)+
geom_hline(aes(yintercept =1, linetype='dotted'))+
xlab("")+
ylab("HR (95% Confidence Interval)")+
geom_errorbar(aes(ymin=ll, ymax=ul, col=Model2), width=0.2, cex=0.2)+
facet_wrap(Cancer~.,strip.position="left", nrow=27, scales = "free_y") +
theme_minimal()+
theme(plot.title=element_text(size=6,face="bold"),
axis.text.y=element_text(hjust = 0.2, lineheight = 0.2, size = 4),
axis.text.x=element_text(hjust = 0.2, size = 4),
panel.background = element_blank(),
panel.spacing.y = unit(0.5, "null"),
strip.text.y = element_text(size=4, hjust=0,vjust = 1,angle=90,face="bold"))+
theme(legend.position = "none")+
print(ggtitle("Minimally processed food"))+
coord_flip()