2.1.6.2.Matplotlib
1. 使用library
import matplotlib.pyplot as plt
將matplotlib的圖表直接嵌入到Notebook之中
%matplotlib inline
2. 畫圖的基本操作
使用plt.plot及numpy array
import numpy as np
x = np.linspace(0, 5, 11)
y = x ** 2
plt.plot(x, y, 'r-')
plt.xlabel('X label')
plt.ylabel('Y label')
plt.title('Title')
#print
plt.show()

3. 繪製多張圖
使用plt.subplot
plt.subplot(1, 2, 1)
plt.plot(x, y, 'r')
plt.subplot(1, 2, 2)
plt.plot(x, y, 'b')

4.以Object Orient的概念進行繪圖操作
1.使用plt.figure及add_axes
#OO
fig = plt.figure()
axes = fig.add_axes([0.1, 0.1, 0.8, 0.8])
axes.plot(x, y)
axes.set_xlabel('X label')
axes.set_ylabel('Y label')
axes.set_title('Title')

2.figsize與dpi參數的使用
fig = plt.figure(figsize = (8, 2), dpi = 500)
ax = fig.add_axes([0, 0, 1, 1])
ax.plot(x, y)

3.legend與位置 (location code, loc)
loc可以設定代碼或是給tuple
fig = plt.figure() axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) axes1.plot(x, x**2, label = 'X squared') axes1.plot(x, x**3, label = 'X Cubed') axes1.legend(loc = 10)
4.line與marker
color, width, style
fig = plt.figure() ax = fig.add_axes([0, 0, 1, 1]) ax.plot(x, y, color = 'orange') ax.plot(x, y * 2, color = '#000000') ax.plot(x, y * 3, color = 'purple', lw = 6) ax.plot(x, y * 4, color = 'purple', lw = 6, alpha = 0.5) ax.plot(x, y * 5, color = 'red', lw = 6, ls = '-.') ax.plot(x, y * 6, color = 'red', lw = 1, ls = '-', marker = '*', markersize = 20, markerfacecolor = 'yellow', markeredgewidth = 3, markeredgecolor = 'green')
5.設定lower bound及upper bound
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
ax.plot(x, y * 3, color = 'purple', lw = 1)
ax.set_xlim([0, 1])
ax.set_ylim([0, 2])

5.以Object Orient的概念進行多張圖的繪圖操作
1.使用plt.figure及add_axes
fig = plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8])
axes2 = fig.add_axes([0.5, 0.15, 0.5, 0.5])
axes1.plot(x, y)
axes.set_title('LARGE PLOT')
axes2.plot(y, x)
axes.set_title('SMALLER PLOT')

2.使用plt.subplots
fig, axes = plt.subplots(nrows = 1, ncols = 2)
for current_ax in axes:
current_ax.plot(x, y)
axes[0].plot(x, y)
axes[0].set_title('FIRST PLOT')
axes[1].plot(y, x)
axes[1].set_title('SECOND PLOT')

3.使用plt.subplots如果太擠可以用plt.tight_layout()
fig, axes = plt.subplots(nrows = 3, ncols = 3)
plt.tight_layout()

4.figsize與dpi參數的使用
fig, axes = plt.subplots(nrows = 2, ncols = 1, figsize = (8, 2))
axes[0].plot(x, y)
axes[1].plot(x, y)
plt.tight_layout()

儲存圖檔
fig.savefig('my_picture.png', dpi = 100)
Last updated
Was this helpful?