1. 程式人生 > >使用Python繪製圖表

使用Python繪製圖表

一、圖形繪製

直方圖

import matplotlib.pyplot as plt

import numpy as np

mu = 100sigma = 20x = 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、一張圖上繪製子圖

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、生成網格

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、生成圖例

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()