Type Less, Plot More. Create and auto-annotated and -saved (base) plots with very little code, and write (markdown) reports easily from your R scripts.
[TOC]
MarkdownReports
allows you, to plot and save as .pdf/.png with minimal code. Labels, file-names, etc are auto-guessed from your data.
All the saved plots are automatically (but optionally) compiled into a markdown report document.
MarkdownReports
conceptually differs from .Rmd
/ Rmarkdown notebooks, in that it keeps code and reports separate:
MarkdownReports depends on:
… and provides functions for
MarkdownReports is a set of R functions that allows you to generate precise figures easily, and create clean reports in markdown language about what you just discovered with your analysis script. It helps you to:
I do exploratory data analysis as a daily routine, and I have constant interaction with all sorts of people: supervisors, collaborators, colleagues, etc.
I often have to…
For all of the above, my solution is MarkdownReports. I think its better than other solutions I found. Many of those like to combine source code with results, and many are too complex to use. Most of people I interact with are not interested in the source code, but are very keen on seeing my results from all possible angles and are asking detailed questions about the analysis.
.pdf
dynamically named (from variable names)wboxplot()
takes a list, used the variable name
to set the filename and the title, list element names
to set the x-axis labels, saves the file as variable name.pdf
(or .png
).wplot()
, wbarplot()
, wpie()
, wboxplot()
,but also wvenn()
, wvioplot_list()
,wviostripchart_list()
.Filter.and.Stats by ExpressionAnalysis.R
log_settings_MarkDown()
and the ` md.LogSettingsFromList()`functions.GeneExpression = rnorm(2000, mean = 100, sd=50);
MinExpression=125
PASS=filter_HP(GeneExpression, threshold = MinExpression)
and your report will have the summary: 30.7 % or 614 of 2000 entries in GeneExpression fall above a threshold value of: 125.
wbarplot()
natively.barplot_label()
.wplot()
.wcolorize()
from base
, gplots
and Rcolorbrewer
.wlegend(colannot$categ)
, defining colors named after the categories of your data.
colannot = wcolorize(your.annotation, ReturnCategoriesToo = T)
, which you (can) anyways use to colour data points on, say, your scatterplot.whist(rnorm(1000), vline = .5, filtercol = T)
.wplot_save_this()
or the pdfA4plot_on()
and pdfA4plot_off()
functions.You can install all of them directly from GitHub via devtools with one R command:
# install.packages("devtools"); # If you don't have it.
require("devtools")
# Install dependencies
devtools::install_github(repo = "vertesy/Stringendo", upgrade = F)
devtools::install_github(repo = "vertesy/CodeAndRoll2", upgrade = F)
devtools::install_github(repo = "vertesy/ReadWriter", upgrade = F)
devtools::install_github(repo = "vertesy/MarkdownHelpers", upgrade = F)
# Install MarkdownReports
devtools::install_github(repo = "vertesy/Markdownreports", upgrade = F)
…then simply load the package:
require("MarkdownReports")
Alternatively, you simply source it from the web. This way function help will not work, and you will have no local copy of the code on your hard drive.
source("https://raw.githubusercontent.com/vertesy/MarkdownReports/master/R/MarkdownReports.R")
If you encounter a bug, something doesn’t work or unclear, please let me know by raising an issue on MarkdownReports – Please check if it has been asked.
(of connected functions)
flowchart LR
wviostripchart_list(wviostripchart_list) --> ww.dev.copy(ww.dev.copy)
wvioplot_list(wvioplot_list) --> ww.dev.copy(ww.dev.copy)
wstripchart_list(wstripchart_list) --> ww.dev.copy(ww.dev.copy)
wstripchart(wstripchart) --> ww.dev.copy(ww.dev.copy)
wscatter.fill(wscatter.fill) --> ww.dev.copy(ww.dev.copy)
wplot(wplot) --> ww.dev.copy(ww.dev.copy)
wpie(wpie) --> ww.dev.copy(ww.dev.copy)
wlegend.label(wlegend.label) --> wplot_save_this(wplot_save_this)
wlegend(wlegend) --> wplot_save_this(wplot_save_this)
whist_dfCol(whist_dfCol) --> ww.dev.copy(ww.dev.copy)
whist(whist) --> ww.dev.copy(ww.dev.copy)
wboxplot(wboxplot) --> ww.dev.copy(ww.dev.copy)
wbarplot_dfCol(wbarplot_dfCol) --> ww.dev.copy(ww.dev.copy)
wbarplot(wbarplot) --> ww.dev.copy(ww.dev.copy)
wLinRegression(wLinRegression) --> superscript_in_plots(superscript_in_plots)
wLinRegression(wLinRegression) --> wplot_save_this(wplot_save_this)
wplot_save_this(wplot_save_this) --> ww.dev.copy(ww.dev.copy)
barplot_label(barplot_label) --> wplot_save_this(wplot_save_this)
subgraph SubGraphOne
end
created by convert_igraph_to_mermaid()
Updated: 2024/10/24 15:57
setup_MarkdownReports()
Setup Markdown Reports. Initializes the markdown report file and the output directory. This function creates a subdirectory in “OutDir”, named with the script name and the modification time. It also defines the “path_of_report” variable used by all log-writing and wplot functions.
create_set_OutDir()
create_set_OutDir. Create or set the output directory of the script, and set the “OutDir” variable that is used by all ~wplot functions.
create_set_SubDir()
Create_set_SubDir. Create or set the output directory of the script, and set the “NewOutDir” variable that is used by all ~wplot functions. Opening pair of the create_set_Original_OutDir function.
create_set_Original_OutDir()
create_set_Original_OutDir. Closing pair of the create_set_SubDir function. Call when chaning back to the main dir. Set the output directory of the script, and set the “NewOutDir” variable that is used by all ~wplot functions.
continue_logging_markdown()
continue_logging_markdown. Continue writing to an existing report file.
check_OutDir()
Compare Current Working Directory with OutDir. This function checks if the current working directory is the same as a specified directory (OutDir). If they do not match, it prints both directories to the screen.
wplot_save_this()
wplot_save_this. Save the currently active graphic device (for complicated plots). Insert links to your markdown report, set by “path_of_report”. Name the file by naming the variable!
wplot_save_pheatmap()
wplot_save_pheatmap. Save pheatmap object. Modified from: https://stackoverflow.com/questions/43051525/how-to-draw-pheatmap-plot-to-screen-and-also-save-to-file
wplot()
wplot. Create and save scatter plots as .pdf, in “OutDir”. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions. The .png version is not created, only the link is put in place. You can add 2D error bars around the dots, or add lines (ablines) to your plot, by setting “abline” argument to = FALSE (no line, default), “h” (horizontal, further specified by a = y-offset), “v” (vertical, further specified by a = x-offset), “ab” (line with an angle, further specified by a = offset, b = slope).
wscatter.fill()
wscatter.fill. A scatterplot with color gradient and color legend. Modified from: http://stackoverflow.com/questions/20127282/r-color-scatterplot-points-by-col-value-with-legend
wbarplot()
wbarplot. Create and save bar plots as .pdf, in “OutDir”. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions.
whist()
whist. Create and save histograms as .pdf, in “OutDir”. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions. Name the file by naming the variable! Cannot be used with dynamically called variables [e.g. call vectors within a loop]. “filtercol” assumes >= coloring!
wboxplot()
wboxplot. Create and save box plots as .pdf, in “OutDir”. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions.
wpie()
wpie. Create and save pie charts as .pdf, in “OutDir”. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions.
wstripchart()
wstripchart. Create and save strip charts as .pdf, in “OutDir”. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions.
wstripchart_list()
wstripchart_list. Create and save stripcharts from a list as .pdf, in “OutDir”. This version allows individual coloring of each data point, by a color-list of the same dimension. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions.
wvioplot_list()
wvioplot_list. Create and save violin plots as .pdf, in “OutDir”. It requires (and calls) “vioplot” package. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions.
wviostripchart_list()
wviostripchart_list. Create and save violin plots as .pdf, in “OutDir”. It requires (and calls) “vioplot” package. If mdlink = TRUE, it inserts a .pdf and a .png link in the markdown report, set by “path_of_report”. The .png version is not created, only the link is put in place, not to overwrite previous versions.
wvenn()
wvenn. Save venn diagrams. Unlike other ~vplot funcitons, this saves directly into a .png, and it does not use the dev.copy2pdf() function.
wbarplot_dfCol()
wbarplot_dfCol. wbarplot for a column of a data frame.
whist_dfCol()
whist_dfCol. Use this version of whist() if you iterate over columns or rows of a data frame. You can name the file by naming the variable. Cannot be used with dynamically called variables (e.g. call vectors within a loop).
pdfA4plot_on()
pdfA4plot_on. Create A4 PDFs to plot multiple subplots in one file
pdfA4plot_on.layout()
pdfA4plot_on.layout. Create A4 PDFs to plot multiple subplots in one file with custom numbers of columns in each row. Fancy layout version of pdfA4plot_on()
pdfA4plot_off()
pdfA4plot_off. The pair of the “pdfA4plot_on()” function; to finish plotting in the A4 pdf. @importFrom clipr write_clip @examples pdfA4plot_on.layout(plotname = “MyA4_w_layout”) hist(rnorm(100)) hist(-rnorm(100)) hist(10 + rnorm(100)) pdfA4plot_off()
error_bar()
error_bar. Put error bars on top of your bar plots. This functionality is now integrated into MarkdownReporter’s wbarplot() function
wlegend()
wlegend. Quickly add a legend to an existing plot, and save the plot immediately.
wlegend.label()
wlegend.label. Quickly add a “text only” legend without a filled color box. to an existing plot, and save the plot immediately. Never inserts an mdlink.
barplot_label()
barplot_label. Add extra labels to your bar plots at the top or the base.
wLinRegression()
wLinRegression. Add linear regression, and descriptors to line to your scatter plot. Provide the same dataframe as you provided to wplot() before you called this function
subscript_in_plots()
subscript_in_plots. Returns a formatted string that you feed to main, xlab or ylab parameters of a plot Create an expression with subscript for axis labels. Parsed when provided to xlab or ylab of a function.
superscript_in_plots()
superscript_in_plots. Returns a formatted string that you feed to main, xlab or ylab parameters of a plot Create an expression with superscript for axis labels. Parsed when provided to xlab or ylab of a function.
Abel Vertesy. (2017, October 17). MarkdownReports: An R function library to create scientific figures and markdown reports easily. (Version v2.9.5). Zenodo. http://doi.org/10.5281/zenodo.594683
MarkdownReports is a project of @vertesy.