NumPy Matplotlib
Matplotlib 是 Python 的繪圖庫。 它可與 NumPy 一起使用,提供了一種有效的 MatLab 開源替代方案。 它也可以和圖形工具包一起使用,如 PyQt 和 wxPython。
Windows 系統安裝 Matplotlib
進入到 cmd 窗口下,執行以下命令:
python -m pip install -U pip setuptools python -m pip install matplotlib
Linux 系統安裝 Matplotlib
可以使用 Linux 包管理器來安裝:
Debian / Ubuntu:
sudo apt-get install python-matplotlib
Fedora / Redhat:
sudo yum install python-matplotlib
Mac OSX 系統安裝 Matplotlib
Mac OSX 可以使用 pip 命令來安裝:
sudo python -mpip install matplotlib
安裝完後,你可以使用 python -m pip list 命令來查看是否安裝了 matplotlib 模組。
$ python -m pip list | grep matplotlib matplotlib (1.3.1)
實例
實例
以上實例中,np.arange() 函數創建 x 軸上的值。y 軸上的對應值存儲在另一個數組對象 y 中。 這些值使用 matplotlib 軟體包的 pyplot 子模組的 plot() 函數繪製。
圖形由 show() 函數顯示。
圖形中文顯示
Matplotlib 默認情況不支持中文,我們可以使用以下簡單的方法來解決:
首先下載字體(注意系統):https://www.fontpalace.com/font-details/SimHei/
SimHei.ttf 檔放在當前執行的代碼檔中:
實例
執行輸出結果如下圖:
此外,我們還可以使用系統的字體:
from matplotlib import pyplot as plt import matplotlib a=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist]) for i in a: print(i)列印出你的 font_manager 的 ttflist 中所有註冊的名字,找一個看中文字體例如:STFangsong(仿宋),然後添加以下代碼即可:
plt.rcParams['font.family']=['STFangsong']
作為線性圖的替代,可以通過向 plot() 函數添加格式字串來顯示離散值。 可以使用以下格式化字元。
字元 | 描述 |
---|---|
'-' |
實線樣式 |
'--' |
短橫線樣式 |
'-.' |
點劃線樣式 |
':' |
虛線樣式 |
'.' |
點標記 |
',' |
像素標記 |
'o' |
圓標記 |
'v' |
倒三角標記 |
'^' |
正三角標記 |
'<' |
左三角標記 |
'>' |
右三角標記 |
'1' |
下箭頭標記 |
'2' |
上箭頭標記 |
'3' |
左箭頭標記 |
'4' |
右箭頭標記 |
's' |
正方形標記 |
'p' |
五邊形標記 |
'*' |
星形標記 |
'h' |
六邊形標記 1 |
'H' |
六邊形標記 2 |
'+' |
加號標記 |
'x' |
X 標記 |
'D' |
菱形標記 |
'd' |
窄菱形標記 |
'|' |
豎直線標記 |
'_' |
水平線標記 |
以下是顏色的縮寫:
字元 | 顏色 |
---|---|
'b' |
藍色 |
'g' |
綠色 |
'r' |
紅色 |
'c' |
青色 |
'm' |
品紅色 |
'y' |
黃色 |
'k' |
黑色 |
'w' |
白色 |
要顯示圓來代表點,而不是上面示例中的線,請使用 ob 作為 plot() 函數中的格式字串。
實例
執行輸出結果如下圖:
繪製正弦波
以下實例使用 matplotlib 生成正弦波圖。
實例
執行輸出結果如下圖:
subplot()
subplot() 函數允許你在同一圖中繪製不同的東西。
以下實例繪製正弦和余弦值:
實例
執行輸出結果如下圖:
bar()
pyplot 子模組提供 bar() 函數來生成條形圖。
以下實例生成兩組 x 和 y 數組的條形圖。
實例
執行輸出結果如下圖:
numpy.histogram()
numpy.histogram() 函數是數據的頻率分佈的圖形表示。 水準尺寸相等的矩形對應於類間隔,稱為 bin,變數 height 對應於頻率。
numpy.histogram()函數將輸入數組和 bin 作為兩個參數。 bin 數組中的連續元素用作每個 bin 的邊界。
實例
輸出結果為:
[3 4 5 2 1] [ 0 20 40 60 80 100]
plt()
Matplotlib 可以將直方圖的數字表示轉換為圖形。 pyplot 子模組的 plt() 函數將包含數據和 bin 數組的數組作為參數,並轉換為直方圖。
實例
執行輸出結果如下圖:
Matplotlib 更多參考內容: