在使用Python繪製圖表前,我們需要先安裝兩個庫檔案numpy和matplotlib。

Numpy是Python開源的數值計算擴充套件,可用來儲存和處理大型矩陣,比Python自身資料結構要高效;matplotlib是一個Python的影象框架,使用其繪製出來的圖形效果和MATLAB下繪製的圖形類似。

下面我透過一些簡單的程式碼介紹如何使用 Python繪圖。

一、圖形繪製

使用Python繪製圖表

使用Python繪製圖表

直方圖

import matplotlib。pyplot as plt

import numpy as np

mu = 100

sigma = 20

x = mu + sigma * np。random。randn(20000) # 樣本數量

plt。hist(x,bins=100,color=‘green’,normed=True) # bins顯示有幾個直方,normed是否對資料進行標準化

plt。show()

條形圖

import matplotlib。pyplot as plt

import numpy as np

y = [20,10,30,25,15]

index = np。arange(5)

plt。bar(left=index, height=y, color=‘green’, width=0。5)

plt。show()

折線圖

import matplotlib。pyplot as plt

import numpy as np

x = np。linspace(-10,10,100)

y = x**3

plt。plot(x,y,linestyle=‘——’,color=‘green’,marker=‘<’)

plt。show()

散點圖

import matplotlib。pyplot as plt

import numpy as np

x = np。random。randn(1000)

y = x+np。random。randn(1000)*0。5

plt。scatter(x,y,s=5,marker=‘<’) # s表示面積,marker表示圖形

plt。show()

餅狀圖

import matplotlib。pyplot as plt

import numpy as np

labels = ‘A’,‘B’,‘C’,‘D’

fracs = [15,30,45,10]

plt。axes(aspect=1) #使x y軸比例相同

explode = [0,0。05,0,0] # 突出某一部分割槽域

plt。pie(x=fracs, labels=labels, autopct=‘%。0f%%’, explode=explode) #autopct顯示百分比

plt。show()

箱形圖

主要用於顯示資料的分散情況。圖形分為上邊緣、上四分位數、中位數、下四分位數、下邊緣。外面的點時異常值

import matplotlib。pyplot as plt

import numpy as np

np。random。seed(100)

data = np。random。normal(size=(1000,4),loc=0,scale=1)

labels = [‘A’,‘B’,‘C’,‘D’]

plt。boxplot(data,labels=labels)

plt。show()

二、影象的調整

1、23種點形狀

“。” point “,” pixel “o” circle “v” triangle_down

“^” triangle_up “<” triangle_left “>” triangle_right “1” tri_down

“2” tri_up “3” tri_left “4” tri_right “8” octagon

“s” square “p” pentagon “*” star “h” hexagon1 “H” hexagon2

“+” plus “x” x “D” diamond “d” thin_diamond

2、8種內建預設顏色的縮寫

b:blue g:green r:red c:cyan

m:magenta y:yellow k:black w:white

3、4種線性

- 實線 ——虛線 -。點劃線 :點線

4、一張圖上繪製子圖

使用Python繪製圖表

使用Python繪製圖表

import matplotlib。pyplot as plt

import numpy as np

x=np。arange(1,100)

plt。subplot(221) # 2行2列第1個圖

plt。plot(x,x)

plt。subplot(222)

plt。plot(x,-x)

plt。subplot(223)

plt。plot(x,x*x)

plt。subplot(224)

plt。plot(x,np。log(x))

plt。show()

5、生成網格

使用Python繪製圖表

使用Python繪製圖表

import matplotlib。pyplot as plt

import numpy as np

y=np。arange(1,5)

plt。plot(y,y*2)

plt。grid(True,color=‘g’,linestyle=‘——’,linewidth=‘1’)

plt。show()

6、生成圖例

使用Python繪製圖表

使用Python繪製圖表

import matplotlib。pyplot as plt

import numpy as np

x=np。arange(1,11,1)

plt。plot(x,x*2)

plt。plot(x,x*3)

plt。plot(x,x*4)

plt。legend([‘Normal’,‘Fast’,‘Faster’])

plt。show()

作者:超人Python

出處:Python爬蟲實戰

知乎專欄:Python爬蟲實戰

最近很多人私信問我問題,平常知乎評論看到不多,如果沒有及時回覆,大家也可以加小編微信:tszhihu,進知乎大資料分析挖掘交流群,可以跟各位老師互相交流。謝謝。