




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第7章數(shù)據(jù)可視化
數(shù)7.1Nmupy應(yīng)用7.2pandas應(yīng)用7.3matplotlib應(yīng)用7.4pyecharts應(yīng)用Numpy是外部庫。這里所說的“外部”是指不包含在標(biāo)準版Python中。因此,我們首先要導(dǎo)入Numpy庫(importnumpyasnp)。1導(dǎo)入NumPy1.創(chuàng)建Numpy數(shù)組2Numpy數(shù)組2.NumPy數(shù)組的算術(shù)運算2Numpy數(shù)組NumPy數(shù)組廣播2Numpy數(shù)組3.索引2Numpy數(shù)組4.聚合2Numpy數(shù)組1創(chuàng)建二維數(shù)組(矩陣)2.矩陣算術(shù)運算3Numpy二維數(shù)組數(shù)組廣播3Numpy二維數(shù)組算術(shù)運算和矩陣運算的一個關(guān)鍵區(qū)別是矩陣乘法使用點乘。3Numpy二維數(shù)組3.矩陣索引和切片3Numpy二維數(shù)組4.矩陣聚合3Numpy二維數(shù)組5.轉(zhuǎn)置和重塑3Numpy二維數(shù)組ndarray對象4Numpy的N維數(shù)組ndarray創(chuàng)建函數(shù)及描述4Numpy的N維數(shù)組函數(shù)描述np.array([x,y,z],dtype=int)從Python列表或元組創(chuàng)造數(shù)組np.arange(x,y,i)生成一個由x到y(tǒng),以i為步長的數(shù)組np.linspace(x,y,n)生成一個由x到y(tǒng),等分為n個元素的數(shù)組np.random.random(m,n)生成一個m行n列的[0,1)之間的隨機浮點數(shù)數(shù)組np.ones((m,n),dtype)
生成一個m行n列全1的數(shù)組,dtype為數(shù)據(jù)類型np.zeros((m,n),dtype)生成一個m行n列全0的數(shù)組,dtype為數(shù)據(jù)類型np.fromfunction()從函數(shù)中生成數(shù)組ndarray基本屬性及描述4Numpy的N維數(shù)組屬性描述ndarray.ndim數(shù)組軸的個數(shù),也稱為秩ndarray.shape數(shù)組在每個維度上大小的整數(shù)元組ndarray.size數(shù)組元素的總個數(shù)ndarray.dtype數(shù)組元素的數(shù)據(jù)類型,dtype類型可以用于創(chuàng)建數(shù)組ndarray.itemsize數(shù)組中每個元素的字節(jié)大小ndarray.flat數(shù)組元素的迭代器ndarray類的處理數(shù)組形狀方法及描述4Numpy的N維數(shù)組方法描述ndarray.reshape(shape)不改變數(shù)組,按照shape創(chuàng)建新的數(shù)組ndarray.resize()跟reshape()類似,但是改變所作用的數(shù)組ndarray.flatten()將多維數(shù)組轉(zhuǎn)換成一維數(shù)組,返回一份拷貝,對拷貝修改不會影響原始矩陣ndarray.ravel()跟flatten()類似,返回視圖,會影響原始矩陣numpy常用統(tǒng)計函數(shù)及描述4Numpy的N維數(shù)組函數(shù)描述np.sum()求和np.mean()求均值np.max()求最大值np.min()求最小值np.std()求標(biāo)準偏差np.var()求方差np.cumsum()求累加值np.cumprod()求累乘積值7.1Nmupy應(yīng)用7.2pandas應(yīng)用7.3matplotlib應(yīng)用7.4pyecharts應(yīng)用Pandas是外部庫。這里所說的“外部”是指不包含在標(biāo)準版Python中。因此,我們首先要使用語句“importpandasaspd”導(dǎo)入Panda庫。1導(dǎo)入Pandas庫1.Series(1)Series的創(chuàng)建語法格式為:pd.Series(list,index=[]),第二個參數(shù)是Series中數(shù)據(jù)的索引使用數(shù)字序列作為索引創(chuàng)建Series。2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdarr=np.arange(5)aSer=pd.Series(arr)print(aSer)#由于我們沒有為數(shù)據(jù)指定索引,于是會自動創(chuàng)建一個0到N-1(N為數(shù)據(jù)的長度)的整數(shù)型索引print(aSer.index)print(aSer.values)當(dāng)要創(chuàng)建帶有一個可以對各個數(shù)據(jù)點進行標(biāo)記的索引的Series。2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdaSer=pd.Series([-1,2,-3,4],index=['d','c','b','a'])print(aSer)print(aSer.index)print(aSer.values)使用字典創(chuàng)建Series2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdsdata={'Lilei':6000,'Hanmeimei':7000,'Zhangsan':80000}ser=pd.Series(sdata)print(ser)importnumpyasnp,pandasaspdsdata={'Lilei':6000,'Hanmeimei':7000,'Zhangsan':80000}name=['Zhangsan','Hanmeimei','Lilei']ser=pd.Series(sdata,name)print(ser)你可以傳入排好序的字典的鍵以改變順序:(2)Series類型的操作Series類型索引、切片、運算的操作(如根據(jù)布爾型數(shù)組進行過濾、標(biāo)量乘法、應(yīng)用數(shù)學(xué)函數(shù)等)類似于ndarray。(1)根據(jù)標(biāo)簽索引的方式選取Series中的單個或一組值的,實例如下:2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdaSer=pd.Series([-1,2,-3,4],index=['d','c','b','a'])print(aSer['a'])print(type(aSer['a']))print(aSer[2:4])print(type(aSer['a']))aSer['a']=5print(aSer[['a','b']])print(type(aSer[['a','b']]))(2)Series運算示例如下:2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdaSer=pd.Series([-1,2,-3,4],index=['d','c','b','a'])print(aSer[aSer>0])print(aSer*2)print(np.exp(aSer))(2)Series運算示例如下:2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdaSer=pd.Series([-1,2,-3,4],index=['d','c','b','a'])print(aSer[aSer>0])print(aSer*2)print(np.exp(aSer))(3)還可以將Series看成是一個定長的有序字典,類似Python字典類型的操作,它可以用在許多原本需要字典參數(shù)的函數(shù)中,例如保留字in操作和.get()方法等。2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdaSer=pd.Series([-1,2,-3,4],index=['d','c','b','a'])print('a'inaSer)print(aSer.get('a'))(4)Series有一個重要功能,就是在算術(shù)運算中會根據(jù)運算的索引標(biāo)簽自動對齊數(shù)據(jù)。2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdaSer=pd.Series([-1,2,-3,4],index=['d','c','b','a'])bSer=pd.Series([-5,6,-7,8],index=['a','b','c','d'])print(aSer)print(bSer)print(aSer+bSer)2.DataFrame(1)DataFrame的創(chuàng)建pd.DataFrame(data,columns=[],index=[]):columns和index為指定的列、行索引,并按照順序排列。2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata={'name':['Lilei','Hanmeimei','Zhangsan'],'pay':[6000,7000,8000],'titile':['lecturer','associateprofessor','professor']}df=pd.DataFrame(data)print(df)print(df.dtypes)print(df.columns)print(df.index)(2)DataFrame的索引和值2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])print(df)print(df.index)print(df.columns)print(df.values)(3)查詢DataFrame如果只查詢一行、一列,返回的是pd.Series查詢一列,返回的是pd.Series,2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata={'name':['Lilei','Hanmeimei','Zhangsan'],'pay':[6000,7000,8000],'titile':['lecturer','associateprofessor','professor']}df=pd.DataFrame(data)print(df['name'])print(type(df['name']))查詢一行,返回的是pd.Series,2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata={'name':['Lilei','Hanmeimei','Zhangsan'],'pay':[6000,7000,8000],'titile':['lecturer','associateprofessor','professor']}df=pd.DataFrame(data)print(df.loc[1])print(type(df.loc[1]))如果查詢多行、多列,返回的是pd.DataFrame查詢多列2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata={'name':['Lilei','Hanmeimei','Zhangsan'],'pay':[6000,7000,8000],'titile':['lecturer','associateprofessor','professor']}df=pd.DataFrame(data)print(df[['name','pay']])print(type(df[['name','pay']]))修改DataFrame添加列,直接賦值的方法,2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])df['sex']=['f','f','m']print(df)df.apply()方法2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])
defget_pay_type(x):ifpd.to_numeric(x['pay'],errors='coerce')>7000:return"高于平均水平"ifpd.to_numeric(x['pay'],errors='coerce')==7000:return"平均水平"ifpd.to_numeric(x['pay'],errors='coerce')<7000:return"低于平均水平"df['pay_type']=df.apply(get_pay_type,axis=1)#注意需要設(shè)置axis==1,這是series的index是columnsprint(df)df.assign()方法,它可以同時新增多個列2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])print(df.assign(tax=lambdax:(pd.to_numeric(x['pay'],errors='coerce')-5000)*0.1,year_pay=lambdax:pd.to_numeric(x['pay'],errors='coerce')*12)#可以同時添加多個新的列)按條件選擇分組分別賦值2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspdimportnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])print(df.assign(tax=lambdax:(pd.to_numeric(x['pay'],errors='coerce')-5000)*0.1,year_pay=lambdax:pd.to_numeric(x['pay'],errors='coerce')*12))添加行 在loc位置增加一行2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])df.loc[5]={'name':'Liuxi','pay':5000,'title':'lecturer'}print(df)數(shù)據(jù)追加合并df.append(),將其他行附加到調(diào)用方的末尾,并返回一個新對象2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])tmpdata=np.array([('Zhoudafu',6000,'lecturer'),('Jinliufu',7000,'associateprofessor')])tmpdf=pd.DataFrame(tmpdata,index=range(4,6),columns=['name','pay','title'])print(df.append(tmpdf))pd.concat(),指的是多表之間的“拼接”,2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])tmpdata=np.array([('Zhoudafu',6000,'lecturer'),('Jinliufu',7000,'associateprofessor')])tmpdf=pd.DataFrame(tmpdata,index=range(5,7),columns=['name','pay','title'])newdf=[df,tmpdf]print(pd.concat(newdf))根據(jù)行索引刪除2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])print(df.drop(2))根據(jù)列名刪除2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])print(df.drop('title',axis=1))修改列2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])df['title']='professor'print(df)修改行2pandas的數(shù)據(jù)結(jié)構(gòu)介紹importnumpyasnp,pandasaspddata=np.array([('Lilei',6000,'lecturer'),('Hanmeimei',7000,'associateprofessor'),('Zhangsan',8000,'professor')])df=pd.DataFrame(data,index=range(1,4),columns=['name','pay','title'])df.loc[2]=['Hanmeimei',7200,'associateprofessor']print(df)1.讀取數(shù)據(jù)(1)讀取文本文件:讀取csv數(shù)據(jù)集文件:pd.read_csv(filepath_or_buffer,header,names),文件名參數(shù)——filepath_or_buffer。讀取txt文件(2)讀取xlsx格式或Excel文件3數(shù)據(jù)存取2.寫入文件3數(shù)據(jù)存取importnumpyasnp,pandasaspddf=pd.DataFrame(np.random.randn(4,5))df.to_csv('a.csv') #DataFrame寫入csv文件df.to_excel('a.xlsx',sheet_name='Movie')df.to_json('a.json')#DataFrame寫入到j(luò)son文件df.to_html('a.html')#DataFrame寫入到html文件3.數(shù)據(jù)選取(0)讀取數(shù)據(jù)(1)df.loc[行標(biāo)簽,列標(biāo)簽]方法,根據(jù)行、列的標(biāo)簽值查詢使用單個label值查詢數(shù)據(jù)使用值列表批量查詢使用數(shù)值區(qū)間進行范圍查詢(既包含開始也包含結(jié)束)行index按區(qū)間查詢。列index按區(qū)間查詢。行和列index都按區(qū)間查詢。使用條件表達式查詢(bool列表的長度等于行數(shù)或列數(shù))調(diào)用函數(shù)查詢:直接寫lambda表達式3數(shù)據(jù)存取(2)df.iloc方法,根據(jù)行,列的數(shù)字位置查詢行或者列,都可以只傳入單個值,實現(xiàn)精確匹配行只傳入單個值,iloc提取行數(shù)據(jù)列只傳入單個值,iloc提取列數(shù)據(jù)iloc提取指定行、指定列數(shù)據(jù)使用值列表批量查詢調(diào)用函數(shù)查詢使用數(shù)值區(qū)間進行切片行index按區(qū)間查詢列index按區(qū)間查詢行和列index都按區(qū)間查詢調(diào)用函數(shù)查詢:直接寫lambda表達式3數(shù)據(jù)存取3數(shù)據(jù)存取類型描述df[val]從DataFrame選取單列或一組列;在特殊情況下比較便利:布爾型數(shù)組(過濾行)、切片(行切片)、或布爾型DataFrame(根據(jù)條件設(shè)置值)df.loc[val]通過標(biāo)簽,選取DataFrame的單個行或一組行df.loc[:,val]通過標(biāo)簽,選取單列或列子集df.loc[val1,val2]通過標(biāo)簽,同時選取行和列df.iloc[where]通過整數(shù)位置,從DataFrame選取單個行或行子集df.iloc[:,where]通過整數(shù)位置,從DataFrame選取單個列或列子集df.iloc[where_i,where_.j]通過整數(shù)位置,同時選取行和列(3)df.where方法df.where(cond)可以過濾不滿足cond的值并賦予NaN空值df.where(cond,other)賦予other值得用法df.where從主體df出發(fā),True返回df本身的值,否則返回other的值;去掉特定的某行某列3數(shù)據(jù)存取
(4)df.query方法使用布爾表達式查詢DataFrame的列,也就是按照DataFrame中某列的規(guī)則進行過濾操作。3數(shù)據(jù)存?。?)讀取數(shù)據(jù)4數(shù)據(jù)統(tǒng)計與分析importnumpyasnp,pandasaspddf=pd.read_excel('score.xls',encoding='utf-8')#讀取學(xué)生成績表print(df)(1)匯總類統(tǒng)計describe()函數(shù)提取所有數(shù)字列統(tǒng)計結(jié)果,提供了非NaN值的數(shù)量,平均值mean,標(biāo)準差std,最小值min,最大值max以及1/4,1/2,3/4分位數(shù)。count()求非NaN值的數(shù)量,mean()函數(shù)求平均值,max())求最大值,min()求最小值等4數(shù)據(jù)統(tǒng)計與分析importnumpyasnp,pandasaspddf=pd.read_excel('score.xls',encoding='utf-8')#讀取學(xué)生成績表print(df.describe())#查看表頭print(df['語文'].mean())#查看單個Series的數(shù)據(jù),求語文的平均值print(df['語文'].max())#語文最高分print(df['語文'].min())#語文最低分(2)唯一去重和按值計數(shù)4數(shù)據(jù)統(tǒng)計與分析importnumpyasnp,pandasaspddf=pd.read_excel('score.xls',encoding='utf-8')#讀取學(xué)生成績表print(df['道德法治'].unique())#唯一去重importnumpyasnp,pandasaspddf=pd.read_excel('score.xls',encoding='utf-8')#讀取學(xué)生成績表print(df['道德法治'].value_counts())#按值計數(shù)1.concatconcat是使用某種合并方式(inner/outer)沿著某個軸向(行還是列,axis=0/1)把多個Pandas對象(Series/DataFrame)合并成一個。pd.concat(objs,axis=0,join='outer',join_axes=None,ignore_index=False)objs–可以是Series或者DataFrame,可以混合。axis-{0,1,...},這是連接的軸。默認為0,按行合并。若等于1,按列合并join-{'inner','outer'},合并時候索引對齊方式。默認outerjion,也可以是innerjion。ignore_index?布爾值,默認為False。如果指定為True,則忽略連接軸上的索引值。結(jié)果軸將被標(biāo)記為:0,...,n-1。join_axes-這是Index對象的列表。用于其他(n-1)軸的特定索引,而不是執(zhí)行內(nèi)部/外部集邏輯。5數(shù)據(jù)合并2.mergemerge(left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=True,suffixes=('_x','_y'),copy=True,indicator=False,validate=None)left:拼接的左側(cè)DataFrame對象right:拼接的右側(cè)DataFrame對象how:join類型,left,right,outer,inner.
默認inner。inner是取交集,outer取并集.on:要加入的列或索引級別名稱。必須在左側(cè)和右側(cè)DataFrame對象中找到。如果未傳遞且left_index和right_index為False,則DataFrame中的列的交集將被推斷為連接鍵。5數(shù)據(jù)合并left_on:左側(cè)DataFrame中的列或索引級別用作鍵??梢允橇忻饕壝Q,也可以是長度等于DataFrame長度的數(shù)組。right_on:左側(cè)DataFrame中的列或索引級別用作鍵??梢允橇忻?,索引級名稱,也可以是長度等于DataFrame長度的數(shù)組。left_index:如果為True,則使用左側(cè)DataFrame中的索引(行標(biāo)簽)作為其連接鍵。對于具有MultiIndex(分層)的DataFrame,級別數(shù)必須與右側(cè)DataFrame中的連接鍵數(shù)相匹配。right_index:與left_index功能相似。sort:按字典順序通過連接鍵對結(jié)果DataFrame進行排序。默認為True,設(shè)置為False將在很多情況下顯著提高性能。suffixes:用于重疊列的字符串后綴元組。默認為(‘x’,’y’)。copy:始終從傳遞的DataFrame對象復(fù)制數(shù)據(jù)(默認為True),即使不需要重建索引也是如此。indicator:將一列添加到名為_merge的輸出DataFrame,其中包含有關(guān)每行源的信息。_merge是分類類型,并且對于其合并鍵僅出現(xiàn)在“左”DataFrame中的觀察值,取得值為left_only,對于其合并鍵僅出現(xiàn)在“右”DataFrame中的觀察值為right_only,并且如果在兩者中都找到觀察點的合并鍵,則為left_only。5數(shù)據(jù)合并suffixes:用于重疊列的字符串后綴元組。默認為(‘x’,’y’)。copy:始終從傳遞的DataFrame對象復(fù)制數(shù)據(jù)(默認為True),即使不需要重建索引也是如此。indicator:將一列添加到名為_merge的輸出DataFrame,其中包含有關(guān)每行源的信息。_merge是分類類型,并且對于其合并鍵僅出現(xiàn)在“左”DataFrame中的觀察值,取得值為left_only,對于其合并鍵僅出現(xiàn)在“右”DataFrame中的觀察值為right_only,并且如果在兩者中都找到觀察點的合并鍵,則為left_only。5數(shù)據(jù)合并7.1Nmupy應(yīng)用7.2pandas應(yīng)用7.3matplotlib應(yīng)用7.4pyecharts應(yīng)用Matplotlib官網(wǎng)http://https:///genindex.html首先使用importmatplotlib.pyplotasplt語句引入matplotlib.pyplot子模塊的別名plt。1導(dǎo)入Pandas庫2繪圖基礎(chǔ)(1)plot顏色和線型設(shè)置符號顏色bblueggreenrredccyanmmagentaYyellowkblackwwhite線型描述'-'solid'--'dashed'-.'dash_dot':'dotted'None'drawnothing''drawnothing''drawnothing2繪圖基礎(chǔ)(2)pyplot繪圖區(qū)域函數(shù)Figure對象:創(chuàng)建畫布
figure()函數(shù)創(chuàng)建一個全局繪圖區(qū)域,figure語法說明:figure(num=None,figsize=None,dpi=None,facecolor=None,edgecolor=None,frameon=True)參數(shù)如下:num:圖像編號或名稱,數(shù)字為編號,字符串為名稱figsize:指定figure的寬和高,單位為英寸;dpi參數(shù)指定繪圖對象的分辨率,即每英寸多少個像素,缺省值為80
facecolor:背景顏色edgecolor:邊框顏色frameon:是否顯示邊框2繪圖基礎(chǔ)劃分子圖Figure對象允許將整個繪圖區(qū)域劃分為若干個子繪圖區(qū)域,每個子繪圖區(qū)域中都包含一個Axes對象,該對象具有屬于自己的坐標(biāo)系統(tǒng)。軸域axes語法說明:plt.axes(rect,**kwargs)參數(shù)說明:rect:
基于figure坐標(biāo)系統(tǒng)定義的是位置參數(shù),接受一個4元素的浮點數(shù)列表,[left,bottom,width,height],它定義了要添加到figure中的矩形子區(qū)域的:左下角坐標(biāo)(x,y)、寬度、高度。2繪圖基礎(chǔ)subplot()函數(shù)劃分子圖subplot(nrows,ncols,index)函數(shù)會先將整個繪圖區(qū)域等分為“nrows(行)*ncols(列)”的矩陣區(qū)域,并按照先行后列的計數(shù)方式對每個子區(qū)域進行編號,編號默認從1開始,后在index的位置上生成一個坐標(biāo)系。2繪圖基礎(chǔ)(3)設(shè)置中文字體在向圖表添加中文文字時候常常無法顯示,這時只要使用下面的命令將默認字體改成中文字體就可以了:plt.rcParams["font.sans-serif"]="SimHei"中文字體英文描述中文字體英文描述宋體SimSun仿宋FangSong黑體SimHei楷體KaiTi微軟雅黑MicrosoftYaHei隸書LiSu微軟正黑體MicrosoftJhengHei幼圓YouYuan2繪圖基礎(chǔ)(4)設(shè)置坐標(biāo)軸函數(shù)描述plt.xlim(xmin,xmax)設(shè)置當(dāng)前x軸取值范圍plt.ylim(ymin,ymax)設(shè)置當(dāng)前y軸取值范圍plt.axis('v';'off,'equal','scaled';'tight''image')獲取設(shè)置軸屬性的快捷方法plt.xscale()設(shè)置x軸縮放plt.yscale()設(shè)置y軸縮放plt.autoscale()自動縮放軸視圖的數(shù)據(jù)plt.text(x,y,s,fontdic,withdash)為axes圖軸添加注釋2繪圖基礎(chǔ)(5)設(shè)置標(biāo)簽函數(shù)描述plt.figlegend(handles,labe1,loc)為全局繪圖區(qū)域繪制圖例plt.legend()為當(dāng)前坐標(biāo)系繪制圖例plt.xlabel(s)設(shè)置當(dāng)前x軸的標(biāo)簽plt.ylabel(s)設(shè)置當(dāng)前y軸的標(biāo)簽plt.xticks(array,'a','b','c')設(shè)置當(dāng)前x軸刻度位置的標(biāo)簽和值plt.yticks(array,'a','b','c')設(shè)置當(dāng)前y軸刻度位置的標(biāo)簽和值plt.clabel(cs,v)為等值線圖設(shè)置標(biāo)簽plt.get_figlabels0返回當(dāng)前繪圖區(qū)域的標(biāo)簽列表plt.figtext(x,y,s,fontdic)為全局繪圖區(qū)域添加文字plt.title()設(shè)置子標(biāo)題plt.suptitle()設(shè)置全局標(biāo)題plt.text(x,y,s,fontdic,withdash)為坐標(biāo)圖軸添加注釋plt.annotate(note,xy,xytext,xycoords,textcoords,arrowprops)用箭頭在指定數(shù)據(jù)點創(chuàng)建一個注釋或一段文本3繪制圖形(1)繪制點圖scatter(x,y,scale,color,marker,label)參數(shù)說明默認值x
數(shù)據(jù)點的x坐標(biāo)不可省略y數(shù)據(jù)點的y坐標(biāo)不可省略scale數(shù)據(jù)點的大小36color數(shù)據(jù)點的顏色
marker數(shù)據(jù)點的樣式’o’(圓點)label圖例文字
3繪制圖形marker參數(shù)3繪制圖形
3繪制圖形(2)繪制線圖plot(x,y,color,marker,label,linewidth,markersize)參數(shù)說明默認值x
數(shù)據(jù)點的x坐標(biāo)不可省略y數(shù)據(jù)點的y坐標(biāo)不可省略color數(shù)據(jù)點的顏色
marker數(shù)據(jù)點的樣式’o’(圓點)label圖例文字
linewidth折線的寬度
markersize數(shù)據(jù)點的大小
3繪制圖形(2)繪制線圖plot(x,y,color,marker,label,linewidth,markersize)3繪制圖形(3)餅圖matplotlib.pyplot.pie(x,explode=None,labels=None,colors=None,autopct=None,pctdistance=0.6,shadow=False,labeldistance=1.1,startangle=None,radius=None,counterclock=True,wedgeprops=None,textprops=None,center=(0,0),frame=False,rotatelabels=False,hold=None,data=None)3繪制圖形
pie()函數(shù)的主要參數(shù)參數(shù)說明默認值x
數(shù)組。輸入的數(shù)據(jù)用于創(chuàng)建一個餅圖。不可省略Explodelist,每一部分離開中心點的距離,元素數(shù)目與x相同且一一對應(yīng)不可省略Labelslist,設(shè)置各類的標(biāo)簽,元素一一對應(yīng)
Colorslist,設(shè)置為各部分染色列表,元素一一對應(yīng)’o’(圓點)startangle起始繪制角度,默認圖是從x軸正方向逆時針畫起,如設(shè)定=90則從y軸正方向畫起
shadow顯示陰影
Falselabeldistancelabels標(biāo)簽位置,相對于半徑的比例1.1radius控制餅圖半徑13繪制圖形(3)餅圖3繪制圖形(4)柱形圖bar(left,height,width,facecolor,edgecolor,label)參數(shù)說明默認值leftx軸的位置序列,采用arange函數(shù)產(chǎn)生一個序列;不可省略heighty軸的數(shù)值序列,也就是柱形圖的高度不可省略alpha透明度
width柱形圖的寬度0.8color柱形圖填充的顏色
edgecolor圖形邊緣顏色
label圖例文字
linewidth折線的寬度
3繪制圖形
(5)箱型圖plt.boxplot(x,notch=None,sym=None,vert=None,whis=None,positions=None,widths=None,patch_artist=None,meanline=None,showmeans=None,showcaps=None,showbox=None,showfliers=None,boxprops=None,labels=None,flierprops=None,medianprops=None,meanprops=None,capprops=None,whiskerprops=None)3繪制圖形
boxplot()函數(shù)的主要參數(shù)參數(shù)說明默認值x指定要繪制箱線圖的數(shù)據(jù)不可省略notch是否是凹口的形式展現(xiàn)箱線圖,默認非凹口;
sym透明度+vert是否需要將箱線圖垂直擺放垂直擺放whis指定上下須與上下四分位的距離1.5倍的四分位差;positions指定箱線圖的位置[0,1,2…]widths指定箱線圖的寬度0.5meanline是否用線的形式表示均值默認用點來表示;showmeans是否顯示均值不顯示showcaps是否顯示箱線圖頂端和末端的兩條線顯示showbox是否顯示箱線圖的箱體顯示showfliers是否顯示異常值顯示boxprops設(shè)置箱體的屬性,如邊框色,填充色等
labels為箱線圖添加標(biāo)簽,類似于圖例的作用
filerprops設(shè)置異常值的屬性,如異常點的形狀、大小、填充色等;
medianprops設(shè)置中位數(shù)的屬性,如線的類型、粗細等;
meanprops設(shè)置均值的屬性,如點的大小、顏色等;
capprops設(shè)置箱線圖頂端和末端線條的屬性,如顏色、粗細等;
whiskerprops設(shè)置須的屬性,如顏色、粗細、線的類型等;
3繪制圖形
(5)箱型圖:boxplot()函數(shù)3繪制圖形7.1Nmupy應(yīng)用7.2pandas應(yīng)用7.3matplotlib應(yīng)用7.4pyecharts應(yīng)用首先進入官網(wǎng)下載https:///project/pyecharts/1.7.1/#files。下載好后,找到anaconda的安裝文件夾中的scripts文件夾,然后將下載的whl文件復(fù)制到這個文件夾中。打開AnacondaPrompt輸入cdD:\tools\Anaconda3\Scripts進入文件夾然后輸入pipinstallpyecharts-1.7.1-py3-none-any.whl1Anaconda中安裝pyechartsPyecharts的繪圖邏輯如下:第一步,我們需要選定圖表類型,比如我要畫線型的話,就選擇Pyecharts里面的Line函數(shù)去進行繪制。第二步,去相應(yīng)的函數(shù)里面去添加相應(yīng)的數(shù)據(jù)。第三步,進行全局參數(shù)設(shè)置。第四步,把我們上面做出來的圖表在我們的JupyterNotebook上顯示,或者保存為一個html文件到我們當(dāng)前的工作路徑里面。2Pyecharts繪圖邏輯(1)選擇圖表類型frompyecharts.chartsimportScatter#導(dǎo)入散點圖frompyecharts.chartsimportLine#導(dǎo)入折線圖frompyecharts.chartsimportPie#導(dǎo)入餅圖frompyecharts.chartsimportGeo#導(dǎo)入地圖2Pyecharts繪圖邏輯2Pyecharts繪圖邏輯函數(shù)說明Scatter散點圖Funnel漏斗圖Bar柱狀圖Gauge儀表盤Pie餅圖Graph關(guān)系圖Line折線/面積圖Liquid
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 應(yīng)急財務(wù)管理的基本原則計劃
- 強化班主任團隊協(xié)作的工作思路計劃
- 客戶關(guān)系管理月度戰(zhàn)略計劃
- 2025星河廣場建設(shè)項目施工承包合同
- 跨區(qū)域美術(shù)交流活動計劃
- 2025企業(yè)辦公場地租賃合同協(xié)議
- 2025技術(shù)許可(專利權(quán))合同
- 物聯(lián)網(wǎng)智能家居設(shè)備選型指南
- 醫(yī)療器械臨床試驗協(xié)議
- 2025年平?jīng)鲐涍\從業(yè)資格證考試題
- 2025年的租房合同范本標(biāo)準版
- 2025-2030中國眼藥水和眼藥膏行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 電梯安全管理人員復(fù)審考題集和答案
- 浙江首考2025年1月普通高等學(xué)校招生全國統(tǒng)一考試 歷史 含答案
- 山東省臨沂市2024-2025學(xué)年七年級下學(xué)期3月月考地理試題(原卷版+解析版)
- 遼寧省大連市2024-2025學(xué)年高三一模語文試題(解析版)
- 《水上客運重大事故隱患判定指南(暫行)》知識培訓(xùn)
- 高中英語新人教版選擇性必修四Unit 1 -Unit 3續(xù)寫詞匯和例句
- DB11∕T1135-2024供熱系統(tǒng)有限空間作業(yè)安全技術(shù)規(guī)程
- 空中交通流量管理-深度研究
- 積極心理學(xué)課件:從理論到實踐提升個人幸福感
評論
0/150
提交評論