科學(xué)計(jì)算基礎(chǔ)庫(kù)matplotlib

參考網(wǎng)址:官方文檔
參考網(wǎng)址:基于官方教程的matplotlib簡(jiǎn)介

整體畫(huà)圖流程

matplotlib以層次化的結(jié)構(gòu)組織對(duì)象,并提供了兩種操縱這些對(duì)象的方式:1.直接調(diào)用對(duì)象的成員函數(shù); 2.使用類(lèi)似matlab的命令行方式,第二種方式在數(shù)據(jù)分析中更加常用。在matplotlib.pyplot模塊中封裝好了很多命令行風(fēng)格的函數(shù),導(dǎo)入該模塊的一般寫(xiě)法:
import matplotlib.pyplot as plt

第一步:在畫(huà)圖之前,要準(zhǔn)備好白紙

matplotlib將畫(huà)板組織成兩個(gè)對(duì)象figureaxes,在一個(gè)figure上可以創(chuàng)建多個(gè)axes,而axes只能屬于某一個(gè)figure,畫(huà)圖最終是在axes上進(jìn)行繪制的。關(guān)于matplotlib中的幾個(gè)關(guān)鍵概念可以參考General Concepts

figure對(duì)象和axes對(duì)象

  1. 創(chuàng)建白紙:fig = plt.figure(num=1, figsize=(x,y)) 圖片的編號(hào)以及大小等屬性
  2. 創(chuàng)建子圖:
    方式一:plt.subplot(211)
    2表示兩個(gè)子圖,11:所在位置(第1行,第1列)。(plt 針對(duì)當(dāng)前子圖或者全局操作,會(huì)自動(dòng)在當(dāng)前的figure上創(chuàng)建子圖。)
    方式二:
    ax1 = fig.add_subplot(211)
    ax2 = fig.add_subplot(212)
  3. 如果要?jiǎng)?chuàng)建很多個(gè)子圖,可以直接使用fig, axes = plt.subplots(2, 3)
  4. 注:如果figure()和subplot()沒(méi)有定義的話,都默認(rèn)為figure(1)和subplot(111)
    如果要?jiǎng)?chuàng)建很多個(gè)子圖,可以這樣定義fig, axes = plt.subplots(2, 3)
第二步:正式畫(huà)圖

再次強(qiáng)調(diào)繪制內(nèi)容(畫(huà)圖、標(biāo)題、文本等)都是畫(huà)在子圖axes之上的。這里為了凸顯出整體流程,只舉最簡(jiǎn)單的例子。具體繪制細(xì)節(jié)放在文章下一部分介紹。
繪制同樣有兩種方式:

  1. plt.plot( ) 這種方式會(huì)自動(dòng)繪制在當(dāng)前子圖上
  2. axes.plot() 把圖畫(huà)在指定的子圖上
第三步:顯示&保存圖片
  1. 顯示圖片 plt.show( ) 所有的圖紙都會(huì)顯示
  2. 存儲(chǔ)圖片``

詳解plot( )

參考網(wǎng)址:官方文檔matplotlib.pyplot.plot
通常的調(diào)用方法:
plot([x], y, [fmt], **kwargs)

  • 沒(méi)有x的話會(huì)根據(jù)y的長(zhǎng)度自動(dòng)生成,
  • fmt = '[color][marker][line]' 用縮寫(xiě)定義線條風(fēng)格的三個(gè)方面:顏色,點(diǎn)的形狀,連線的形狀。也可以在**kwargs中分別指定。(具體支持哪些縮寫(xiě)可以參考官方文檔列的表格)。
  • **kwargs 中可以是任意一個(gè)Line2D的屬性
  • 該函數(shù)返回的是一個(gè)Line2D的對(duì)象,這個(gè)對(duì)象包含了和一條線相關(guān)的所有信息,畫(huà)一條線就相當(dāng)于創(chuàng)建一個(gè)Line2D對(duì)象。
    最后舉一個(gè)基本的例子
plt.plot(range(10),'bo--', label='example',linewidth='2')
plt.legend(loc='best') #必須有plt.legend()才能顯示圖標(biāo),在這里可以對(duì)圖標(biāo)顯示加以控制
plt.title('example')
plt.xlabel('x axis')
plt.ylabel('y axis')
plt.grid(True)
plt.show()
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容