成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python數(shù)據(jù)分析工具matplotlib怎么使用-創(chuàng)新互聯(lián)

這篇文章主要講解了“python數(shù)據(jù)分析工具 matplotlib怎么使用”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“python數(shù)據(jù)分析工具 matplotlib怎么使用”吧!

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計(jì),合作網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:合作等地區(qū)。合作做網(wǎng)站價(jià)格咨詢:18980820575

不論是數(shù)據(jù)挖掘還是數(shù)學(xué)建模,都免不了數(shù)據(jù)可視化的問(wèn)題。對(duì)于 Python 來(lái)說(shuō),matplotlib 是最著名的繪圖庫(kù),它主要用于二維繪圖,當(dāng)然也可以進(jìn)行簡(jiǎn)單的三維繪圖。它不但提供了一整套和 Matlab 相似但更為豐富的命令,讓我們可以非??旖莸赜?python 可視化數(shù)據(jù)。

matplotlib基礎(chǔ)

# 安裝
pip install matplotlib

兩種繪圖風(fēng)格

MATLAB風(fēng)格:

基本函數(shù)是 plot,分別取 x,y 的值,然后取到坐標(biāo)(x,y)后,對(duì)不同的連續(xù)點(diǎn)進(jìn)行連線。

面向?qū)ο螅?/p>

創(chuàng)建一個(gè)圖形 fig 和一個(gè)坐標(biāo) ax 。

  • fig:figure(plt.Figure) 是一個(gè)能容納各種坐標(biāo)軸,圖形,文字和標(biāo)簽的容器。

  • ax:axes(plt.Axes) 是一個(gè)帶有刻度和標(biāo)簽的矩形,最終會(huì)包含各種可視化元素。

示例:

import matplotlib.pyplot as plt
import numpy as np

# 圖形顯示風(fēng)格
plt.style.use('seaborn-whitegrid')

# 創(chuàng)建fig和ax
fig = plt.figure()
ax = plt.axes()

x = np.linspace(0,10,100)
# 顯示sin函數(shù)圖形
plt.plot(x, np.sin(x))
# 顯示cos函數(shù)圖形
plt.plot(x, np.cos(x))

plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

這就是利用面向?qū)ο蟮姆绞嚼L圖,在交互模式中可以看到,每畫(huà)一個(gè)圖就是產(chǎn)生一個(gè)對(duì)象,最后再顯示出來(lái)。

python數(shù)據(jù)分析工具 matplotlib怎么使用

繪圖樣式

python數(shù)據(jù)分析工具 matplotlib怎么使用

# 調(diào)整坐標(biāo)軸上下限
plt.xlim([xmin, xmax])
plt.ylim([ymin, ymax])

plt.axis([xmin, xmax, ymin, ymax])
# 參數(shù):tight:把圖形設(shè)置成緊湊模式,不留多余的部分
# equal:圖形顯示分辨率為1:1

線形圖

文字設(shè)置

圖形標(biāo)題:plt.title

坐標(biāo)軸標(biāo)題:plt.xlabel, plt.ylabel

基礎(chǔ)圖例:plt.legend

注意:對(duì)中文不友好,需要額外方法,盡量使用英文

# 示例
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(1, 10, 100)
plt.plot(x, np.sin(x))
plt.title('sin-function')
plt.xlabel('x-value')
plt.ylabel('y-label')
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

圖例

通過(guò)legend可以設(shè)置圖例,同時(shí)通過(guò)參數(shù)的調(diào)整可以細(xì)膩的設(shè)置圖例的位置、形式等。參數(shù)主要包括:

  • loc:圖例的位置

  • frameon:是否帶邊框

  • framealpha:顏色透明

  • shadow:陰影

# 示例
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(1, 10, 100)

fig, ax = plt.subplots()

ax.plot(x, np.sin(x), color='red', label='sin-function')
ax.plot(x, np.cos(x), color='blue', label='cos-function')

ax.legend(loc='upper right', frameon=True, shadow=True, framealpha=0.2)
# 設(shè)置圖例位置為右上,有邊框,有陰影,且透明度為0.2

plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

顏色條

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(1, 10, 100)
I = np.sin(x) * np.cos(x[:,np.newaxis])

plt.imshow(I)
plt.colorbar()
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

散點(diǎn)圖

散點(diǎn)圖基礎(chǔ)

散點(diǎn)圖主要以點(diǎn)為主,數(shù)據(jù)是不連續(xù)的數(shù)據(jù),通過(guò)設(shè)置線的型號(hào)來(lái)完成。型號(hào)包括‘o'、‘+'、‘*'、‘1'、‘h'、‘D'等等,具體使用探索一下就好,用不到太多。

import matplotlib.pyplot as plt
import numpy as np

# 圖形顯示風(fēng)格
plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 30)
y = np.sin(x)

# 通過(guò)設(shè)置線型為點(diǎn)來(lái)完成散點(diǎn)圖的繪制
plt.plot(x, y, 'o', color='blue')
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

如果設(shè)置線型為點(diǎn)線結(jié)合,那么將繪制出連續(xù)的線,對(duì)應(yīng)點(diǎn)處為所設(shè)置的點(diǎn)型。

畫(huà)散點(diǎn)圖還可以使用scatter函數(shù)來(lái)畫(huà),他有很多更細(xì)節(jié)的描述,用法與plot類似,對(duì)于數(shù)據(jù)量較大的可視化時(shí),plot的效率更高一些。

誤差線

import matplotlib.pyplot as plt
import numpy as np

# 圖形顯示風(fēng)格
plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 30)
dy = x * 0.5
y = np.sin(x) + dy

plt.errorbar(x, y, yerr=dy, fmt='.k', ecolor='blue')
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

連續(xù)誤差線表示的是連續(xù)量,可以使用 plt.plot 和 plt.fill_between 來(lái)畫(huà)出。

import matplotlib.pyplot as plt
import numpy as np

# 圖形顯示風(fēng)格
plt.style.use('seaborn-whitegrid')

x = np.linspace(0, 10, 30)
ysin = np.sin(x)
ycos = np.cos(x)

plt.plot(x, ysin, color='red')
plt.plot(x, ycos, color='blue')

plt.fill_between(x, ysin, ycos, color='gray', alpha=0.2)
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

等高線(密度)

  • plt.contour   等高線

  • plt.contourf  自帶填充顏色

  • plt.imshow   顯示圖形

等高線繪制方法:z = f(x,y),z表示高度。當(dāng)只有一個(gè)顏色繪圖時(shí),虛線表示負(fù)值,實(shí)線表示正值。meshgrid 可以將一維數(shù)據(jù)變成二維網(wǎng)格數(shù)據(jù)。

import matplotlib.pyplot as plt
import numpy as np

def f(x, y):
 return np.sin(x) ** 10 + np.cos(10 + y * x) * np.cos(x)

x = np.linspace(0, 5, 50)
y = np.linspace(0, 5, 40)

# 得到網(wǎng)格點(diǎn)矩陣
x, y =np.meshgrid(x, y)

# 計(jì)算z軸的值
z = f(x, y)

# 繪制圖形
plt.contour(x, y, z, colors='green')
# plt.contour(x, y, z, 50, cmap='RdGy') # 更改配色,值50等分,紅灰配色
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

python數(shù)據(jù)分析工具 matplotlib怎么使用

plt.contourf(x, y, z, 50, cmap='RdGy') # 改為contourf,自動(dòng)填充顏色,則變?yōu)檫B續(xù)的

python數(shù)據(jù)分析工具 matplotlib怎么使用

直方圖

基本畫(huà)法:plt.hist 可以直接畫(huà)直方圖,參數(shù)主要包括:

  • bins:劃分段(柱數(shù))

  • color:顏色

  • alpha:透明度

  • histtype:圖類型

import matplotlib.pyplot as plt
import numpy as np

data = np.random.randn(1000)
plt.hist(data, bins=30, alpha=0.3, histtype='stepfilled', color='blue', edgecolor='none')
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

程序中 random.randn random.rand 相比,randn表示隨機(jī)生成的數(shù)符合正態(tài)分布,因此畫(huà)出圖來(lái)是如上圖所示。

子圖

plt.subplot(2,1,1) # 子圖,(2,1,1)代表,創(chuàng)建2*1的畫(huà)布,并且定位于畫(huà)布1 ;等效于plt.subplot(211),即去掉逗號(hào)
# subplots 可以同時(shí)創(chuàng)建多個(gè)子圖
figure,ax = plt.subplots(2, 3) 
# 這是一個(gè)靈活創(chuàng)建子圖的方法,可以創(chuàng)建任意組合的圖形,不必一一對(duì)齊,以下為示例:
grid = plt.GridSpec(2, 3, wspace=0.3, hspace=0.2)
plt.subplot(grid[,:2])
plt.subplot(grid[1,1:3])

python數(shù)據(jù)分析工具 matplotlib怎么使用

圖例配置

文字注釋

通過(guò)不同的坐標(biāo)變換,可以把文字放在不同的位置:

  • ax.transData:以數(shù)據(jù)為基準(zhǔn)

  • ax.transAxes:以軸為基準(zhǔn)

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()
ax.axis = ([0, 1, 0, 1])

ax.text(0.5, 0.5, "Data:(0.5, 0.5)", transform=ax.transData)
ax.text(0.5, 0.1, "Axes:(0.5, 0.1)", transform=ax.transAxes)
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

箭頭注釋

  • plt.arrow:產(chǎn)生SVG向量圖形式的箭頭,會(huì)隨著分辨率改變而改變,不推薦

  • plt.annotate:可以創(chuàng)建文字和箭頭

import matplotlib.pyplot as plt
import numpy as np

fig, ax = plt.subplots()

x = np.linspace(0, 20, 1000)
ax.plot(x, np.cos(x))
ax.axis('equal')

ax.annotate("max", xy=(6.28, 1), xytext=(10, 4), arrowprops=dict(facecolor='black', shrink=0.05))
ax.annotate('min', xy=(5 * np.pi, -1), xytext=(2, -6), arrowprops=dict(arrow, connectionstyle='angle3, angleA=0, angleB=-90'))
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

python數(shù)據(jù)分析工具 matplotlib怎么使用

三維圖

基礎(chǔ)三維圖

matplotlib 中繪制三維圖用到 mplot3d 包。導(dǎo)入 mplot3d 包后,可以利用 projection 參數(shù),控制繪制三維圖。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d

fig = plt.figure()
ax = plt.axes(projection='3d')

plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

三維圖中當(dāng)然包含三個(gè)軸,x,y,z。畫(huà)線 ax.plot3D,畫(huà)點(diǎn) ax.scatter3D。為了三維效果,它會(huì)自動(dòng)將遠(yuǎn)處的點(diǎn)顏色變淺。

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d

fig = plt.figure()
ax = plt.axes(projection='3d')

z = np.linspace(0, 15, 100)
x = np.sin(z)
y = np.cos(z)

ax.plot3D(x, y, z, 'red')
ax.scatter3D(x, y, z, 'blue')
plt.show()

三維等高線

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits import mplot3d

fig = plt.figure()
ax = plt.axes(projection='3d')

def f(x, y):
 return np.sin(np.sqrt(x ** 2 + y ** 2))

x = np.linspace(-6, 6, 30)
y = np.linspace(-6, 6, 30)
X, Y =np.meshgrid(x, y)
Z = f(X, Y)

ax.contour3D(X, Y, Z, 50)
plt.show()

python數(shù)據(jù)分析工具 matplotlib怎么使用

圖形繪制出來(lái)后,可以通過(guò) ax.view_init 來(lái)控制觀察的角度,便于理解。

  • 俯仰角度:x-y 平面的旋轉(zhuǎn)角度

  • 方位角度:沿著 z 軸順時(shí)針旋轉(zhuǎn)角度

pandas繪圖

上篇文章講述了 pandas 的基本用法,pandas 是數(shù)據(jù)分析中最重要的工具之一,這里補(bǔ)充一下 pandas 繪圖。

Series繪圖

# 這是一個(gè)小栗子
s1 = Series(np.random.randint(1000).cumsum()) # 創(chuàng)建series,cumsum()是指疊加求和,本位數(shù)是前幾項(xiàng)之和
s1.plot() # series有自己的plot函數(shù),里面可以寫(xiě)入想要的參數(shù)

DataFrame繪圖

df = DataFrame(
 np.random.randint(1,10,40).reshape(10,4),
 columns=['A','B','C','D']
 )
df.plot()
# dataframe也有自己的plot,按列畫(huà)出來(lái),參數(shù)包含ax,選擇輸出的畫(huà)布
# 參數(shù):stacked=True,表示一個(gè)堆疊的情況,同一個(gè)index下,columns一不同顏色疊在一起

總結(jié)

感謝各位的閱讀,以上就是“python數(shù)據(jù)分析工具 matplotlib怎么使用”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)python數(shù)據(jù)分析工具 matplotlib怎么使用這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

分享標(biāo)題:python數(shù)據(jù)分析工具matplotlib怎么使用-創(chuàng)新互聯(lián)
鏈接URL:http://jinyejixie.com/article34/jgcpe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、建站公司域名注冊(cè)、做網(wǎng)站企業(yè)建站、網(wǎng)站內(nèi)鏈

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
株洲市| 忻州市| 浦县| 安泽县| 武胜县| 仁怀市| 罗定市| 南部县| 蚌埠市| 宜兰县| 双峰县| 开封市| 兴隆县| 陇南市| 临海市| 庆阳市| 建阳市| 富阳市| 和田市| 偃师市| 汝城县| 尚义县| 葫芦岛市| 黑河市| 谷城县| 凤山市| 黎城县| 建始县| 青神县| 灵川县| 平果县| 汉源县| 万源市| 贵州省| 罗田县| 濮阳县| 崇明县| 神池县| 合江县| 牡丹江市| 梅河口市|