學習視頻鏈接: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學習者 - 博客園