局域網(wǎng)內(nèi)個(gè)人網(wǎng)站建設(shè)軟文大全
一、背景
當(dāng)我們?cè)趯憄ython程序時(shí),不可避免的需要將數(shù)據(jù)可視化,也就是繪制出數(shù)據(jù)的曲線圖,以便我們更直觀的觀察數(shù)據(jù)間的變化,和方便對(duì)比。此時(shí)就要用到matplotlib庫(kù)了。
matplotlib官方給出的定義是:
翻譯過(guò)來(lái)也就是:
Matplotlib:使用python進(jìn)行可視化。
Matplotlib是一個(gè)用于在Python中創(chuàng)建靜態(tài)、動(dòng)畫和交互式可視化的綜合庫(kù)。Matplotlib使容易的事情變得更容易,使困難的事情成為可能。
matplotlib官網(wǎng):https://matplotlib.org/
二、一個(gè)簡(jiǎn)單的繪圖例子和解析
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
# from matplotlib import pyplot as plt
t = np.linspace(0, 2*np.pi, 100)
print(1.5*np.pi)
y_demo = np.zeros((2, 100))
y_demo[0,:] = np.sin(t)
y_demo[1,:] = np.cos(t)
plt.figure(figsize=(10, 7))
plt.plot(y_demo[0, :], 'g-.', label='demo sine')
plt.plot(y_demo[1, :], 'm', label='demo cosine')
plt.legend(loc="lower left")
plt.grid()
plt.xlabel('time')
plt.ylabel('y')
plt.show()print(y_demo)
繪制出的結(jié)果為:
代碼解析:
1、import numpy as np
導(dǎo)入numpy庫(kù),進(jìn)行一些數(shù)學(xué)運(yùn)算;
2、import matplotlib.pyplot as plt
導(dǎo)入matplotlib庫(kù)的pyplot模塊,這個(gè)就是繪圖的庫(kù),當(dāng)然也可以寫為:from matplotlib import pyplot as plt
3、t = np.linspace(0, 2*np.pi, 100)
定義橫坐標(biāo) t t t,為0到 2 π 2\pi 2π,并將其分為100份,也就是從0到99(python是從0開始索引的)
4、y_demo = np.zeros((2, 100))
定義縱坐標(biāo)y_demo,這里2是指兩條曲線,且此處的100必須和步驟3的100對(duì)應(yīng),如果步驟3改為500,此處也應(yīng)改為500。np.zeros是構(gòu)造一個(gè)全0的數(shù)組,這里也就是構(gòu)造2行100列的全零數(shù)組;
5、y_demo[0,:] = np.sin(t)
,第一個(gè)函數(shù)的縱坐標(biāo)是y_demo[0,:],切記python是從0檢索
6、y_demo[1,:] = np.cos(t)
,第二個(gè)函數(shù)的縱坐標(biāo)是y_demo[1,:]
7、plt.figure(figsize=(10, 7))
繪制的圖片大小為10*7
8、plt.plot(y_demo[0, :], 'g-.', label='demo sine')
使用plot繪制第一條曲線,顏色g是綠色,線的類型是----,曲線名稱為demo sine
9、plt.plot(y_demo[1, :], 'm', label='demo cosine')
使用plot繪制第二條曲線,顏色m是紅色,線的類型是實(shí)線,曲線名稱為demo cosine
10、plt.legend(loc="lower left")
為添加圖例,loc可以指定圖例位置,可以選擇'best', 'upper right', 'upper left', 'lower left', 'lower right', 'right', 'center left', 'center right', 'lower center', 'upper center', 'center'
,當(dāng)然也可以什么都不寫,讓他自動(dòng)選擇圖例位置,也就是我們??吹降?code>plt.legend()
11、plt.grid()
為圖片添加網(wǎng)格,好看一些
12、plt.xlabel('time')和plt.ylabel('y')
添加橫縱坐標(biāo)的標(biāo)簽名稱
13、plt.show()
顯示圖片