資料視覺化入門-函式影象繪製
阿新 • • 發佈:2018-12-31
文章參考
畫餅圖
import matplotlib.pyplot as plt
labels=['frogs','hogs','dogs','logs']
sizes=[15,20,45,10]
colors=['yellowgreen','gold','lightskyblue','lightcoral']
explode=[0,0.1,0,0]
#explode每一部分距離圓心的位置,autopct是否在每塊上進行標註,
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True ,startangle=50)
plt.show()
確定座標範圍
使用axis()命令給定座標範圍
plt.axis([xmin,xmax,ymin,ymax])
xlim()和ylim()可分別調整x,y的座標範圍
生成多個圖表
import matplotlib.pyplot as plt
import numpy as np
from pylab import *
x=np.linspace(-5,5,50)
y=np.sin(x)
plt.figure(1)
plt.subplot(211)
plt.plot(x,y)
ax=plt.gca()
plt.subplot(212 )
#設定座標軸範圍
xlim(-2.5,2.5)
ylim(-1,1)
#修改其中一個座標軸資訊
ax.spines['top'].set_color('none')
ax.spines['right'].set_color('none')
ax.spines['left'].set_position(('data',0))
ax.spines['bottom'].set_position(('data',0))
plt.plot(x,y)
plt.show()
疊加圖
線條的屬性
實線:‘-’ 虛線:‘.’ 破折線:‘–’ 點劃線:‘-.’
線條的標記
正方形 :‘s’ 星號 : ‘*’ 加號 : ‘+’…..
線條的顏色
基本上就是首字母
藍色: ‘b’ 紅色 : ‘r’…….
注:arange()
通過指定開始值、終值和步長建立表示 等差數列的一維陣列,注意得到的結果陣列不包含終值。
linspace()
通過指定開始值、終值和元素個數建立表示等差數列的一維陣列,可以通過endpoint引數指定是否包含終值,預設值為True,即包含終值。
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0, 5, 30)
#線條的屬性可以合併表示例如‘g^’為綠色三角形標記
plt.plot(x,x,'r--',x,x**2,'bs',x,x**3,'g^')
plt.show()
資料直方圖簡介
plt.hist(data,bins,normed,facecolor,edgecolor,alpha)
引數介紹:
data:繪圖資料
bins:長條的數目
normed:將得到的資料向量歸一化,預設為0,不歸一化,顯示頻數,歸一化顯示為頻率
facecolor:長條塊的顏色
edgecolor:長條塊的邊框的顏色
alpha:透明度
使直方圖正常顯示中文和負號
#顯示黑體中文
matplotlib.rcParams['font.sans-serif']='SimHei']
#顯示負號
matplotlib。rcParams['axes.unicode_minus']=False
注意:是圖示正常顯示中文後,顏色屬性可直接用英文表達。
根據正態分佈繪製頻率分佈直方圖
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import scipy as sp
from scipy import stats
#設定matplotlib正常顯示中文和負號
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False
data=np.random.randn(10000)
plt.hist(data,bins=30,normed=1,facecolor="blue",edgecolor="red",alpha=0.6)
plt.xlabel("區間")
plt.ylabel("頻數/頻率")
plt.title("正態頻率分佈直方圖")
plt.show()
繪製統計圖
繪製正態分佈曲線需呼叫scipy庫,正態分佈所用到的函式為:
正態分佈:scipy.stats.norm.pdf(x,loc,scale)
正態直方圖:scipy.stats.norm.rvs(loc,scale,size)
import matplotlib.pyplot as plt
import numpy as np
import matplotlib
import scipy as sp
from scipy import stats
#設定matplotlib正常顯示中文和負號
matplotlib.rcParams['font.sans-serif']=['SimHei']
matplotlib.rcParams['axes.unicode_minus']=False
data=np.linspace(-5,5,1000)
plt.plot(data, sp.stats.norm.pdf(x=data, loc=0,scale=1))
#loc對應均值,scale對應方差
plt.hist(sp.stats.norm.rvs(loc=0,scale=1,size=200),bins=30,normed=1,facecolor="blue",edgecolor="red",alpha=0.6)
plt.xlabel("區間")
plt.ylabel("頻數/頻率")
plt.title("正態頻率分佈直方圖")
plt.show()