matplotlib-gallery-aez
Figure 1
Keywords: histogram, line, colour
import matplotlib.pyplot as plt import numpy as np np.random.seed(1) x = np.random.randn(1000) x_mesh = np.linspace(start = -4, stop = 4, num = 100) y = np.exp(-0.5 * x_mesh ** 2) / np.sqrt(2 * np.pi) fig = plt.figure() ax = fig.add_axes([0.1,0.1,0.8,0.8]) ax.hist(x, bins = 20, density=True, color="#67a9cf") ax.plot(x_mesh, y, color="#ef8a62", linewidth=3) ax.set_xlabel("X") ax.set_ylabel("density") fig.savefig("fig01.png", dpi=300)
Figure 2
Keywords: scatter, line, qq-plot, statistics
import matplotlib.pyplot as plt import numpy as np import scipy.stats as stats np.random.seed(1) num_points = 50 x = np.random.randn(num_points) x.sort() unit_mesh = np.linspace( start = num_points / (num_points + 1), stop = 1 / (num_points + 1), num = num_points) quantile_vals = stats.norm.isf(unit_mesh) line_lims = [min(quantile_vals) * 1.1,max(quantile_vals) * 1.1] fig = plt.figure() ax = fig.add_axes([0.1,0.1,0.8,0.8]) ax.scatter(quantile_vals, x, color="#67a9cf") ax.plot(line_lims, line_lims, color="#ef8a62") ax.set_title("Normal Q-Q plot") ax.set_xlabel("Theoretical quantiles") ax.set_ylabel("Sample quantiles") fig.savefig("fig02.png", dpi=300)
Figure 3
Keywords: bar chart
import matplotlib.pyplot as plt data = {'apple': 10, 'orange': 15, 'lemon': 5} names = list(data.keys()) values = list(data.values()) fig = plt.figure() ax = fig.add_axes([0.1,0.1,0.8,0.8]) ax.bar(names, values, color = "#cccccc", edgecolor = "#252525") fig.savefig("fig03.png", dpi=300)
Figure 4
Keywords: legend, colour, axis limits
import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 8, 1000) y1 = np.sin(x) y2 = np.cos(x) fig = plt.figure() ax = fig.add_axes([0.1,0.1,0.8,0.8]) ax.plot(x, y1, color="#67a9cf", label="sine") ax.plot(x, y2, color = "#ef8a62", label="cosine") ax.legend(loc="upper left") ax.set_ylim([-1.5, 2]) fig.savefig("fig04.png", dpi=300)
Figure 5
Keywords: legend, colour, facet, multiple plots, subplots
import numpy as np import matplotlib.pyplot as plt fig, axs = plt.subplots(1, 3, figsize=(9, 3)) var_and_col = list(zip(['a', 'b'], ["#67a9cf", "#ef8a62"])) for ix in range(3): for v, c in var_and_col: xs = range(7) ys = np.random.uniform(size=7) axs[ix].set_title("panel {ix}".format(ix=ix)) axs[ix].scatter(xs, ys, color = c, label = v) axs[2].legend(loc = "upper right") fig.savefig("fig05.png", dpi=300)
Figure 6
Keywords: boxplot, pandas
import matplotlib.pyplot as plt import pandas as pd iris = pd.read_csv("iris.csv") unique_species = iris.species.unique() grouped_sepal_lengths = [iris[iris.species == species].sepal_length for species in unique_species] plt.figure() plt.boxplot(x = grouped_sepal_lengths, labels = unique_species) plt.savefig("fig06.png", dpi=300)
Figure 7
Keywords: heatmap, correlation
import matplotlib.pyplot as plt import matplotlib as matplotlib import pandas as pd iris = pd.read_csv("iris.csv") numeric_cols = iris.columns.to_list()[0:4] iris_corrs = iris[numeric_cols].corr().to_numpy() fig, ax = plt.subplots() im = ax.imshow(iris_corrs) cbar = ax.figure.colorbar(im) cbar.ax.set_ylabel("Correlation") ax.set_xticks(range(iris_corrs.shape[1])) ax.set_yticks(range(iris_corrs.shape[0])) ax.set_xticklabels(numeric_cols) ax.set_yticklabels(numeric_cols) ax.tick_params(top=False, bottom=False, labeltop=True, labelbottom=False) kw = dict(horizontalalignment="center", verticalalignment="center", color="black") valfmt = matplotlib.ticker.StrMethodFormatter("{x:.1f}") for i in range(iris_corrs.shape[0]): for j in range(iris_corrs.shape[1]): im.axes.text(j, i, valfmt(iris_corrs[i, j], None), **kw) plt.tick_params(left=False) plt.savefig("fig07.png", dpi=300)
Requirements file for python environment
cycler==0.10.0 kiwisolver==1.3.1 matplotlib==3.4.2 numpy==1.21.1 pandas==1.3.3 Pillow==8.3.1 pkg_resources==0.0.0 pyparsing==2.4.7 python-dateutil==2.8.2 pytz==2021.1 scipy==1.7.1 six==1.16.0