程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python數據分析與展示(三)--Matplotlib庫

編輯:Python

學習視頻鏈接:Python數據分析與展示_北京理工大學_哔哩哔哩_bilibili   P21-P35

Matplotlib庫入門

一、Matplotlib庫的導入

Matplotlib庫是python優秀的可視化第三方庫

Matplotlib庫由各種可視化類構成,內部結構復雜,受Matlab啟發,matplotlib.pyplot是繪制各類可視化圖形的命令子庫,相當與快捷方式。

#plt是引入模塊的別名,這是一種約定俗成的引入名稱
import matplotlib.pyplot as plt

二、Matplotlib庫小測

1.繪制簡單的折線圖

import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel('Grade')
plt.show()

#注:plt.plot()只有一個輸入列表或數組時,參數被當作Y軸,X軸以索引自動生成。 

 2.將繪制的圖保存成文件

import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel('Grade')
plt.savefig('D://test',dpi=600)

#注:plt.savefig()將圖形存儲為文件,默認為PNG格式,可以通過dpi修改輸出質量

3.同時添加X軸和Y軸的數組繪圖

import matplotlib.pyplot as plt
plt.plot([0,2,4,6,8],[3,1,4,5,2])
plt.ylabel('Grade')
plt.axis([-1,10,0,6])
plt.show()

 例如:

plt.sublot(3,2,4)

當前的繪圖區域:

 簡單實例:

import numpy as np
import matplotlib.pyplot as plt
def f(t):
return np.exp(-t)*np.cos(2*np.pi*t)
a=np.arange(0.0,5.0,0.02)
plt.subplot(211) #第一塊區域
plt.plot(a,f(a))
plt.subplot(212) #第二塊區域
plt.plot(a,np.cos(2*np.pi*a))
plt.show()

 效果:

 四、pyplot的plot()函數

plt.plot(x,y,format_string,**kwargs)
# x:X軸數據,列表或數組,可選
# y:Y軸數據,列表數組
# format_string:控制曲線的格式字符串,可選
# **kwargs:第二組或更多(x,y,format_string)
#注:當繪制多條曲線時,各條曲線的x不能省略

#當不設置format_string時,matplotib會自動對一個繪圖區域的多條曲線設置不同的顏色。

例:

import numpy as np
import matplotlib.pyplot as plt
a=np.arange(10)
plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)
plt.show()

例子:

 

 format_string:控制曲線的格式字符串,可選。由顏色字符風格字符標記字符組成。

顏色字符:

風格字符:

 

標記字符:

實例:

import numpy as np
import matplotlib.pyplot as plt
a=np.arange(10)
plt.plot(a,a*1.5,'bo-',a,a*2.5,'gx--',a,a*3.5,'r-.',a,a*4.5,'y*:')
plt.show()

效果:

五、pyplot的中文顯示(pyplot並不默認支持中文顯示)

1.使用rcParams修改字體

raParams的屬性:

中文字體的種類:

實例:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
matplotlib.rcParams['font.family']='Kaiti'
matplotlib.rcParams['font.size']=12
matplotlib.rcParams['font.style']='normal'
a=np.arange(0.0,5.0,0.02)
plt.ylabel('縱軸:振幅')
plt.xlabel('橫軸:時間')
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.show()

效果:

2.在有中文輸出的地方增加一個屬性:fontproperties

實例:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
a=np.arange(0.0,5.0,0.02)
plt.ylabel('縱軸:振幅',fontproperties='SimHei',fontsize=12)
plt.xlabel('橫軸:時間',fontproperties='SimHei',fontsize=12)
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.show()

 

效果:

六、pyplot的文本顯示函數

實例:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.ylabel('縱軸:振幅',fontproperties='SimHei',fontsize=12,color='green')
plt.xlabel('橫軸:時間',fontproperties='SimHei',fontsize=12)
plt.title('正弦波實例 $y=cos(2\pi x)$',fontproperties='SimHei',fontsize=20,color='red')
plt.text(2,1,r'$\mu=100$',fontsize=15)
plt.axis([-1,6,-2,2])
plt.show()

效果:

#注釋的使用:

plt.annotate(s, xy=arrow_crd, xytext=text_crd, arrowprops=dict)

 實例:

import numpy as np
import matplotlib
import matplotlib.pyplot as plt
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),'b--')
plt.ylabel('縱軸:振幅',fontproperties='SimHei',fontsize=12,color='green')
plt.xlabel('橫軸:時間',fontproperties='SimHei',fontsize=12)
plt.title('正弦波實例 $y=cos(2\pi x)$',fontproperties='SimHei',fontsize=20,color='red')
plt.annotate(r'$\mu=100$',xy=(2,1),xytext=(3,1.5),arrowprops={'facecolor':'black','shrink':0.1,'width':2})
plt.axis([-1,6,-2,2])
plt.show()

 

效果:

七、pyplot的子繪圖區域

1.subplot2grid()

雖然使用plt.subplot()方法也可以設置繪圖區域,但是這種方法過於繁瑣。當繪圖子區域過多時,實際中更多使用plt.subplot2grid()方法。

plt.subplot2grid(GridSepc,CurSpec,colspan=1,rowspan=1)
#理念:設定網格,選中網格,確定選中行列區域數量,編號從0開始

 

劃分區域效果:

2.GridSpec類

使用GridSpec類可以達到和subplot2grid()方法相同的效果。

筆記: python數據分析與展示(三) - 元騎鯨 - 博客園

筆記:數據分析與展示——Matplotlib庫入門 - Python學習者 - 博客園


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved