\documentclass[10pt,a4paper]{article} % Packages \usepackage{fancyhdr} % For header and footer \usepackage{multicol} % Allows multicols in tables \usepackage{tabularx} % Intelligent column widths \usepackage{tabulary} % Used in header and footer \usepackage{hhline} % Border under tables \usepackage{graphicx} % For images \usepackage{xcolor} % For hex colours %\usepackage[utf8x]{inputenc} % For unicode character support \usepackage[T1]{fontenc} % Without this we get weird character replacements \usepackage{colortbl} % For coloured tables \usepackage{setspace} % For line height \usepackage{lastpage} % Needed for total page number \usepackage{seqsplit} % Splits long words. %\usepackage{opensans} % Can't make this work so far. Shame. Would be lovely. \usepackage[normalem]{ulem} % For underlining links % Most of the following are not required for the majority % of cheat sheets but are needed for some symbol support. \usepackage{amsmath} % Symbols \usepackage{MnSymbol} % Symbols \usepackage{wasysym} % Symbols %\usepackage[english,german,french,spanish,italian]{babel} % Languages % Document Info \author{nikkism} \pdfinfo{ /Title (data-viz-in-r.pdf) /Creator (Cheatography) /Author (nikkism) /Subject (Data viz in R Cheat Sheet) } % Lengths and widths \addtolength{\textwidth}{6cm} \addtolength{\textheight}{-1cm} \addtolength{\hoffset}{-3cm} \addtolength{\voffset}{-2cm} \setlength{\tabcolsep}{0.2cm} % Space between columns \setlength{\headsep}{-12pt} % Reduce space between header and content \setlength{\headheight}{85pt} % If less, LaTeX automatically increases it \renewcommand{\footrulewidth}{0pt} % Remove footer line \renewcommand{\headrulewidth}{0pt} % Remove header line \renewcommand{\seqinsert}{\ifmmode\allowbreak\else\-\fi} % Hyphens in seqsplit % This two commands together give roughly % the right line height in the tables \renewcommand{\arraystretch}{1.3} \onehalfspacing % Commands \newcommand{\SetRowColor}[1]{\noalign{\gdef\RowColorName{#1}}\rowcolor{\RowColorName}} % Shortcut for row colour \newcommand{\mymulticolumn}[3]{\multicolumn{#1}{>{\columncolor{\RowColorName}}#2}{#3}} % For coloured multi-cols \newcolumntype{x}[1]{>{\raggedright}p{#1}} % New column types for ragged-right paragraph columns \newcommand{\tn}{\tabularnewline} % Required as custom column type in use % Font and Colours \definecolor{HeadBackground}{HTML}{333333} \definecolor{FootBackground}{HTML}{666666} \definecolor{TextColor}{HTML}{333333} \definecolor{DarkBackground}{HTML}{2596BE} \definecolor{LightBackground}{HTML}{F1F8FA} \renewcommand{\familydefault}{\sfdefault} \color{TextColor} % Header and Footer \pagestyle{fancy} \fancyhead{} % Set header to blank \fancyfoot{} % Set footer to blank \fancyhead[L]{ \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{C} \SetRowColor{DarkBackground} \vspace{-7pt} {\parbox{\dimexpr\textwidth-2\fboxsep\relax}{\noindent \hspace*{-6pt}\includegraphics[width=5.8cm]{/web/www.cheatography.com/public/images/cheatography_logo.pdf}} } \end{tabulary} \columnbreak \begin{tabulary}{11cm}{L} \vspace{-2pt}\large{\bf{\textcolor{DarkBackground}{\textrm{Data viz in R Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{nikkism} via \textcolor{DarkBackground}{\uline{cheatography.com/138448/cs/36106/}}} \end{tabulary} \end{multicols}} \fancyfoot[L]{ \footnotesize \noindent \begin{multicols}{3} \begin{tabulary}{5.8cm}{LL} \SetRowColor{FootBackground} \mymulticolumn{2}{p{5.377cm}}{\bf\textcolor{white}{Cheatographer}} \\ \vspace{-2pt}nikkism \\ \uline{cheatography.com/nikkism} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Not Yet Published.\\ Updated 12th January, 2023.\\ Page {\thepage} of \pageref{LastPage}. \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Sponsor}} \\ \SetRowColor{white} \vspace{-5pt} %\includegraphics[width=48px,height=48px]{dave.jpeg} Measure your website readability!\\ www.readability-score.com \end{tabulary} \end{multicols}} \begin{document} \raggedright \raggedcolumns % Set font size to small. Switch to any value % from this page to resize cheat sheet text: % www.emerson.emory.edu/services/latex/latex_169.html \footnotesize % Small font. \begin{multicols*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{{\bf{Geoms}}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{1}{x{5.377cm}}{{\emph{What is a Geom?}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{A geom is a geometric object and is a function that controls the way in which your data is visualized.} \tn % Row Count 4 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.59264 cm} x{3.38436 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{{\emph{Basic Graph Features:}}}} \tn % Row 0 \SetRowColor{LightBackground} {\bf{geom\_blank():}} & Creates a blank canvas \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} {\bf{geom\_path():}} & Data points are joined according to how they are ordered in the data \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} {\bf{geom\_line():}} & Data points are connected according to the order on the x axis \tn % Row Count 8 (+ 3) % Row 3 \SetRowColor{white} {\bf{geom\_ribbon():}} & A line graph that has an area highlighted above and below the line. The thickness of this highlighted part is defined by a y-min and y-max \tn % Row Count 14 (+ 6) % Row 4 \SetRowColor{LightBackground} {\bf{geom\_segment():}} & Connects 2 data points with a line segment \tn % Row Count 16 (+ 2) % Row 5 \SetRowColor{white} {\bf{geom\_rect():}} & Create rectangles \tn % Row Count 18 (+ 2) % Row 6 \SetRowColor{LightBackground} {\bf{geom\_polygon():}} & Create polygons \tn % Row Count 20 (+ 2) % Row 7 \SetRowColor{white} {\bf{geom\_text():}} & Add labels and text \tn % Row Count 22 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{1.69218 cm} x{3.28482 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{{\bf{Single variables}}}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{Discrete:}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} {\bf{geom\_bar():}} & Create a bar graph \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{Continuous:}}} \tn % Row Count 4 (+ 1) % Row 3 \SetRowColor{white} {\bf{geom\_histogram():}} & Create a histogram (to show distribution of a continuous variable) \tn % Row Count 7 (+ 3) % Row 4 \SetRowColor{LightBackground} {\bf{geom\_density():}} & Create a density plot ( a smoothed version of a histogram) \tn % Row Count 10 (+ 3) % Row 5 \SetRowColor{white} {\bf{geom\_dotplot():}} & Each dot represents an observation where the size of the dot is the bin width \tn % Row Count 13 (+ 3) % Row 6 \SetRowColor{LightBackground} {\bf{geom\_freqpoly():}} & A frequency polygon for when you want to compare the distribution of various elements in a category. An alternative to stacking histograms. With a histogram you display the number of observations using a bar, but with a frequency polygon you use lines. \tn % Row Count 23 (+ 10) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Two variables:}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{Both continuous:}}} \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} {\bf{geom\_point():}} & Scatterplot \tn % Row Count 2 (+ 1) % Row 2 \SetRowColor{LightBackground} {\bf{geom\_quantile():}} & Drawing a line through a regression \tn % Row Count 4 (+ 2) % Row 3 \SetRowColor{white} {\bf{geom\_smooth():}} & Add a line of best fit \tn % Row Count 6 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{Show distribution:}}} \tn % Row Count 7 (+ 1) % Row 5 \SetRowColor{white} {\bf{geom\_bin2d():}} & Creates a heatmap - as an alternative to geom\_point if too many points \tn % Row Count 11 (+ 4) % Row 6 \SetRowColor{LightBackground} {\bf{geom\_density2d():}} & Creates a 2D density plot \tn % Row Count 13 (+ 2) % Row 7 \SetRowColor{white} {\bf{geom\_hex():}} & An alternative to geom\_bin2d() but the bins are hexagons \tn % Row Count 16 (+ 3) % Row 8 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{At least one discrete:}}} \tn % Row Count 17 (+ 1) % Row 9 \SetRowColor{white} {\bf{geom\_count():}} & When there are too many points in a specific location on your plot, you can count them and create a group. This helps when there are too many data points to plot effectively (this is to prevent overplotting) \tn % Row Count 27 (+ 10) % Row 10 \SetRowColor{LightBackground} {\bf{geom\_jitter():}} & Adds random variation (dots) at each data point \tn % Row Count 30 (+ 3) \end{tabularx} \par\addvspace{1.3em} \vfill \columnbreak \begin{tabularx}{5.377cm}{x{2.18988 cm} x{2.78712 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Two variables: (cont)}} \tn % Row 11 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{One continuous, one discrete:}}} \tn % Row Count 1 (+ 1) % Row 12 \SetRowColor{white} {\bf{geom\_bar(stat = "identity"):}} & geom\_bar uses stat="bin" as its default making the height of each bar equal to the number of cases in each group. If you want the heights of the bars to represent values in the data, use stat="identity" and give the y aesthetic a value. \tn % Row Count 12 (+ 11) % Row 13 \SetRowColor{LightBackground} {\bf{geom\_boxplot():}} & Box plots \tn % Row Count 14 (+ 2) % Row 14 \SetRowColor{white} {\bf{geom\_violin():}} & Violin plot (like a box plot but instead of a box, you have the shape of how the data is distributed) \tn % Row Count 19 (+ 5) % Row 15 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{One time, one continuous}}} \tn % Row Count 20 (+ 1) % Row 16 \SetRowColor{white} {\bf{geom\_area():}} & Area plot \tn % Row Count 21 (+ 1) % Row 17 \SetRowColor{LightBackground} {\bf{geom\_line():}} & Line plot \tn % Row Count 22 (+ 1) % Row 18 \SetRowColor{white} {\bf{geom\_step():}} & Step plot - Connects data points as they change creating a line that looks like a staircase \tn % Row Count 27 (+ 5) % Row 19 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{Spatial:}}} \tn % Row Count 28 (+ 1) % Row 20 \SetRowColor{white} {\bf{geom\_map():}} & Create a map with geographical data \tn % Row Count 30 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}