Matplotlib入門指南

bugyw 9年前發布 | 29K 次閱讀 圖表/報表制作 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()

更多圖例設置可以參考官方圖例教程

參考鏈接

 本文由用戶 bugyw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!