Matplotlib入門指南
Matplotlib簡介
Matplotlib是一個Python工具箱,用于科學計算的數據可視化。借助它,Python可以繪制如Matlab和Octave多種多樣的數據圖形。最初是模仿了Matlab圖形命令, 但是與Matlab是相互獨立的.
通過Matplotlib中簡單的接口可以快速的繪制2D圖表
</blockquote>初試Matplotlib
Matplotlib中的pyplot子庫提供了和matlab類似的繪圖API.
import matplotlib.pyplot as plt #導入pyplot子庫 plt.figure(figsize=(8, 4)) #創建一個繪圖對象, 并設置對象的寬度和高度, 如果不創建直接調用plot, Matplotlib會直接創建一個繪圖對象 plt.plot([1, 2, 3, 4]) #此處設置y的坐標為[1, 2, 3, 4], 則x的坐標默認為[0, 1, 2, 3]在繪圖對象中進行繪圖, 可以設置label, color和linewidth關鍵字參數 plt.ylabel('some numbers') #給y軸添加標簽, 給x軸加標簽用xlable plt.title("hello"); #給2D圖加標題 plt.show() #顯示2D圖
基礎繪圖
繪制折線圖
與所選點的坐標有關
# -- coding: utf-8 --!/usr/bin/env python
import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] plt.plot(x, y, '-*r') # 虛線, 星點, 紅色 plt.xlabel("x-axis") plt.ylabel("y-axis") plt.show()</pre>
更改線的樣式查看plot函數參數設置
多線圖
只需要在plot函數中傳入多對x-y坐標對就能畫出多條線
</blockquote># -- coding: utf-8 --!/usr/bin/env python
import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] z = [1, 2, 3, 4, 5, 6] plt.plot(x, y, '--*r', x, z, '-.+g') plt.xlabel("x-axis") plt.ylabel("y-axis") plt.title("hello world") plt.show()</pre>
柱狀圖
# -- coding: utf-8 --!/usr/bin/env python
import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] z = [1, 2, 3, 4, 5, 6] plt.bar(x, y) plt.xlabel("x-axis") plt.ylabel("y-axis") plt.show()</pre>
子圖
subplot()函數指明numrows行數, numcols列數, fignum圖個數. 圖的個數不能超過行數和列數之積
# -- coding: utf-8 --!/usr/bin/env python
import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] z = [1, 2, 3, 4, 5, 6] plt.figure(1) plt.subplot(211) plt.plot(x, y, '-+b') plt.subplot(212) plt.plot(x, z, '-.*r') plt.show()</pre>
文本添加
當需要在圖片上調價文本時需要使用text()函數, 還有xlabel(), ylabel(), title()函數
text()函數返回matplotlib.text.Text, 函數詳細解釋
</blockquote># -- coding: utf-8 --!/usr/bin/env python
import numpy as np import matplotlib.pyplot as plt x = [0, 1, 2, 4, 5, 6] y = [1, 2, 3, 2, 4, 1] plt.plot(x, y, '-.*r') plt.text(1, 2, "I'm a text") //前兩個參數表示文本坐標, 第三個參數為要添加的文本 plt.show()</pre>
圖例簡介
legend()函數實現了圖例功能, 他有兩個參數, 第一個為樣式對象, 第二個為描述字符
# -- coding: utf-8 --!/usr/bin/env python
import numpy as np import matplotlib.pyplot as plt line_up, = plt.plot([1,2,3], label='Line 2') line_down, = plt.plot([3,2,1], label='Line 1') plt.legend(handles=[line_up, line_down]) plt.show()</pre>
或者調用set_label()添加圖例
# -- coding: utf-8 --!/usr/bin/env python
import numpy as np import matplotlib.pyplot as plt line, = plt.plot([1, 2, 3]) line.set_label("Label via method") plt.legend() plt.show()</pre>
# -*- coding: utf-8 -*- #!/usr/bin/env python import numpy as np import matplotlib.pyplot as plt line1, = plt.plot([1, 2, 3]) line2, = plt.plot([3, 2, 1], '--b') plt.legend((line1, line2), ('line1', 'line2')) plt.show()
更多圖例設置可以參考官方圖例教程
參考鏈接