%matplotlib inline import matplotlib # only need to get matplotlib version import numpy as np import sys # only need to get python version print("Python version: " + sys.version) print("Matplotlib version: " + matplotlib.__version__) print("Numpy version: " + np.__version__) import matplotlib.pyplot as plt plt.plot([1,2,3,4]) plt.ylabel('some numbers') plt.show() plt.plot([1,2,3,4], [1,4,9,16], 'ro') plt.axis([0, 6, 0, 20]) plt.show() plt.plot([1,2,3,4], [1,4,9,16], 'ro-', label = 'data 1') plt.plot([1,2,3,4], [1,2,3,4], 'bo', label='data 2') plt.axis([0, 6, 0, 20]) plt.legend() plt.show() def f(t): return np.exp(-t) * np.cos(2*np.pi*t) t1 = np.arange(0.0, 5.0, 0.1) t2 = np.arange(0.0, 5.0, 0.02) plt.figure(1) plt.subplot(211) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k') plt.subplot(212) plt.plot(t2, np.cos(2*np.pi*t2), 'r--') plt.show() plt.figure(1) plt.subplot(411) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k') plt.subplot(412) plt.plot(t2, np.cos(2*np.pi*t2), 'r--') plt.show() plt.figure(1) plt.subplot(421) plt.plot(t1, f(t1), 'bo', t2, f(t2), 'k') plt.subplot(422) plt.plot(t2, np.cos(2*np.pi*t2), 'r--') plt.show() mu, sigma = 100, 15 x = mu + sigma * np.random.randn(10000) # the histogram of the data n, bins, patches = plt.hist(x, 50, normed=1, facecolor='g', alpha=0.75) plt.xlabel('Smarts') plt.ylabel('Probability') plt.title('Histogram of IQ') plt.text(60, .025, r'$\mu=100,\ \sigma=15$') plt.axis([40, 160, 0, 0.03]) plt.grid(True) plt.show() import datetime import matplotlib.pyplot as plt import matplotlib.dates as mdates import matplotlib.cbook as cbook years = mdates.YearLocator() # every year months = mdates.MonthLocator() # every month yearsFmt = mdates.DateFormatter('%Y') # load a numpy record array from yahoo csv data with fields date, # open, close, volume, adj_close from the mpl-data/example directory. # The record array stores python datetime.date as an object array in # the date column datafile = cbook.get_sample_data('goog.npy') r = np.load(datafile).view(np.recarray) fig, ax = plt.subplots() ax.plot(r.date, r.adj_close, label='goog') # format the ticks ax.xaxis.set_major_locator(years) ax.xaxis.set_major_formatter(yearsFmt) ax.xaxis.set_minor_locator(months) datemin = datetime.date(r.date.min().year, 1, 1) datemax = datetime.date(r.date.max().year+1, 1, 1) ax.set_xlim(datemin, datemax) plt.legend(loc='upper left') ax.grid(True) # rotates and right aligns the x labels, and moves the bottom of the # axes up to make room for them fig.autofmt_xdate() plt.show() from matplotlib import cm from numpy.random import randn # Make plot with vertical (default) colorbar fig, ax = plt.subplots() data = np.clip(randn(250, 250), -1, 1) cax = ax.imshow(data, interpolation='nearest', cmap=cm.coolwarm) ax.set_title('Gaussian noise with vertical colorbar') # Add colorbar, make sure to specify tick locations to match desired ticklabels cbar = fig.colorbar(cax, ticks=[-1, 0, 1]) cbar.ax.set_yticklabels(['< -1', '0', '> 1'])# vertically oriented colorbar plt.show() # Make plot with horizontal colorbar fig, ax = plt.subplots() data = np.clip(randn(250, 250), -1, 1) cax = ax.imshow(data, interpolation='nearest', cmap=cm.coolwarm) ax.set_title('Gaussian noise with horizontal colorbar') cbar = fig.colorbar(cax, ticks=[-1, 0, 1], orientation='horizontal') cbar.ax.set_xticklabels(['Low', 'Medium', 'High'])# horizontal colorbar plt.show() import matplotlib.mlab as mlab delta = 0.025 x = np.arange(-3.0, 3.0, delta) y = np.arange(-2.0, 2.0, delta) X, Y = np.meshgrid(x, y) Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) # difference of Gaussians Z = 10.0 * (Z2 - Z1) plt.figure() CS = plt.contour(X, Y, Z) plt.clabel(CS, inline=1, fontsize=10) plt.title('Simplest default with labels') plt.show() # Or you can use a colormap to specify the colors; the default # colormap will be used for the contour lines plt.figure() # plot the image im = plt.imshow(Z, interpolation='bilinear', origin='lower', cmap=cm.gray, extent=(-3,3,-2,2)) # now overplot the contours levels = np.arange(-3.0, 3.0, 0.5) CS = plt.contour(Z, levels, origin='lower', linewidths=2, extent=(-3,3,-2,2)) plt.clabel(CS, levels ,inline=1, fmt='%1.1f', fontsize=14) # make a colorbar for the contour lines CB = plt.colorbar(CS, shrink=0.8, extend='both') plt.title('Lines with colorbar') # We can still add a colorbar for the image, too. CBI = plt.colorbar(im, orientation='horizontal', shrink=0.8) # This makes the original colorbar look a bit out of place, # so let's improve its position. #l,b,w,h = plt.gca().get_position().bounds #ll,bb,ww,hh = CB.ax.get_position().bounds #CB.ax.set_position([ll, b+0.1*h, ww, h*0.8]) plt.show() from matplotlib.colors import LogNorm from numpy.random import normal #normal distribution center at x=0 and y=5 x = normal(0,1,100000) y = normal(0,1,100000)+5 plt.hist2d(x, y, bins=[40,20]) plt.colorbar() x1,x2,y1,y2 = plt.axis() plt.show() heatmap, xedges, yedges = np.histogram2d(x, y, bins=[20,40], range=[[x1,x2],[y1,y2]]) print(x1, x2, y1, y2) print(xedges[0], xedges[-1], yedges[0],yedges[-1]) extent = [x1, x2, y1, y2] plt.imshow(heatmap, extent=extent) plt.colorbar() plt.show() from mpl_toolkits.mplot3d.axes3d import Axes3D fig = plt.figure(figsize=(14,6)) # `ax` is a 3D-aware axis instance because of the projection='3d' keyword argument to add_subplot ax = fig.add_subplot(1, 2, 1, projection='3d') p = ax.plot_surface(X, Y, Z, rstride=4, cstride=4, linewidth=0) # surface_plot with color grading and color bar ax = fig.add_subplot(1, 2, 2, projection='3d') p = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=0, antialiased=False) cb = fig.colorbar(p, shrink=0.5) fig = plt.figure(figsize=(8,6)) ax = fig.add_subplot(1,1,1, projection='3d') ax.plot_surface(X, Y, Z, rstride=4, cstride=4, alpha=0.25) cset = ax.contour(X, Y, Z, zdir='z', offset=-3.5, cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='x', offset=-3.5, cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='y', offset=2, cmap=cm.coolwarm) ax.set_xlim3d(-3.5, 3.5); ax.set_ylim3d(-2.5, 2.5); ax.set_zlim3d(-3, 2); ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('z') plt.show() fig = plt.figure(figsize=(12,6)) ax = fig.add_subplot(1,2,1, projection='3d') ax.plot_surface(X, Y, Z, rstride=4, cstride=4, alpha=0.25) ax.view_init(30, 45) ax = fig.add_subplot(1,2,2, projection='3d') ax.plot_surface(X, Y, Z, rstride=4, cstride=4, alpha=0.25) ax.view_init(70, 30) fig.tight_layout() fig = plt.figure(figsize=(8,6)) ax = fig.add_subplot(1,1,1, projection='3d') ax.plot_surface(X, Y, Z, rstride=4, cstride=4, alpha=0.1) cset = ax.contour(X, Y, Z, zdir='z', offset=-3.5, cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='x', offset=-3.0, cmap=cm.coolwarm) cset = ax.contour(X, Y, Z, zdir='y', offset=-2.5, cmap=cm.coolwarm) ax.set_xlim3d(-3.5, 3.5); ax.set_ylim3d(-2.5, 2.5); ax.set_zlim3d(-3, 2); ax.set_xlabel('x') ax.set_ylabel('y') ax.set_zlabel('z') ax.view_init(40, 45) plt.show()