1 | plot_bin_pv(alloutputs, top_pm, lgndcol = 2, legend = FALSE, pvtitle, pvyrange = NULL, savepvfile, pvpicdim)
|
alloutputs |
|
top_pm |
|
lgndcol |
|
legend |
|
pvtitle |
|
pvyrange |
|
savepvfile |
|
pvpicdim |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | ##---- Should be DIRECTLY executable !! ----
##-- ==> Define data, use random,
##-- or do help(data=index) for the standard data sets.
## The function is currently defined as
function (alloutputs, top_pm, lgndcol = 2, legend = FALSE, pvtitle,
pvyrange = NULL, savepvfile, pvpicdim)
{
require(ggplot2)
results <- alloutputs$alldist
selname0 <- alloutputs$selname
if (top_pm > length(selname0)) {
stop("top_pm should be smaller than the number of observations.")
}
df <- as.data.frame(results$pvdist)
N0 <- max(as.numeric(as.character(df$dif)))
N <- length(unique(df$dif))
df$dif <- factor(df$dif, levels = as.character(0:(N - 1)))
selname <- selname0[1:top_pm]
if (top_pm < length(selname0)) {
tt <- split(df, df$dif)
ss <- lapply(tt, function(x) {
return(x[1:top_pm, ])
})
df <- do.call("rbind", ss)
}
if (sum(is.na(df))) {
stop("Missing values exist in pvdist")
}
else {
df$dif <- as.numeric(as.character(df[, "dif"]))/N0
df$median <- as.numeric(as.character(df[, "median"]))
df$q1 <- as.numeric(as.character(df[, "q1"]))
df$q2 <- as.numeric(as.character(df[, "q2"]))
df$variable <- factor(df$variable, levels = selname)
if (is.null(pvyrange)) {
y_range <- range(floor(min(df$q1)), ceiling(max(df$q2)))
}
else {
y_range <- pvyrange
}
p <- ggplot(data = df, aes(x = dif, y = median, colour = variable,
group = variable)) + geom_line() + geom_point() +
geom_pointrange(aes(ymin = q1, ymax = q2)) + ylim(y_range) +
xlab("Proportion of exchanges") + ylab(paste("Log P-values of top",
paste(top_pm, "important hits", sep = " "), sep = " ")) +
ggtitle(pvtitle) + theme_bw() + theme(plot.title = element_text(size = 30,
face = "bold"), axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(), panel.border = element_blank(),
panel.background = element_blank(), axis.line.x = element_line(color = "black",
size = 1), axis.line.y = element_line(color = "black",
size = 1), axis.text = element_text(size = 16,
face = "bold"), axis.title = element_text(size = 20,
face = "bold"))
if (isFALSE(legend)) {
p <- p + theme(legend.position = "none")
}
else {
p <- p + guides(col = guide_legend(ncol = lgndcol)) +
theme(legend.title = element_text(size = 14),
legend.text = element_text(size = 10))
}
ggsave(filename = savepvfile, plot = p, width = pvpicdim[1],
height = pvpicdim[2])
}
return(p)
}
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.