用pylab模塊的plot函數(shù)
南雄ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書(shū)未來(lái)市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書(shū)銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書(shū)合作)期待與您的合作!
pylab.plot(x,y)其中x y都是數(shù)組
就能畫(huà)出以x,y中元素為坐標(biāo)的折線圖
計(jì)算其平方值,并將結(jié)果存儲(chǔ)到列表y_values中。
1、首先創(chuàng)建一個(gè)包含x值的列表,其中包含數(shù)字1~1000。
2、接下來(lái)是一個(gè)生成y值的列表解析,它遍歷x值(forxinx_values),計(jì)算其平方值,并將結(jié)果存儲(chǔ)到列表y_values中。
3、然后,將輸入列表和輸出列表傳遞給scatter()。使用函數(shù)axis()指定了每個(gè)坐標(biāo)軸的取值范圍。
Python由荷蘭數(shù)學(xué)和計(jì)算機(jī)科學(xué)研究學(xué)會(huì)的吉多·范羅蘇姆于1990年代初設(shè)計(jì),作為一門(mén)叫做ABC語(yǔ)言的替代品。
在seaborn中,繪制折線圖的函數(shù)有 lineplot 和 relplot 。
簡(jiǎn)單方式是傳入pandas Series,其索引會(huì)成為x軸,值為y軸。
另一種方式是傳入pandas dataFrame,通過(guò)設(shè)置 x , y 繪制。
當(dāng)折線圖中,x軸對(duì)應(yīng)多個(gè)y軸數(shù)據(jù)時(shí),seaborn會(huì)自動(dòng)繪制置信區(qū)間。
圖中的陰影表示置信區(qū)間,默認(rèn)是 95% ,可以通過(guò) ci 參數(shù)修改置信區(qū)間。
在一個(gè)圖中繪制多條折線圖。需要傳入的數(shù)據(jù)為pandas dataFrame。
當(dāng)傳入長(zhǎng)型數(shù)據(jù)時(shí),除了需要設(shè)置 x , y 參數(shù)外,還需要設(shè)置 hue 或 size 或 style 參數(shù)。
seaborn可以直接對(duì)寬型數(shù)據(jù)繪制多折線圖,其索引成為x軸,所有的列自動(dòng)繪制成多折線。
設(shè)置 makers=True 參數(shù)可以顯示散點(diǎn)。
分面折線圖的繪制,需要用 relplot 函數(shù)。設(shè)置 kind="line" 表示繪制折線圖,設(shè)置 col 或 row 控制分面行為。
我們經(jīng)常會(huì)使用Python的Pandas繪制各種數(shù)據(jù)圖形,那么如何使用它繪制折線圖呢?下面我給大家分享一下。
工具/材料
Pycharm
01
首先我們需要打開(kāi)Excel軟件準(zhǔn)備需要的數(shù)據(jù),這里多準(zhǔn)備幾列數(shù)據(jù),一列就是一條折線,如下圖所示
02
然后我們打開(kāi)Pycharm軟件,新建Python文件,導(dǎo)入Pandas庫(kù),接著將Excel中的數(shù)據(jù)讀取進(jìn)數(shù)據(jù)集緩存,如下圖所示
03
接下來(lái)我們利用plot方法繪制折線圖,如下圖所示,這里只添加了一列標(biāo)題
04
運(yùn)行文件以后我們就可以看到折線圖顯示出來(lái)了,但是比較的簡(jiǎn)單,下面我們逐漸的豐富它
05
然后在plot方法中將excel里面的多列標(biāo)題都添加進(jìn)來(lái),如下圖所示
06
這次在運(yùn)行文件的時(shí)候我們就可以看到折線圖上有多條線了,如下圖所示
07
接下來(lái)我們?cè)跒檎劬€圖設(shè)置標(biāo)題,X,Y坐標(biāo)軸的內(nèi)容,如下圖所示
08
然后通過(guò)plot方法下面的area方法對(duì)折線圖的空白區(qū)域進(jìn)行疊加填充,如下圖所示
09
最后我們運(yùn)行完善好后的文件,就可以看到如下圖所示的折線圖了,到此我們的折線圖繪制也就完成了
#?encoding=utf-8
import?matplotlib.pyplot?as?plt
from?pylab?import?*?????????????????????????????????#支持中文
mpl.rcParams['font.sans-serif']?=?['SimHei']
names?=?['5',?'10',?'15',?'20',?'25']
x?=?range(len(names))
y?=?[0.855,?0.84,?0.835,?0.815,?0.81]
y1=[0.86,0.85,0.853,0.849,0.83]
#plt.plot(x,?y,?'ro-')
#plt.plot(x,?y1,?'bo-')
#pl.xlim(-1,?11)??#?限定橫軸的范圍
#pl.ylim(-1,?110)??#?限定縱軸的范圍
plt.plot(x,?y,?marker='o',?mec='r',?mfc='w',label=u'y=x^2曲線圖')
plt.plot(x,?y1,?marker='*',?ms=10,label=u'y=x^3曲線圖')
plt.legend()??#?讓圖例生效
plt.xticks(x,?names,?rotation=45)
plt.margins(0)
plt.subplots_adjust(bottom=0.15)
plt.xlabel(u"time(s)鄰居")?#X軸標(biāo)簽
plt.ylabel("RMSE")?#Y軸標(biāo)簽
plt.title("A?simple?plot")?#標(biāo)題
plt.show()
1.環(huán)境
系統(tǒng):windows10
python版本:python3.6.1
使用的庫(kù):matplotlib,numpy
2.numpy庫(kù)產(chǎn)生隨機(jī)數(shù)幾種方法
import numpy as np
numpy.random
rand(d0,?d1,?...,?dn) ?
In [2]: x=np.random.rand(2,5)
In [3]: x
Out[3]:
array([[ 0.84286554, ?0.50007593, ?0.66500549, ?0.97387807, ?0.03993009],
[ 0.46391661, ?0.50717355, ?0.21527461, ?0.92692517, ?0.2567891 ]])
randn(d0,?d1,?...,?dn)查詢結(jié)果為標(biāo)準(zhǔn)正態(tài)分布
In [4]: x=np.random.randn(2,5)
In [5]: x
Out[5]:
array([[-0.77195196, ?0.26651203, -0.35045793, -0.0210377 , ?0.89749635],
[-0.20229338, ?1.44852833, -0.10858996, -1.65034606, -0.39793635]])
randint(low,high,size) ?
生成low到high之間(半開(kāi)區(qū)間 [low, high)),size個(gè)數(shù)據(jù)
In [6]: x=np.random.randint(1,8,4)
In [7]: x
Out[7]: array([4, 4, 2, 7])
random_integers(low,high,size) ?
生成low到high之間(閉區(qū)間 [low, high)),size個(gè)數(shù)據(jù)
In [10]: x=np.random.random_integers(2,10,5)
In [11]: x
Out[11]: array([7, 4, 5, 4, 2])
3.散點(diǎn)圖
x x軸
y y軸
s ? 圓點(diǎn)面積
c ? 顏色
marker ?圓點(diǎn)形狀
alpha ? 圓點(diǎn)透明度????????????????#其他圖也類似這種配置
N=50# height=np.random.randint(150,180,20)# weight=np.random.randint(80,150,20)
x=np.random.randn(N)
y=np.random.randn(N)
plt.scatter(x,y,s=50,c='r',marker='o',alpha=0.5)
plt.show()
4.折線圖
x=np.linspace(-10000,10000,100) #將-10到10等區(qū)間分成100份
y=x**2+x**3+x**7
plt.plot(x,y)
plt.show()
折線圖使用plot函數(shù)
5.條形圖
N=5
y=[20,10,30,25,15]
y1=np.random.randint(10,50,5)
x=np.random.randint(10,1000,N)
index=np.arange(N)
plt.bar(left=index,height=y,color='red',width=0.3)
plt.bar(left=index+0.3,height=y1,color='black',width=0.3)
plt.show()
orientation設(shè)置橫向條形圖
N=5
y=[20,10,30,25,15]
y1=np.random.randint(10,50,5)
x=np.random.randint(10,1000,N)
index=np.arange(N)# plt.bar(left=index,height=y,color='red',width=0.3)# plt.bar(left=index+0.3,height=y1,color='black',width=0.3)#plt.barh() 加了h就是橫向的條形圖,不用設(shè)置orientation
plt.bar(left=0,bottom=index,width=y,color='red',height=0.5,orientation='horizontal')
plt.show()
6.直方圖
m1=100
sigma=20
x=m1+sigma*np.random.randn(2000)
plt.hist(x,bins=50,color="green",normed=True)
plt.show()
# #雙變量的直方圖# #顏色越深頻率越高# #研究雙變量的聯(lián)合分布
#雙變量的直方圖#顏色越深頻率越高#研究雙變量的聯(lián)合分布
x=np.random.rand(1000)+2
y=np.random.rand(1000)+3
plt.hist2d(x,y,bins=40)
plt.show()
7.餅狀圖
#設(shè)置x,y軸比例為1:1,從而達(dá)到一個(gè)正的圓
#labels標(biāo)簽參數(shù),x是對(duì)應(yīng)的數(shù)據(jù)列表,autopct顯示每一個(gè)區(qū)域占的比例,explode突出顯示某一塊,shadow陰影
labes=['A','B','C','D']
fracs=[15,30,45,10]
explode=[0,0.1,0.05,0]#設(shè)置x,y軸比例為1:1,從而達(dá)到一個(gè)正的圓
plt.axes(aspect=1)#labels標(biāo)簽參數(shù),x是對(duì)應(yīng)的數(shù)據(jù)列表,autopct顯示每一個(gè)區(qū)域占的比例,explode突出顯示某一塊,shadow陰影
plt.pie(x=fracs,labels=labes,autopct="%.0f%%",explode=explode,shadow=True)
plt.show()
8.箱型圖
import matplotlib.pyplot as pltimport numpy as npdata=np.random.normal(loc=0,scale=1,size=1000)#sym 點(diǎn)的形狀,whis虛線的長(zhǎng)度plt.boxplot(data,sym="o",whis=1.5)plt.show()
#sym 點(diǎn)的形狀,whis虛線的長(zhǎng)度