Matplotlib practice: examples for plotting different plots

Practice#1: Line plot

import matplotlib.pyplot as plt
%matplotlib inline

# 3 basic arguments in the following order: (x, y, format)
plt.plot([1,2,3,4,5], [1,2,3,6,10], "bx-")


Practice#2: Scatter plot 


import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets import load_boston

# load boston dataset
# with features and house prices
dataset = load_boston()
X = dataset["data"]
y = dataset["target"]

# crim rate vs. house price
plt.scatter(X[:,0], y, s=10)
plt.xlabel(dataset["feature_names"][0])
plt.ylabel("house price") 

 

Practice#3: Box plot

fig, ax = plt.subplots(1, figsize=(9,6))
norm_dist_1 = np.random.normal(100, 10, 200)
norm_dist_2 = np.random.normal(40, 30, 200)
norm_dist_3 = np.random.normal(70, 20, 200)
norm_dist_4 = np.random.normal(90, 25, 200)
data_to_plot = [norm_dist_1, norm_dist_2, norm_dist_3, norm_dist_4]
ax.boxplot(data_to_plot)
ax.set_xticklabels(['Sample1', 'Sample2', 'Sample3', 'Sample4'])
plt.show() 
 
 




Practice#4: Objective-oriented way of using matplotlib

fig, axes = plt.subplots(1, 2)

axes[0].plot(x, y, 'ro--')
axes[1].plot(x, y^2, 'g+-')

axes[0].set_xlabel('x')
axes[0].set_ylabel('y')
axes[0].set_title('y plot')

axes[1].set_xlabel('x')
axes[1].set_ylabel('$y^2$')
axes[1].set_title('$y^2$ plot')


Here, fig denotes the whole canvas, and axes denote a set of figures you want to use, where the params (1, 2) indicate that you want to use 1 * 2 = 2 figures in total.

In order to access each figure and actually plot on those figures, you can use their indices, e.g., axes[0] indicates the first figure and axes[1] refers to the second figure in your canvas.

Afterwards, you can use an objective-oriented manner to plot and add details on each figure, e.g., add title to the first figure by using axes[0].set_title('blabla').

Using this way, we can obtain full control over those figures and even use for loops for plotting as many figures as we want.

No comments:

Post a Comment