python绘图教程_pyplot绘图教程
pyplot 是 Matplotlib 的子庫,該子庫提供了與 MATLAB 類似的繪圖 API,使用 pyplot 子庫可快速地繪制 2D 圖表。下面將介紹利用 pyplot 子庫繪制圖表的方法。
創建簡單圖形
1. 導入快速繪圖的函數庫—— pyplot 子庫
其代碼如下:
import matplotlib.pyplot as plt
2. 創建繪圖對象—— figure 對象
由于 Matplotlib 的圖像均位于繪圖對象中,在繪圖前,先要創建繪圖對象。如果不創建就直接調用繪圖 plot 函數,Matplotlib 會自動創建一個繪圖對象。
創建 figure 對象的函數語法格式如下:
plt.figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None,
frameon=True,FigureClass=,clear=False,**kwargs)
函數中的參數說明如下:
num:接收 int 或 string,可選,默認值為 None。如果該參數未提供,將創建新圖形,并且圖形編號將遞增,圖形對象將此數字保存在數字屬性中。如果提供了 num,并且已存在具有此 num 的數字,請將其設置為活動狀態,并返回對它的引用。如果此圖不存在,則創建它并返回它。如果 num 是一個字符串,則窗口標題將設置為此數字的 num;
figsize:接收整數元組(tuple),可選,默認值為 None。該參數指定繪圖對象的寬度和高度,單位為英寸。如果沒有提供,默認為 rcfigure.figsize;
dpi:接收 int,可選,默認值為 None。該參數指定繪圖對象的分辨率,即每英寸多少個像素。如果沒有提供,默認值為 80 或默認為 rcfigure.dpi;
facecolor:可選,默認值為 None。該參數指定背景顏色。如果未提供,默認為 rcfigure.facecolor;
edgecolor:可選,默認值為 None。該參數指定邊框顏色。如果未提供,則默認為 rcfigure.edgecolor;
frameon:接收 boolean,可選,默認值為 True。如果為 False,則禁止繪制圖框;
FigureClass:從 matplotlib.figure.Figure 派生的類,可選,使用自定義圖形實例;
clear:接收 boolean,可選,默認值為 False。如果為 True,并且該圖已經存在,那么它將被清除。
3. 繪制圖表
通過調用 plot 函數可實現在當前繪圖對象中繪制圖表,plot 函數的語法格式如下:
plt.plot(x,y,label,color,linewidth,linestyle)或 plt.plot(x,y,fmt,label)
函數中的參數說明如下:
x,y:表示所繪制的圖形中各點位置在 x 軸和 y 軸上的數據,用數組表示;
label:給所繪制的曲線設置一個名字,此名字在圖例(Legend)中顯示。只要在字符串前后添加“$”符號,Matplotlib 就會使用其內嵌的 LaTeX 引擎來繪制數學公式;
color:指定曲線的顏色;
linewidth:指定曲線的寬度;
linestyle:指定曲線的樣式;
fmt:指定曲線的顏色和線型,如“b—”,其中b表示藍色,“—”表示線型為虛線,該參數也稱為格式化參數。在 IPython 中輸入“plt.plot?”,可以查看格式化字符串的詳細配置。
注意:調用 plot 函數前,先定義所繪制圖形的坐標,即圖形在 x 軸和 y 軸上的數據。
4. 添加各類標簽和圖例
在調用 plot 函數完成繪圖后,還需要為圖表添加各類標簽和圖例,pyplot 中添加各類標簽和圖例的函數如表 1 所示。
表1:pyplot 中添加各類標簽和圖例的函數
函數
說明
plt.xlabel()
在當前圖形中指定 x 軸的名稱,可加指定位置、顏色、字體大小等參數
plt.ylabel()
在當前圖形中指定 y 軸的名稱,可以指定位置、顏色、字休大小等參數
plt.title()
在當前圖形中指定圖表的標題,可以指定標題名稱、位置、顏色、字體大小等參數
plt.xlim()
指定當前圖形 x 軸的范圍,只能輸入一個數值區間,不能使用字符串
plt.ylim()
指定當前圖形 y 軸的范圍,只能輸入一個數值區間,不能使用字符串
plt.xticks()
指定 x 軸刻度的數目與取值
plt.yticks()
指定 y 軸刻度的數目與取值
plt.legend()
指定當前圖形的圖例,可以指定圖例的大小、位置和標簽
5. 保存和顯示圖表
在完成圖表繪制、添加各類標簽和圖例后,下一步所要完成的任務是將圖表保存為圖片,并在本機上顯示圖表。保存和顯示圖表的函數如表 2 所示。
表 2:保存和顯示圖表的函數
函數
說明
plt.savefig()
保存繪制的圖表為圖片,可以指定圖表的分辨率、邊緣和顏色等參數
plt.show()
在本機顯示圖表
注意:要先將繪制的圖表保存為圖片,再顯示圖表。
6. 示例程序代碼
【例 1】用 Matplotlib 繪制一個正弦函數曲線,要求為所繪制的正弦函數曲線設置名字為“sin(x)”,曲線的顏色為紅色,曲線的寬度為 3。另外,再繪制一個余弦函數曲線,要求為所繪制的余弦函數曲線設置名字為“cos(x)”,曲線的顏色為藍色,曲線為虛線。
其程序代碼 test1.py 如下。
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0,10,1000)#在[0,10]之間等距取1000個數作為x的取值
y = np.sin(x) #定義y軸坐標
z = np.cos(x) #定義z軸坐標
plt.figure(figsize=(10,6)) #創建繪圖對象
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=3)
plt.plot(x,z,"b--",label="$cos(x)$")
#設置各類圖例和標簽
plt.xlabel("Time(s)")
plt.ylabel("Volt")
plt.title("PyPlot First Example")
plt.ylim(-1.2,1.2)
plt.legend()
plt.show()
運行程序后,顯示的函數曲線如圖 1 所示。
圖 1:正弦函數和余弦函數
創建子圖
在 Matplotlib 中,可以將一個繪圖對象分為幾個繪圖區域,在每個繪圖區域中可以繪制不同的圖像,這種繪圖形式稱為創建子圖。創建子圖可以使用 subplot() 函數,該函數的語法格式如下:
subplot(numRows,numCols,plotNum)
函數中的參數說明如下:
numRows:表示將整個繪圖區域等分為 numRows 行;
numCols:表示將整個繪圖區域等分為 numCols 列;
plotNum:表示當前選中要操作的區域。
subplot() 函數的作用就是將整個繪圖區域等分為 numRows(行)×numCols(列)個子區域,然后按照從左到右、從上到下的順序對每個子區域進行編號,左上的子區域的編號為 1。
如果 numRows、numCols 和 plotNum 這 3 個數都小于 10,可以把它們縮寫為一個整數,例如 subplot(223) 和 subplot(2,2,3) 是相同的。subplot() 在 plotNum 指定的區域中創建圖形。如果新創建的圖形和先前創建的圖形重疊,則先前創建的圖形將被刪除。
【例 2】創建 3 個子圖,分別繪制正弦函數、余弦函數和線性函數。
其程序代碼 test2.py 如下。
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x)
k = x
plt.subplot(221) # 第一行的左圖
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2)
plt.subplot(222) # 第一行的右圖
plt.plot(x,z,"b--",label="$cos(x)$")
plt.subplot(212) # 第二整行
plt.plot(x,k,"g--",label="$x$")
plt.legend()
plt.savefig('image.png',dpi=100) #dpi是指保存圖像的分辨率,默認值為80
plt.show()
運行程序后,顯示的圖形如圖 2 所示。
圖 2:創建3個子圖
總結
以上是生活随笔為你收集整理的python绘图教程_pyplot绘图教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: soap协议_Go和SOAP
- 下一篇: filter函数的用法_函数周期表丨筛选