\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{Anuj Shukla 18BCE0163 (anujshukla)} \pdfinfo{ /Title (data-visualization-in-r-through-ggvis.pdf) /Creator (Cheatography) /Author (Anuj Shukla 18BCE0163 (anujshukla)) /Subject (Data Visualization in R through ggvis 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}{6333FF} \definecolor{LightBackground}{HTML}{F5F2FF} \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 Visualization in R through ggvis Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Anuj Shukla 18BCE0163 (anujshukla)} via \textcolor{DarkBackground}{\uline{cheatography.com/126293/cs/24471/}}} \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}Anuj Shukla 18BCE0163 (anujshukla) \\ \uline{cheatography.com/anujshukla} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 27th September, 2020.\\ Updated 27th September, 2020.\\ 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*}{4} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Layers}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Simple Layer}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{mtcars \%\textgreater{}\% ggvis(\textasciitilde{}mpg, \textasciitilde{}disp, fill = \textasciitilde{}vs) \%\textgreater{}\% layer\_points()} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Here I am using the dataset mtcars and visualising it through layer points.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Output}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{3.833cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/anujshukla_1601194901_SL.PNG}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Multiple Layer}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{mtcars \%\textgreater{}\% ggvis(\textasciitilde{}wt, \textasciitilde{}mpg) \%\textgreater{}\% \newline layer\_smooths(span = 1) \%\textgreater{}\% \newline layer\_smooths(span = 0.3, stroke := "red")} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{I have taken the mtcars dataset and visualized the multiple layers using different strokes} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Output}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{3.833cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/anujshukla_1601195010_ML.PNG}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Installation}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{\seqsplit{install.packages("ggvis")} \newline % Row Count 1 (+ 1) library(ggvis)% Row Count 2 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\seqsplit{-install.packages("ggvis")} will install all the required packages you need for visualization through ggvis \newline -library(ggvis) will call the ggvis package to be used in your visualization} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Global Vs Local properties}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{A property that is set inside ggvis() is applied globally. While a property set inside layer\_\textless{}marks\textgreater{}() is applied locally. \newline % Row Count 3 (+ 3) Local properties can override global properties when applicable.% Row Count 5 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Graphics}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{The graphics produced by ggvis are fundamentally web graphics and work very differently from traditional R graphics. This allows us to implement exciting new features like interactivity \newline % Row Count 4 (+ 4) The goal of ggvis is to make it easy to build interactive graphics for exploratory data analysis. ggvis has a similar underlying theory to ggplot2 (the grammar of graphics).% Row Count 8 (+ 4) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Popular In-Built plot types}} \tn \SetRowColor{white} \mymulticolumn{1}{x{3.833cm}}{1. layer\_points() \newline % Row Count 1 (+ 1) 2. layer\_lines() \newline % Row Count 2 (+ 1) 3. layer\_bars() \newline % Row Count 3 (+ 1) 4. layer\_smooths() \newline % Row Count 4 (+ 1) 5. layer\_histograms()% Row Count 5 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Output}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{3.833cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/anujshukla_1601195239_groupby.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Group\_by}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{train\_tbl \%\textgreater{}\% \newline group\_by(season) \%\textgreater{}\% \newline ggvis(\textasciitilde{}temp\_f,\textasciitilde{}count, stroke = \textasciitilde{}factor(season)) \%\textgreater{}\% \newline layer\_smooths()} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{I have taken season dataset here, and season is a categorical variable. And we have grouped it and then used stroke to highlight the different seasons.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Scale Types}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{Any visual property in the visualization can be adjusted with scale(). \newline ggvis provides several different functions for creating scales: \newline scale\_datetime(), scale\_logical(), scale\_nominal(), scale\_numeric(), scale\_singular() \newline \newline Code \newline faithful \%\textgreater{}\% \newline ggivs(\textasciitilde{}eruptions,\textasciitilde{}waiting, fill = \textasciitilde{}eruptions) \%\textgreater{}\% \newline layer\_points() \%\textgreater{}\% \newline scale\_numeric("fill", range = c("red","orange"))} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Output}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{3.833cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/anujshukla_1601195683_ST.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{ggvis \& interaction ()}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{train\_tbl \%\textgreater{}\% \newline group\_by(season,holiday) \%\textgreater{}\% \newline ggvis(\textasciitilde{}count, fill = \textasciitilde{}interaction(season,holiday)) \%\textgreater{}\% \newline layer\_densities()} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{We can also group data based on interaction of two or more variables. group\_by() creates unique groups for each distinct combination of values within the grouping variables. \newline \newline ungroup() can remove the grouping information. \newline interaction() can map the properties to unique combinations of the variables} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Output}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{3.833cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/anujshukla_1601195805_interaction.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Model Prediction}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{faithful \%\textgreater{}\% \newline ggvis(\textasciitilde{}eruptions,\textasciitilde{}waiting) \%\textgreater{}\% \newline layer\_points(fill := "green", fillOpacity := 0.5) \%\textgreater{}\% \newline layer\_model\_predictions(model = "lm", stroke := "red") \%\textgreater{}\% \newline layer\_smooths(stroke := "skyblue")} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{\seqsplit{layer\_model\_predictions()} plots the prediction line of a model fitted to the data. \newline layer\_model\_predictions(model = "lm")} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Output}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{3.833cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/anujshukla_1601195928_predictions.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Interactive Plots}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \SetRowColor{LightBackground} \mymulticolumn{1}{x{3.833cm}}{ggivs comes several widgets such as \newline \newline input\_checkbox(), \newline input\_checkboxgroup(), \newline input\_numeric(), \newline input\_radiobuttons(), \newline input\_select(), \newline input\_slider(), and input\_text(). \newline \newline label = "ABCD " , choices = c("red","black") - \newline value = "black" - Used with input\_text() \newline map = as.name used when we want to return variable names \newline \newline Are the common arguments inside these functions.} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{3.833cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{3.833cm}}{\bf\textcolor{white}{Output}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{3.833cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/anujshukla_1601196125_shanly3011_1428613167_plot_interactive.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}