I have the following table:
gene.name = rep(c("MsLHCB1.1", "MsLHCA6", "MsPLGG1-A", "MsRPI3-B",
"MsRPI1-B", "MsPGK1", "MsCFBP1-A", "MsPSBTN", "MsTKL-1", "MsRCA-A",
"MsCRD1-B"),5)
tpi = c(rep(0,11), rep(1,11), rep(7, 11), rep(14, 11), rep(22, 11))
lfc = runif(55, -30, 25)
lfc.df = data.frame(gene.name, tpi, lfc)
names(lfc.df) = c("Gene.Name", "tpi", "LFC")
I want to plot these LFCs over the tpi and create a unique plot for each Gene Name factor. With the help of @ekoam, I was able to develop this funciton:
lfc.plots = function(data, title) {
ggplot(data) +
geom_bar(aes(x = tpi, y = LFC), stat = "identity") +
geom_hline(yintercept = 0, linetype = "dashed", color = "red") +
labs(title = title) +
theme_prism() +
theme_bw() +
theme(axis.ticks.y = element_line(color = "black")) + guides(y = guide_prism_minor()) +
theme(plot.title = element_text(face = "bold.italic", size = 16, family = "sans", hjust = .5)) +
theme(axis.title.x = element_blank()) +
theme(axis.text.x = element_blank()) +
theme(axis.title.y = element_text(size = 14)) +
theme(axis.text.y = element_text(size = 12)) +
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
strip.background = element_blank(),
strip.text.x = element_text(size = 16, family = "sans", face = "italic"),
panel.border = element_rect(colour = "black", fill = NA)) +
theme(plot.margin = unit(c(0.2,0.5,1.25,0.5), "cm")) +
ggtitle(title)
}
I then run this code to create a tibble of the ggplots:
result.lfc = lfc.df %>%
nest(data = -Gene.Name) %>%
mutate(plots = lapply(data, lfc.plots, Gene.Name))
While I am able to get a ggplot for each gene name, the ggtitle is the same (the first value in the Gene.Name column) and I cannot seem to get this resolved. Would anybody have any suggestions?

