
Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
This cheat sheet provides a comprehensive guide on using matplotlib, a python 2d plotting library, to create publication-quality figures for data science projects. It covers topics such as preparing data, creating plots, customizing plots, and saving plots. The guide includes examples and code snippets.
What you will learn
Typology: Cheat Sheet
1 / 1
This page cannot be seen from the preview
Don't miss anything!
DataCamp Learn Python for Data Science Interactively
Matplotlib is a Python 2D plotting library which produces publication-quality figures in a variety of hardcopy formats and interactive environments across platforms.
import numpy as np x = np.linspace(0, 10, 100) y = np.cos(x) z = np.sin(x)
plt.show()
Save figures
plt.savefig('foo.png') Save transparent figures plt.savefig('foo.png', transparent=True)
fig = plt.figure() fig2 = plt.figure(figsize=plt.figaspect(2.0))
All plotting is done with respect to an Axes. In most cases, a subplot will fit your needs. A subplot is an axes on a grid system.
fig.add_axes() ax1 = fig.add_subplot(221) # row-col-num ax3 = fig.add_subplot(212) fig3, axes = plt.subplots(nrows=2,ncols=2) fig4, axes2 = plt.subplots(ncols=3)
Colors, Color Bars & Color Maps Markers Linestyles Mathtext Text & Annotations Limits, Legends & Layouts The basic steps to creating plots with matplotlib are:
import matplotlib.pyplot as plt x = [1,2,3,4] y = [10,20,25,30] fig = plt.figure() ax = fig.add_subplot(111) ax.plot(x, y, color='lightblue', linewidth=3) ax.scatter([2,4,6], [5,15,25], color='darkgreen', marker='^') ax.set_xlim(1, 6.5) plt.savefig('foo.png') plt.show() Step 3, 4 Step 2 Step 1 Step 3 Step 6 Plot Anatomy Workflow
ax.margins(x=0.0,y=0.1) Add padding to a plot ax.axis('equal') Set the aspect ratio of the plot to 1 ax.set(xlim=[0,10.5],ylim=[-1.5,1.5]) Set limits for x-and y-axis ax.set_xlim(0,10.5) Set limits for x-axis
ax.set(title='An Example Axes', Set a title and x-and y-axis labels
ylabel='Y-Axis', xlabel='X-Axis')
ax.legend(loc='best') No overlapping plot elements
ax.xaxis.set(ticks=range(1,5), Manually set x-ticks ticklabels=[3,100,-12,"foo"]) ax.tick_params(axis='y', Make y-ticks longer and go in and out direction='inout',
fig3, axes = plt.subplots(nrows=2,ncols=2) >>> fig4, axes2 = plt.subplots(ncols=3) ## Customize Plot Colors, Color Bars & Color Maps Markers Linestyles Mathtext Text & Annotations Limits, Legends & Layouts The basic steps to creating plots with matplotlib are: ## 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] >>> y = [10,20,25,30] >>> fig = plt.figure() >>> ax = fig.add_subplot(111) >>> ax.plot(x, y, color='lightblue', linewidth=3) >>> ax.scatter([2,4,6], [5,15,25], color='darkgreen', marker='^') >>> ax.set_xlim(1, 6.5) >>> plt.savefig('foo.png') >>> plt.show() Step 3, 4 Step 2 Step 1 Step 3 Step 6 Plot Anatomy Workflow ## Limits & Autoscaling >>> ax.margins(x=0.0,y=0.1) Add padding to a plot >>> ax.axis('equal') Set the aspect ratio of the plot to 1 >>> ax.set(xlim=[0,10.5],ylim=[-1.5,1.5]) Set limits for x-and y-axis >>> ax.set_xlim(0,10.5) Set limits for x-axis ## Legends >>> ax.set(title='An Example Axes', Set a title and x-and y-axis labels ylabel='Y-Axis', xlabel='X-Axis') >>> ax.legend(loc='best') No overlapping plot elements ## Ticks >>> ax.xaxis.set(ticks=range(1,5), Manually set x-ticks ticklabels=[3,100,-12,"foo"]) >>> ax.tick_params(axis='y', Make y-ticks longer and go in and out direction='inout', length=10)
fig3.subplots_adjust(wspace=0.5, Adjust the spacing between subplots hspace=0.3, left=0.125, right=0.9, top=0.9, bottom=0.1) fig.tight_layout() (^) Fit subplot(s) in to the figure area
ax1.spines['top'].set_visible(False) Make the top axis line for a plot invisible ax1.spines['bottom'].set_position(('outward',10)) Move the bottom axis line outward Figure Axes data = 2 * np.random.random((10, 10)) data2 = 3 * np.random.random((10, 10)) Y, X = np.mgrid[-3:3:100j, -3:3:100j] U = -1 - X2 + Y V = 1 + X - Y from matplotlib.cbook import get_sample_data img = np.load(get_sample_data('axes_grid/bivariate_normal.npy')) lines = ax.plot(x,y) Draw points with lines or markers connecting them ax.scatter(x,y) Draw unconnected points, scaled or colored axes[0,0].bar([1,2,3],[3,4,5]) Plot vertical rectangles (constant width) axes[1,0].barh([0.5,1,2.5],[0,1,2]) Plot horiontal rectangles (constant height) axes[1,1].axhline(0.45) Draw a horizontal line across axes axes[0,1].axvline(0.65) Draw a vertical line across axes ax.fill(x,y,color='blue') Draw filled polygons ax.fill_between(x,y,color='yellow') Fill between y-values and 0
1D Data
fig, ax = plt.subplots() im = ax.imshow(img, Colormapped or RGB arrays cmap='gist_earth', interpolation='nearest', vmin=-2, vmax=2) 2D Data or Images Vector Fields axes[0,1].arrow(0,0,0.5,0.5) Add an arrow to the axes axes[1,1].quiver(y,z) Plot a 2D field of arrows axes[0,1].streamplot(X,Y,U,V) Plot 2D vector fields Data Distributions ax1.hist(y) Plot a histogram ax3.boxplot(y) Make a box and whisker plot ax3.violinplot(z) Make a violin plot axes2[0].pcolor(data2) Pseudocolor plot of 2D array axes2[0].pcolormesh(data) Pseudocolor plot of 2D array CS = plt.contour(Y,X,U) Plot contours axes2[2].contourf(data1) Plot filled contours axes2[2]= ax.clabel(CS) Label a contour plot Figure Axes/Subplot Y-axis X-axis 1D Data 2D Data or Images plt.plot(x, x, x, x2, x, x3) ax.plot(x, y, alpha = 0.4) ax.plot(x, y, c='k') fig.colorbar(im, orientation='horizontal') im = ax.imshow(img, cmap='seismic') fig, ax = plt.subplots() ax.scatter(x,y,marker=".") ax.plot(x,y,marker="o") plt.title(r'$sigma_i=15$', fontsize=20) ax.text(1, -2.1, 'Example Graph', style='italic') ax.annotate("Sine", xy=(8, 0), xycoords='data', xytext=(10.5, 0), textcoords='data', arrowprops=dict(arrowstyle="->", connectionstyle="arc3"),) plt.plot(x,y,linewidth=4.0) plt.plot(x,y,ls='solid') plt.plot(x,y,ls='--') plt.plot(x,y,'--',x2,y2,'-.') plt.setp(lines,color='r',linewidth=4.0) import matplotlib.pyplot as plt
plt.cla() Clear an axis plt.clf() Clear the entire figure plt.close() Close a window