matplotlib-繪製精美的圖標 第一節 快速繪圖(I)

聲明:內容全部來自《Python科學計算》(張若愚),僅供學習記錄使用。如有興趣,請尊重知識,購買正版。

Github 鏈接


使用pyplot模塊繪圖

matplotlib的pyplot模塊提供了與MATLAB類似的繪圖函數調用接口,方便用戶快速繪製二維圖表。

# -*- coding: utf-8 -*-
"""
@author: xusworld
@file: FirstExample.py
@time: 2017-05-06 09:37

"""

import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10,1000)
y = np.sin(x)
z = np.cos(x**2)

plt.figure(figsize=(8,4))

plt.plot(x,y, label="$sin(x)$", color="red", linewidth=2)
plt.plot(x,z,"b--", label="$cos(x^2)$")

plt.xlabel("Times(s)")
plt.ylabel("Volt")
plt.title("PyPlot First Example")
plt.ylim(-1.2, 1.2)
plt.legend()

plt.show()




不得不說,python的庫十分強大,短短几行代碼就能做出來這麼精緻的圖。
不過其中的很多內容對新手當然包括我自己來說都很陌生,下面就一行一行解釋一下。

plt.figure(figsize=(8,4))



其他的參數僅僅瞭解一下,這行代碼只設置了 figsize 參數.由於參數num爲設定,所以調用figure()創建一個Figure()對象,並且讓他成爲當前Figure對象。
figsize參數指定Figure對象的寬度和高度,單位爲英寸。


plt.plot(x,y, label="$sin(x)$", color="red", linewidth=2)

plot傳送門
創建Figure對象之後,接下來調用plot()在當前的Figure對象中繪圖。實際上plot()實在Axes(子圖)對象上繪圖,如果當前的Figure對象中沒有Axes對象,將會位置
創建一個幾乎充滿整個圖表的Axes對象,並且使此Axes對象成爲當前的Axes對象。plot()的前兩個參數是分別表示X,Y軸數據的對象,這裏使用的是NumPy數組。

  • label: 給曲線指定一個標籤,此標籤將在圖示中顯示。如果標籤字符串的前後有字符‘$’,matplotlib會使用內嵌的LaTeX引擎將其顯示爲數學公式。
  • color: 指定曲線的顏色。(上面的傳送門中有相關的解釋)
  • linewidth: 指定曲線的寬度,可以不是整數,也可以使用縮寫形式的參數名lw。


plt.plot(x,z,"b--", label="$cos(x^2)$")
直接通參數"b--"指定曲線的顏色和線型。(仔細查看傳送門中的內容)


plt.xlabel("Times(s)")
plt.ylabel("Volt")
分別設置 X軸,Y軸的標題文字

plt.title("PyPlot First Example")
設置子圖標題

plt.ylim(-1.2, 1.2)
xlim, ylim:分別設置X,Y的顯示範圍

plt.legend()
顯示圖示,即圖中表示每條曲線的標籤(label)和樣式的矩形區域。

plt.show()
顯示繪圖窗口


面向對象方式繪圖

matplotlib實際上是一套面向對象的繪圖庫,它所繪製的圖表中的每個繪圖元素,例如線條,文字,刻度等在內存中都有一個對象與之對應。pyplot模塊雖然用法簡單,但
並不適合在較大的應用程序中使用,因此這裏介紹如何使用matplotlib的面向對象的方式編寫繪圖程序。

爲了將面向對象的繪圖庫包裝成只使用函數的API,pyplot模塊的內部保存了當前圖表以及當前子圖等信息。可以使用gcf()和gca()獲得這兩個對象,它們分別是
"Get Current Figure"和"Get Current Axes"開頭字母的縮寫。gcf()獲得的是表示圖表的Figure對象,而gca()獲得的則是表示子圖的Axes對象。

figure = plt.gcf()
axes = plt.gca()
print(figure)
print(axes)

Output
Figure(640x480)
Axes(0.125,0.11;0.775x0.77)





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章