\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{Zayd} \pdfinfo{ /Title (pandasplotting.pdf) /Creator (Cheatography) /Author (Zayd) /Subject (PandasPlotting 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}{CF7268} \definecolor{LightBackground}{HTML}{FCF6F5} \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{PandasPlotting Cheat Sheet}}}} \\ \normalsize{by \textcolor{DarkBackground}{Zayd} via \textcolor{DarkBackground}{\uline{cheatography.com/86469/cs/20107/}}} \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}Zayd \\ \uline{cheatography.com/zayd} \\ \end{tabulary} \vfill \columnbreak \begin{tabulary}{5.8cm}{L} \SetRowColor{FootBackground} \mymulticolumn{1}{p{5.377cm}}{\bf\textcolor{white}{Cheat Sheet}} \\ \vspace{-2pt}Published 5th June, 2020.\\ Updated 5th June, 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*}{3} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Terms}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{The terms will be used to refer to: \newline % Row Count 1 (+ 1) - df = Pandas DataFrame \newline % Row Count 2 (+ 1) - series = Pandas Series \newline % Row Count 3 (+ 1) - data = Pandas DataFrame or Series% Row Count 4 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.68298 cm} x{1.29402 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Plot whith Series and DataFrames}} \tn % Row 0 \SetRowColor{LightBackground} `- series.plot()` & Series \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `- dataframe.plot(x='None',y='None')` & DataFrame \tn % Row Count 3 (+ 2) % Row 2 \SetRowColor{LightBackground} `- data.plot.\textless{}kind\textgreater{}()` & Another method \tn % Row Count 5 (+ 2) % Row 3 \SetRowColor{white} `'bar' or 'barh', 'hist', 'box', 'kde' or 'density' , 'hexbin', 'pie' and 'scatter'` & Kinds \tn % Row Count 8 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.73735 cm} x{2.23965 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Bar Plot}} \tn % Row 0 \SetRowColor{LightBackground} `- data.plot.bar() /.barh()` & Bar plot/ Horizontal plot \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `- \seqsplit{data.plot.bar(stacked=True)`} & Stacked bar plot \tn % Row Count 4 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.03597 cm} x{1.94103 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Area Plots}} \tn % Row 0 \SetRowColor{LightBackground} `- data.plot.area()` & Area plot \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `- \seqsplit{data.plot.area(stacked=False)`} & Non-Stacked area plot \tn % Row Count 3 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.93643 cm} x{2.04057 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Pie plot}} \tn % Row 0 \SetRowColor{LightBackground} `- series.plot.pie()` & Pie plot for Series\{\{ac\}\} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `- \seqsplit{DataFrame.plot.pie(subplots=True)`} & Pie plot for DataFrame\{\{ac\}\} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `- \seqsplit{series.plot.pie(labels=} {[}'A','B','C'{]}, colors= {[}'r','b','g'{]}, autopct= '\%.2f')` & Wedge labels\{\{ac\}\} \tn % Row Count 8 (+ 4) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{It's valid: \newline fontsize and figsize} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.38436 cm} x{1.59264 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Scatter plot}} \tn % Row 0 \SetRowColor{LightBackground} \seqsplit{`-DataFrame.plot.scatter(x='} ', y=' ')` & Scatter plot\{\{ac\}\} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} \mymulticolumn{2}{x{5.377cm}}{`-ax= df.plot.scatter(x='A',y='B', color='None', label='Group1')`\{\{bt\}\}} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `-df.plot.scatter(x='C',y='D', color='Other', label='Group2', ax= ax)` & Multiple plot\{\{ac\}\} \tn % Row Count 7 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.78712 cm} x{2.18988 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Histograms}} \tn % Row 0 \SetRowColor{LightBackground} `- data.plot.hist()` & Histogram plot\{\{ac\}\} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `- \seqsplit{data.plot.hist(stacked=True}, bins=10)` & Stacked and bins size\{\{ac\}\} \tn % Row Count 4 (+ 2) % Row 2 \SetRowColor{LightBackground} `- \seqsplit{data.plot.hist(orientation='horizontal'}, cumulative=True)` & Horizontal and cumulative\{\{ac\}\} \tn % Row Count 7 (+ 3) % Row 3 \SetRowColor{white} \seqsplit{`data.diff().hist(color='g'}, alpha=0.5)` & Subplots histograms\{\{ac\}\} \tn % Row Count 9 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.08574 cm} x{1.89126 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Box Plots}} \tn % Row 0 \SetRowColor{LightBackground} `- data.plot.box()`\{\{bb\}\} & Box plot\{\{bb\}\}\{\{ac\}\} \tn % Row Count 2 (+ 2) % Row 1 \SetRowColor{white} `- dict=\{'boxes':' ','whiskers':' ', 'medians':' ', 'caps': ' '\}` & Color of Boxes\{\{ac\}\} \tn % Row Count 5 (+ 3) % Row 2 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`- data.plot.box(color=dict)`\{\{bb\}\}} \tn % Row Count 6 (+ 1) % Row 3 \SetRowColor{white} `- \seqsplit{data.plot.box(vert=False)`} & Horizontal box plot\{\{ac\}\} \tn % Row Count 8 (+ 2) % Row 4 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{`- df.boxplot(by='column')`\{\{bt\}\}} \tn % Row Count 9 (+ 1) % Row 5 \SetRowColor{white} `- df.boxplot(column={[}' ',' '{]}, by={[}' ',' '{]}))` & Groupings \tn % Row Count 11 (+ 2) % Row 6 \SetRowColor{LightBackground} `- \seqsplit{df.groupby('g').boxplot()`} & \textasciicircum{}for random choice\textasciicircum{}\{\{ac\}\} \tn % Row Count 13 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\textasciicircum{}The "choice random" is:\textasciicircum{} \newline `- g=np.random\_choice({[}'A','B'{]},size=50{]})`} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{2.83689 cm} x{2.14011 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Hexagonal bin plot}} \tn % Row 0 \SetRowColor{LightBackground} `- \seqsplit{DataFrame.plot.hexbin(x='None'}, y='None')` & Hexagonal bin plot\{\{ac\}\} \tn % Row Count 3 (+ 3) % Row 1 \SetRowColor{white} `- \seqsplit{DataFrame.plot.hexbin(x='None'}, y='None', C= 'z', \seqsplit{reduce\_C\_function=np}.max)` & {\emph{add column 'z' for the value}} \tn % Row Count 7 (+ 4) % Row 2 \SetRowColor{LightBackground} `- \seqsplit{DataFrame.plot.hexbin(x='None'}, y='None', gridsize= 20)` & Gridsize\{\{ac\}\} \tn % Row Count 10 (+ 3) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.03597 cm} x{1.94103 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Density plot}} \tn % Row 0 \SetRowColor{LightBackground} `- data.plot.kde()` & Density plot \tn % Row Count 1 (+ 1) \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Plot for data .CSV}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{`\textgreater{} data= pd.read\_csv('Name or direction of data')` \newline % Row Count 2 (+ 2) Andrews curves \newline % Row Count 3 (+ 1) `- pdt.andrews\_curves(data, 'column name with class names')` \newline % Row Count 5 (+ 2) Parallel coordinates \newline % Row Count 6 (+ 1) `- \seqsplit{pdt.parallel\_coordinates(data}, 'column name with class names')` \newline % Row Count 8 (+ 2) RadViz \newline % Row Count 9 (+ 1) `- pdt.radviz(data, 'column name with class name')`% Row Count 11 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{{\emph{Plotting Tools from Pandas Plotting}}}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{`\textgreater{} import pandas.plotting as pdt` \newline % Row Count 1 (+ 1) Scatter matrix plot \newline % Row Count 2 (+ 1) `- \seqsplit{pdt.scatter\_matrix('frame'}, 'alpha= 0.5', 'figsize=(6,6)')` \newline % Row Count 4 (+ 2) Lag plot \newline % Row Count 5 (+ 1) `- pdt.lag\_plot(series)` \newline % Row Count 6 (+ 1) Autocorrelation plot \newline % Row Count 7 (+ 1) `- \seqsplit{pdt.autocorrelation\_plot(series)`} \newline % Row Count 8 (+ 1) Bootstrap plot \newline % Row Count 9 (+ 1) `- \seqsplit{pdt.bootstrap\_plot(series}, size= 50, samples= 500, color='green')`% Row Count 11 (+ 2) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Plot formatting}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{{\emph{Plot style}} \newline % Row Count 1 (+ 1) `- series.plot(style='k-{}-')` \newline % Row Count 2 (+ 1) {\emph{Controlling the legend}} \newline % Row Count 3 (+ 1) `- DataFrame.plot(legend= False)` \newline % Row Count 4 (+ 1) {\emph{Color map}} \newline % Row Count 5 (+ 1) `- \seqsplit{DataFrame.plot(colormap='} ')` \newline % Row Count 6 (+ 1) {\emph{Scales (logarithmic)}} \newline % Row Count 7 (+ 1) `- data.plot(logy= True) or logx or loglog` \newline % Row Count 8 (+ 1) {\emph{Plotting on a seconday y-axis}} \newline % Row Count 9 (+ 1) `- \seqsplit{DataFrame.column1.plot()`} \newline % Row Count 10 (+ 1) `- \seqsplit{DataFrame.column2.plot(secondary\_y=True)`} \newline % Row Count 11 (+ 1) {\emph{Suppressing tick resolution adjustament}} \newline % Row Count 12 (+ 1) `- data.plot(x\_compat= True)`% Row Count 13 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{x{3.73275 cm} x{1.24425 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Subplots}} \tn % Row 0 \SetRowColor{LightBackground} `- \seqsplit{data.plot(subplots=True)`} & Subplots \tn % Row Count 1 (+ 1) % Row 1 \SetRowColor{white} `- data.plot(subplots= True, layout= (2,3)` & Multiple axes \tn % Row Count 3 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{It´s valid: \newline figsize and sharex} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{p{0.4977 cm} p{0.4977 cm} } \SetRowColor{DarkBackground} \mymulticolumn{2}{x{5.377cm}}{\bf\textcolor{white}{Plotting with errors bars}} \tn % Row 0 \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{\seqsplit{`DataFrame.plot.bar(yerr=df\_err}, xerr= df1\_err, capsize=3)`} \tn % Row Count 2 (+ 2) \hhline{>{\arrayrulecolor{DarkBackground}}--} \SetRowColor{LightBackground} \mymulticolumn{2}{x{5.377cm}}{{\emph{df\_err}} and {\emph{df1\_err}} are DataFrame of the errors of X and Y} \tn \hhline{>{\arrayrulecolor{DarkBackground}}--} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{Plotting tables}} \tn \SetRowColor{white} \mymulticolumn{1}{x{5.377cm}}{`- \seqsplit{ax.get\_xaxis().set\_visible(False)`} \newline % Row Count 1 (+ 1) `- DataFrame.plot(table= True, ax=ax)` \newline % Row Count 2 (+ 1) Adds table to: \newline % Row Count 3 (+ 1) `- fig, ax= plt.subplots(1,1)` \newline % Row Count 4 (+ 1) `- pdt.table(ax, DataFrame, loc='upper right', colWidths={[}0.2, 0.2, 0.2{]})` \newline % Row Count 6 (+ 2) `- DataFrame.plot(ax= ax)`% Row Count 7 (+ 1) } \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} \begin{tabularx}{5.377cm}{X} \SetRowColor{DarkBackground} \mymulticolumn{1}{x{5.377cm}}{\bf\textcolor{white}{j}} \tn \SetRowColor{LightBackground} \mymulticolumn{1}{p{5.377cm}}{\vspace{1px}\centerline{\includegraphics[width=5.1cm]{/web/www.cheatography.com/public/uploads/zayd_1563931718_autocorrelation_plot.png}}} \tn \hhline{>{\arrayrulecolor{DarkBackground}}-} \end{tabularx} \par\addvspace{1.3em} % That's all folks \end{multicols*} \end{document}