前言
最近正在學(xué)習(xí)大學(xué)和高中的數(shù)學(xué)知識(shí)浓体,統(tǒng)計(jì)和函數(shù)部分,覺(jué)的通過(guò)繪制出圖表贱除,結(jié)合圖形去學(xué)習(xí),會(huì)更直觀并且能夠更好的去理解捉兴。
這里我們會(huì)用到python的 Matplotlib庫(kù)去繪制圖形,并且會(huì)結(jié)合numpy庫(kù)一起使用虽缕。
Matplotlib:
Math(數(shù)學(xué))+plot(圖表圖形)+lib(庫(kù))合在一起叫做數(shù)學(xué)圖表庫(kù)江耀, Matplotlib是 Python 編程語(yǔ)言的一個(gè)繪圖工具包祥国。
NumPy:
NumPy(Numerical Python) 是 Python 語(yǔ)言的一個(gè)擴(kuò)展程序庫(kù)建车,支持大量的維度數(shù)組與矩陣運(yùn)算缤至,此外也針對(duì)數(shù)組運(yùn)算提供大量的數(shù)學(xué)函數(shù)庫(kù)嫉到。
下面先看看繪制出來(lái)的圖形都是長(zhǎng)什么樣的何恶,這里只截了一些統(tǒng)計(jì)圖和數(shù)學(xué)函數(shù)圖形的靜態(tài)圖,更多圖形繪制可以上官方網(wǎng)站查看(3d還有動(dòng)態(tài)都可以實(shí)現(xiàn))盛撑。
圖表圖形基本組成
知道了可視化圖形的好處,也了解了mathplotlib和numpy是什么创坞,接下來(lái)就學(xué)習(xí)看如何利用這兩個(gè)工具就實(shí)現(xiàn)我們要繪制的圖形。
首先我們得知道一個(gè)圖表圖形都有哪些組成部分偎谁,下面是官方給出的一個(gè)圖形纲堵,標(biāo)注了一些圖形的常見(jiàn)部分:
- Figure:整個(gè)圖形對(duì)象
- Axes:子圖,一個(gè)Axes是一個(gè)繪圖區(qū)域铐望,一個(gè)Figure可以包括多個(gè)子圖茂附,默認(rèn)是一個(gè),且每次繪圖其實(shí)都是在figure上的Axes上繪圖乒验。
- Axix :坐標(biāo)軸 X axis label Y axis lebel 分別顯示坐標(biāo)軸的標(biāo)題
- Title:圖表標(biāo)題
- Legend :圖例,一個(gè)圖表可以有多個(gè)圖例蒂阱,比如顯示兩個(gè)折線圖等
- Tick:刻度
- Spines:軸脊柱——記錄數(shù)據(jù)區(qū)域邊界的線.
- Grid:設(shè)置是否顯示網(wǎng)格
動(dòng)手繪制y=5x直線圖
光看文字很難理解狂塘,下面我們就動(dòng)手去繪制 y=5x 的直線圖形,做中學(xué)去理解了嚎。
代碼:
import matplotlib.pyplot as plt
# 生成x軸數(shù)據(jù) [-10, -8, -6, -4, -2, 0, 2, 4, 6, 8]
x = [i for i in range(-10, 10, 2)]
# 生成y軸數(shù)據(jù) [-50, -40, -30, -20, -10, 0, 10, 20, 30, 40]
y = [5*i for i in range(-10, 10, 2)]
# 傳入數(shù)據(jù)到plot 折線圖類(lèi)型圖表
plt.plot(x,y)
# 顯示圖表
plt.show()
效果圖:
解釋:
其實(shí)可視化就是利用程序去繪制圖形新思,只要我們把數(shù)據(jù)準(zhǔn)備好,繪制圖形比用我們手繪制圖形簡(jiǎn)單多了纵刘。手繪制圖形是不是得將所有點(diǎn)(x,y)數(shù)據(jù)準(zhǔn)備好荸哟,然后一一連接到一起就可以了。編程只要你要數(shù)據(jù)準(zhǔn)備好舵抹,按照繪圖方法規(guī)定劣砍,將對(duì)應(yīng)數(shù)據(jù)放到對(duì)應(yīng)位置也就解決了,是不是很簡(jiǎn)單呢刑枝。
美化圖表
上面快速繪制了一個(gè)圖形,圖形不是很美觀和完整靠娱,下面再去修飾一下掠兄。
代碼:
import matplotlib.pyplot as plt
# 生成x軸數(shù)據(jù) [-10, -8, -6, -4, -2, 0, 2, 4, 6, 8]
x = [i for i in range(-10, 10, 2)]
# 生成y軸數(shù)據(jù) [-50, -40, -30, -20, -10, 0, 10, 20, 30, 40]
y = [5*i for i in range(-10, 10, 2)]
# 傳入數(shù)據(jù)到plot 折線圖類(lèi)型圖表
plt.plot(x,y,label="y=5x",color="red",linestyle="--",linewidth="1",marker="*")
plt.legend()
# 顯示中文
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.title('直線方程') # 圖表標(biāo)題
plt.ylabel('Y-軸') # x軸名稱
plt.xlabel('X-軸') # y軸名稱
# 顯示網(wǎng)格
plt.grid()
# 顯示圖表
plt.show()
效果:
解釋:
這里通過(guò)配置了一些參數(shù) 蚂夕,給圖表修飾了一下,最主要是plt.plot(x,y,label="y=5x",color="red",linestyle="--",linewidth="1",marker="*")代碼中的參數(shù)侈贷;
- label就是圖例標(biāo)簽名稱牍汹,配合著plt,legend一起使用;
- color設(shè)置顏色;
- linestyle線的類(lèi)型;
- linewidth線的粗細(xì)設(shè)置;
- marker點(diǎn)的標(biāo)記形狀;還有更多參數(shù)在之后具體的圖形繪制中會(huì)講到。
參考:
(全文完)
預(yù)告:下節(jié)課將學(xué)習(xí)如何一次顯示多個(gè)圖形嫁蛇。
長(zhǎng)按二維碼露该,加關(guān)注!葉子陪你玩
歡迎轉(zhuǎn)載抑党,轉(zhuǎn)載請(qǐng)注明出處撵摆!
歡迎關(guān)注公眾微信號(hào):葉子陪你玩
分享自己的python編程學(xué)習(xí)之路