This document provides a cheat sheet on Python's Matplotlib library for data visualization and plotting. It outlines the basic workflow for creating plots, including preparing data, creating a plot, customizing the plot, and saving/showing the plot. It also summarizes key Matplotlib concepts like the plot anatomy, different plot elements (lines, markers, text), and customization options (colors, styles, limits, legends).
This document provides a cheat sheet on Python's Matplotlib library for data visualization and plotting. It outlines the basic workflow for creating plots, including preparing data, creating a plot, customizing the plot, and saving/showing the plot. It also summarizes key Matplotlib concepts like the plot anatomy, different plot elements (lines, markers, text), and customization options (colors, styles, limits, legends).
Python For Data Science Cheat Sheet Plot Anatomy & Workflow
Plot Anatomy Workflow
Matplotlib Axes/Subplot The basic steps to creating plots with matplotlib are: Learn Python Interactively at www.DataCamp.com 1 Prepare data 2 Create plot 3 Plot 4 Customize plot 5 Save plot 6 Show plot >>> import matplotlib.pyplot as plt >>> x = [1,2,3,4] Step 1 >>> y = [10,20,25,30] >>> fig = plt.figure() Step 2 Matplotlib Y-axis Figure >>> ax = fig.add_subplot(111) Step 3 >>> ax.plot(x, y, color='lightblue', linewidth=3) Step 3, 4 Matplotlib is a Python 2D plotting library which produces >>> ax.scatter([2,4,6], publication-quality figures in a variety of hardcopy formats [5,15,25], color='darkgreen', and interactive environments across marker='^') platforms. >>> ax.set_xlim(1, 6.5) X-axis >>> plt.savefig('foo.png')
1 Prepare The Data Also see Lists & NumPy
>>> plt.show() Step 6
1D Data 4 Customize Plot
>>> import numpy as np Colors, Color Bars & Color Maps Mathtext >>> x = np.linspace(0, 10, 100) >>> y = np.cos(x) >>> plt.plot(x, x, x, x**2, x, x**3) >>> plt.title(r'$sigma_i=15$', fontsize=20) >>> z = np.sin(x) >>> ax.plot(x, y, alpha = 0.4) >>> ax.plot(x, y, c='k') Limits, Legends & Layouts 2D Data or Images >>> fig.colorbar(im, orientation='horizontal') >>> im = ax.imshow(img, Limits & Autoscaling >>> data = 2 * np.random.random((10, 10)) cmap='seismic') >>> data2 = 3 * np.random.random((10, 10)) >>> ax.margins(x=0.0,y=0.1) Add padding to a plot >>> Y, X = np.mgrid[-3:3:100j, -3:3:100j] >>> ax.axis('equal') Set the aspect ratio of the plot to 1 Markers >>> ax.set(xlim=[0,10.5],ylim=[-1.5,1.5]) Set limits for x-and y-axis >>> U = -1 - X**2 + Y >>> V = 1 + X - Y**2 >>> fig, ax = plt.subplots() >>> ax.set_xlim(0,10.5) Set limits for x-axis >>> from matplotlib.cbook import get_sample_data >>> ax.scatter(x,y,marker=".") Legends >>> img = np.load(get_sample_data('axes_grid/bivariate_normal.npy')) >>> ax.plot(x,y,marker="o") >>> ax.set(title='An Example Axes', Set a title and x-and y-axis labels ylabel='Y-Axis', Linestyles xlabel='X-Axis') 2 Create Plot >>> >>> plt.plot(x,y,linewidth=4.0) plt.plot(x,y,ls='solid') >>> ax.legend(loc='best') Ticks No overlapping plot elements
>>> import matplotlib.pyplot as plt >>> ax.xaxis.set(ticks=range(1,5), Manually set x-ticks
>>> plt.plot(x,y,ls='--') ticklabels=[3,100,-12,"foo"]) Figure >>> plt.plot(x,y,'--',x**2,y**2,'-.') >>> ax.tick_params(axis='y', Make y-ticks longer and go in and out >>> plt.setp(lines,color='r',linewidth=4.0) direction='inout', >>> fig = plt.figure() length=10) >>> fig2 = plt.figure(figsize=plt.figaspect(2.0)) Text & Annotations Subplot Spacing Axes >>> ax.text(1, >>> fig3.subplots_adjust(wspace=0.5, Adjust the spacing between subplots -2.1, hspace=0.3, All plotting is done with respect to an Axes. In most cases, a 'Example Graph', left=0.125, style='italic') right=0.9, subplot will fit your needs. A subplot is an axes on a grid system. >>> ax.annotate("Sine", top=0.9, >>> fig.add_axes() xy=(8, 0), bottom=0.1) >>> ax1 = fig.add_subplot(221) # row-col-num xycoords='data', >>> fig.tight_layout() Fit subplot(s) in to the figure area xytext=(10.5, 0), >>> ax3 = fig.add_subplot(212) textcoords='data', Axis Spines >>> fig3, axes = plt.subplots(nrows=2,ncols=2) arrowprops=dict(arrowstyle="->", >>> ax1.spines['top'].set_visible(False) Make the top axis line for a plot invisible >>> fig4, axes2 = plt.subplots(ncols=3) connectionstyle="arc3"),) >>> ax1.spines['bottom'].set_position(('outward',10)) Move the bottom axis line outward
3 Plotting Routines 5 Save Plot
Save figures 1D Data Vector Fields >>> plt.savefig('foo.png') >>> lines = ax.plot(x,y) Draw points with lines or markers connecting them >>> axes[0,1].arrow(0,0,0.5,0.5) Add an arrow to the axes Save transparent figures >>> ax.scatter(x,y) Draw unconnected points, scaled or colored >>> axes[1,1].quiver(y,z) Plot a 2D field of arrows >>> plt.savefig('foo.png', transparent=True) >>> axes[0,0].bar([1,2,3],[3,4,5]) Plot vertical rectangles (constant width) >>> axes[0,1].streamplot(X,Y,U,V) Plot 2D vector fields >>> axes[1,0].barh([0.5,1,2.5],[0,1,2]) 6 Plot horiontal rectangles (constant height) >>> axes[1,1].axhline(0.45) Draw a horizontal line across axes Data Distributions Show Plot >>> axes[0,1].axvline(0.65) Draw a vertical line across axes >>> ax1.hist(y) Plot a histogram >>> ax.fill(x,y,color='blue') Draw filled polygons >>> ax3.boxplot(y) Make a box and whisker plot >>> plt.show() >>> ax.fill_between(x,y,color='yellow') Fill between y-values and 0 >>> ax3.violinplot(z) Make a violin plot 2D Data or Images Close & Clear >>> fig, ax = plt.subplots() >>> plt.cla() Clear an axis >>> axes2[0].pcolor(data2) Pseudocolor plot of 2D array >>> plt.clf() Clear the entire figure >>> im = ax.imshow(img, Colormapped or RGB arrays >>> axes2[0].pcolormesh(data) Pseudocolor plot of 2D array cmap='gist_earth', >>> plt.close() Close a window interpolation='nearest', >>> CS = plt.contour(Y,X,U) Plot contours vmin=-2, >>> axes2[2].contourf(data1) Plot filled contours vmax=2) >>> axes2[2]= ax.clabel(CS) Label a contour plot DataCamp Learn Python for Data Science Interactively
Pandas 1.x Cookbook - Second Edition: Practical recipes for scientific computing, time series analysis, and exploratory data analysis using Python, 2nd Edition
Modern Tkinter for Busy Python Developers: Quickly Learn to Create Great Looking User Interfaces for Windows, Mac and Linux Using Python's Standard GUI Toolkit
Python For Beginners.Learn Data Science in 5 Days the Smart Way and Remember it Longer. With Easy Step by Step Guidance & Hands on Examples. (Python Crash Course-Programming for Beginners): Python for Beginners
Python Programming Illustrated For Beginners & Intermediates“Learn By Doing” Approach-Step By Step Ultimate Guide To Mastering Python: The Future Is Here!