logo
Loading...

Matplotlib基本用法和設定軸 - 莫凡 Python 基礎研習讀書會 - Cupoy

1. 基本用法 公開課程內容來源:  Matplotlib 3 基本用法 (python 数据可视化教学教程) 繪製一條線 #### 導入套件import matplotlib.pyplot ...

1. 基本用法 公開課程內容來源:  Matplotlib 3 基本用法 (python 数据可视化教学教程) 繪製一條線 #### 導入套件import matplotlib.pyplot as pltimport numpy as np​## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)print(x)y = 2 * x + 1print(y)## 視覺化## 畫第一條線plt.plot(x, y)## 顯示圖像plt.show() 執行結果 繪製兩條線在同一個圖片裡 ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y = 2 * x + 1## 視覺化## 畫第一條線plt.plot(x, y)## 畫第二條線plt.plot(y, x)## 顯示圖像plt.show() 執行結果 繪製一條線在兩張圖片裡 ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y = 2 * x + 1## 視覺化## 畫第一條線plt.figure()plt.plot(x, y)## 畫第二條線plt.figure()plt.plot(y, x)## 顯示圖像plt.show() 執行結果 繪製一條曲線 #### 導入套件import matplotlib.pyplot as pltimport numpy as np​## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)print(x)y = x ** 2## 視覺化## 畫第一條線plt.plot(x, y)## 顯示圖像plt.show() 執行結果 使用Python編譯器,可以直接提供大家一些功能來操作圖片 功能 大家可以看到圖片的上方有各種功能鍵來幫助我們操作圖片,像是可以縮放圖片、調整圖片大小,調整x軸y軸大小範圍,存檔等等 >>> import matplotlib.pyplot as plt>>> import numpy as np>>> x = np.linspace(-1, 1, 100)>>> y = x ** 2>>> plt.plot(x, y)[]>>> plt.plot(y, x)[]>>> plt.show() 執行結果 2. 使用Figure來繪製不同圖片 公開課程內容來源:  Matplotlib 4 figure 图像 (python 数据可视化教学教程) 為了方便帶大家看出差異,這邊使用Python編譯器來執行 繪製兩張不同的圖片 >>> import matplotlib.pyplot as plt>>> import numpy as np>>> x = np.linspace(-1, 1, 100)>>> y1 = 2 * x + 1>>> y2 = x ** 2>>> plt.figure()
>>> plt.plot(x, y1)[]>>> plt.figure()
>>> plt.plot(x, y2)[]>>> plt.show() 執行結果 定義圖片的名稱 執行結果: 可以看出上面的Figure後面的數字變了,變成我們指定的2跟3 定義不同圖片的大小 >>> import matplotlib.pyplot as plt>>> import numpy as np>>> x = np.linspace(-1, 1, 100)>>> y1 = 2 * x + 1>>> y2 = x ** 2>>> plt.figure(num = 2, figsize = (10, 10))
>>> plt.plot(x, y1)[]>>> plt.figure(num = 3)
>>> plt.plot(x, y2)[]>>> plt.show() 執行結果 在其中一張圖中繪製兩條線,並調整其顏色、線的寬度、線的種類 補充: 線的種類https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.html >>> import matplotlib.pyplot as plt>>> import numpy as np>>> x = np.linspace(-1, 1, 100)>>> y1 = 2 * x + 1>>> y2 = x ** 2>>> plt.figure(num = 2, figsize = (10, 10))
>>> plt.plot(x, y1)[]>>> plt.figure(num = 3)
>>> plt.plot(x, y2)[]>>> plt.plot(x, y1, color = 'red', linewidth = 2.8, linestyle = '--')[]>>> plt.show() 執行結果 3. 設定坐標軸 公開課程內容來源:  Matplotlib 5 设置坐标轴1 (python 数据可视化教学教程) 限制x軸與y軸的範圍 ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y1 = 2 * x + 1y2 = x ** 2## 視覺化plt.figure()plt.plot(x, y2)## 線的種類: https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.htmlplt.plot(x, y1, color = 'red', linewidth = 2.8, linestyle = '--')​## 設定x軸和y軸的範圍空間plt.xlim((-1, 2.5))plt.ylim((-1, 1))​## 顯示圖像plt.show() 執行結果 設定x軸與y軸標籤名稱 ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y1 = 2 * x + 1y2 = x ** 2## 視覺化plt.figure()plt.plot(x, y2)## 線的種類: https://matplotlib.org/stable/gallery/lines_bars_and_markers/linestyles.htmlplt.plot(x, y1, color = 'red', linewidth = 2.8, linestyle = '--')​## 設定x軸和y軸的範圍空間plt.xlim((-1, 2.5))plt.ylim((-1, 1))​## 設定x軸與y軸標籤名稱plt.xlabel('Here is X')plt.ylabel('Here is Y')​​## 顯示圖像plt.show() 執行結果 改變刻度的數量與名稱 ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y1 = 2 * x + 1y2 = x ** 2## 視覺化plt.figure()plt.plot(x, y2)plt.plot(x, y1, color = 'red', linewidth = 2.8, linestyle = '--')​## 設定x軸和y軸的範圍空間plt.xlim((-1, 2.5))plt.ylim((-1, 1))​## 設定x軸與y軸標籤名稱plt.xlabel('Here is X')plt.ylabel('Here is Y')​## 改店x軸刻度new_xticks = np.linspace(-1, 2.5, 5)print(new_xticks)plt.xticks(new_xticks)## 改變y軸刻度plt.yticks([-1, 0, 0.5, 1, 1.5],          ['really bad', 'bad', 'normal', 'good', 'really good'])​​## 顯示圖像plt.show() 執行結果 讓字體好看 ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y1 = 2 * x + 1y2 = x ** 2## 視覺化plt.figure()plt.plot(x, y2)plt.plot(x, y1, color = 'red', linewidth = 2.8, linestyle = '--')​## 設定x軸和y軸的範圍空間plt.xlim((-1, 2.5))plt.ylim((-1, 1))​## 設定x軸與y軸標籤名稱plt.xlabel('Here is X')plt.ylabel('Here is Y')​## 改店x軸刻度new_xticks = np.linspace(-1, 2.5, 5)plt.xticks(new_xticks)## 改變y軸刻度plt.yticks([-1, 0, 0.5, 1, 1.5],          [r'$really\ bad$', r'$bad$', r'$normal$', r'$good$', r'$really\ good$'])​​## 顯示圖像plt.show() 執行結果 將特殊符號帶入標籤名稱 將數學形式的Alpha放入刻度標籤名稱 ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y1 = 2 * x + 1y2 = x ** 2## 視覺化plt.figure()plt.plot(x, y2)plt.plot(x, y1, color = 'red', linewidth = 2.8, linestyle = '--')​## 設定x軸和y軸的範圍空間plt.xlim((-1, 2.5))plt.ylim((-1, 1))​## 設定x軸與y軸標籤名稱plt.xlabel('Here is X')plt.ylabel('Here is Y')​## 改店x軸刻度new_xticks = np.linspace(-1, 2.5, 5)plt.xticks(new_xticks)## 改變y軸刻度plt.yticks([-1, 0, 0.5, 1, 1.5],          [r'$really\ bad$', r'$bad$', r'$normal$', r'$good\ \alpha$', r'$really\ good$'])​​## 顯示圖像plt.show() 執行結果 公開課程內容來源: https://www.youtube.com/watch?v=w83mFG5tyW4&list=PLXO45tsB95cKiBRXYqNNCw8AUo6tYen3l&index=6 修改坐標軸的位置 使用gca - get current axis ## 構建數據## 從-1到1,取50個點,會等分切割點x = np.linspace(-1, 1, 100)y1 = 2 * x + 1y2 = x ** 2## 視覺化plt.figure()plt.plot(x, y2)plt.plot(x, y1, color = 'red', linewidth = 2.8, linestyle = '--')​## 設定x軸和y軸的範圍空間plt.xlim((-1, 2.5))plt.ylim((-1, 1))​## 設定x軸與y軸標籤名稱plt.xlabel('Here is X')plt.ylabel('Here is Y')​## 改店x軸刻度new_xticks = np.linspace(-1, 2.5, 5)plt.xticks(new_xticks)## 改變y軸刻度plt.yticks([-1, 0, 0.5, 1, 1.5],          [r'$really\ bad$', r'$bad$', r'$normal$', r'$good\ \alpha$', r'$really\ good$'])​## 修改坐標軸位置ax = plt.gca()## 指定脊梁 - 就是原本圖軸的四個邊框## 將右邊和上面的軸設置為不顯示ax.spines['right'].set_color('none')ax.spines['top'].set_color('none')​## 用下面的軸代替x的座標軸ax.xaxis.set_ticks_position('bottom')## 用左邊的軸代替y的座標軸ax.yaxis.set_ticks_position('left')## 移動x軸與y軸位置## 設定橫坐標的位置會在縱座標y的0值位置ax.spines['bottom'].set_position(('data', 0))## 除了data也可以設定axes或outward來移動座標軸## axes會用百分比的方式來移動,像是要移動的距離為y軸百分之幾的位置## 設定縱坐標的位置會在橫座標y的0值位置ax.spines['left'].set_position(('data', 0))​## 顯示圖像plt.show() 執行結果