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