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