Matplotlib可視化指導手冊

matplotlib 安裝配置

linux可以通過以下方式安裝matplotlib

<code>sudo pip install numpy
sudo pip install scipy
sudo pip install matplotlib/<code>

windows牆裂推薦大家使用anaconda

可視化圖的基本結構

通常,使用 numpy 組織數據, 使用 matplotlib API 進行數據圖像繪製。 一幅數據圖基本上包括如下結構:

  • Data: 數據區,包括數據點、描繪形狀
  • Axis: 座標軸,包括 X 軸、 Y 軸及其標籤、刻度尺及其標籤
  • Title: 標題,數據圖的描述
  • Legend: 圖例,區分圖中包含的多種曲線或不同分類的數據

其他的還有圖形文本 (Text)、註解 (Annotate)等其他描述


Matplotlib可視化指導手冊

繪圖流程

下面以常規圖為例,詳細記錄作圖流程及技巧。按照繪圖結構,可將數據圖的繪製分為如下幾個步驟:

  • 導入 matplotlib 包相關工具包
  • 準備數據,numpy 數組存儲
  • 繪製原始曲線
  • 配置標題、座標軸、刻度、圖例
  • 添加文字說明、註解
  • 顯示、保存繪圖結果

下面是一個包含cos、sin、sqrt函數的完整圖像:


Matplotlib可視化指導手冊

  • 導入庫
<code>import numpy as np
import matplotlib.pyplot as plt/<code>
  • 導入數據
<code>x = np.arange(0., 10, 0.2)
y1 = np.cos(x)
y2 = np.sin(x)
y3 = np.sqrt(x)/<code>
  • 繪製基本曲線

使用 plot 函數直接繪製上述函數曲線,可以通過配置 plot 函數參數調整曲線的樣式、粗細、顏色、標記等:

<code>plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-', marker='.')
plt.plot(x, y2, color='green', linewidth=1.5, linestyle='-', marker='*')
plt.plot(x, y3, color='m', linewidth=1.5, linestyle='-', marker='x')/<code>
Matplotlib可視化指導手冊

  • 設置座標
<code># 座標軸上移
ax = plt.subplot(111)
ax.spines['right'].set_color('none') # 去掉右邊的邊框線
ax.spines['top'].set_color('none') # 去掉上邊的邊框線

# 移動下邊邊框線,相當於移動 X 軸
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))

# 移動左邊邊框線,相當於移動 y 軸
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))/<code>
Matplotlib可視化指導手冊

  • 設置座標軸取值範圍
<code># 設置 x, y 軸的取值範圍
plt.xlim(x.min() * 1.1, x.max() * 1.1)
plt.ylim(-1.5, 4.0)

# 設置 x, y 軸的刻度值
plt.xticks([2, 4, 6, 8, 10], [r'2', r'4', r'6', r'8', r'10'])
plt.yticks([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0],
[r'-1.0', r'0.0', r'1.0', r'2.0', r'3.0', r'4.0'])/<code>
Matplotlib可視化指導手冊

  • 設置標題和軸標籤
<code># 設置標題、x軸、y軸
plt.title(r'$the \\ function \\ figure \\ of \\ cos(), \\ sin() \\ and \\ sqrt()$', fontsize=19)
plt.xlabel(r'$the \\ input \\ value \\ of \\ x$', fontsize=18, labelpad=88.8)
plt.ylabel(r'$y = f(x)$', fontsize=18, labelpad=12.5)/<code>
Matplotlib可視化指導手冊

  • 設置文字描述、註解
<code># 添加文字
plt.text(4, 1.68, r'$x \\in [0.0, \\ 10.0]$', color='k', fontsize=15)
plt.text(4, 1.38, r'$y \\in [-1.0, \\ 4.0]$', color='k', fontsize=15)

# 特殊點添加註解
plt.scatter([8, ], [np.sqrt(8), ], 50, color='m') # 使用散點圖放大當前點
plt.annotate(r'$2\\sqrt{2}$', xy=(8, np.sqrt(8)), xytext=(8.5, 2.2), fontsize=16, color='#090909',

arrowprops=dict(arrowstyle='->', connectionstyle='arc3, rad=0.1', color='#090909'))/<code>
Matplotlib可視化指導手冊

  • 增加圖例
<code># 設置圖例及位置
plt.legend(loc='upper left')
plt.legend(['cos(x)', 'sin(x)', 'sqrt(x)'], loc='upper left')/<code>
Matplotlib可視化指導手冊

  • 顯示網格線
<code># 顯示網格線
plt.grid(True)/<code>
Matplotlib可視化指導手冊

  • 保存/顯示圖像
<code># 保存圖片
plt.savefig('foo.png')

# 顯示繪圖
plt.show()/<code>



plt.plot(x, y1, color='blue', linewidth=1.5, linestyle='-', marker='.')

  • 顏色參數color

主要是color參數:r 紅色、g 綠色、b 藍色、c cyan、m 紫色、y 土黃色、k 黑色、w 白色

Matplotlib可視化指導手冊

  • 線條類型參數linestyle

linestyle 參數主要包含虛線、點化虛線、粗虛線、實線

Matplotlib可視化指導手冊

  • 標記參數marker

marker參數設定在曲線上標記的特殊符號,以區分不同的線段。常見的形狀及表示符號如下圖所示:

Matplotlib可視化指導手冊



分享到:


相關文章: