1.本周課程導學
2.Matplotlib庫的介紹
3.pyplot 的plot()函數(shù)
4.pyplot 的中文顯示
5.pyplot 的文本顯示
6.pyplot 的子繪圖區(qū)域
7.單元小結(jié)
最近更新:2018-01-23
1.本周課程導學

2.Matplotlib庫的介紹
2.1Matplotlib庫的效果


2.1Matplotlib庫的使用

- 1個參數(shù)使用例子
[3,1,4,5,2]是作為縱坐標的值,plot函數(shù)輸入?yún)?shù)只是一個一維的列表,那么這個參數(shù)會被當作y軸來處理.x軸就是這個列表的索引,第一個元素是0,第二個元素是1,最后一個索引元素是4,橫坐標是0到4這個跨度組成.x軸是自動生成的.
import matplotlib.pyplot as plt
import numpy as np
plt.plot([3,1,4,5,2])
plt.ylabel("grade")
plt.show()

- 繪制的圖像存儲文件


- 2個參數(shù)維使用例子
-
前面的參數(shù)代表x軸,后面的參數(shù)代表y軸
-plt. axis是橫縱坐標尺度的函數(shù).它的參數(shù)是具有四個變量的列表-1,10是代表x軸最左側(cè)的坐標,起始于-1,終止于10,縱軸的坐標起始于0,終止于6
-
2.1pylot的繪圖區(qū)域
2.1.1pylot的繪圖區(qū)域方法介紹
第1參數(shù)是為橫軸數(shù)量.第2參數(shù)是為縱軸數(shù)量子區(qū)域,第3參數(shù)是為當前繪圖區(qū)的哪一塊區(qū)域.從左上角開始為編號1號區(qū)域,從左往右,然后不斷換行,按從左往右開始逐一編號.
比如這里的plt.subplot(3,2,4)將繪圖區(qū)域分為3個橫軸,2個縱軸,區(qū)域分成6塊.4為當前繪圖區(qū)域.
plt.subplot(3,2,4)由于都是數(shù)字,可以將逗號去掉,寫成plt.subplot(324)

2.1.2pylot的繪圖區(qū)域?qū)嵗?/h5>
- f(t)是一個能量衰減函數(shù), 使用numpy作為計算數(shù)組返回衰減的一個基礎類
- numpy生成數(shù)組a
- 注意subplot的使用,使用subplot產(chǎn)生一個211的參數(shù),將繪圖區(qū)域,分為2行1列,選擇上面1號這一塊
- plot(a,f(a))繪制對應a的能量衰減曲線.之后將當前的繪圖區(qū)域放到整個圖形繪制區(qū)域的下面部分.使用subplot(2,1,2)選擇編號2區(qū)域.
- 對a做一個cos函數(shù)處理,繪制余弦曲線,曲線的形式設置為一個曲線的格式
-
重點理解子繪圖區(qū)域的概念,subplot可以確定子繪圖區(qū)域.
3.pyplot 的plot()函數(shù)
3.1plot()函數(shù)介紹
3.2plot()函數(shù)實例
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.plot(a,a*1.5,a,a*2.5,a,a*3.5,a,a*4.5)
plt.show()
3.3format_string
重點理解子繪圖區(qū)域的概念,subplot可以確定子繪圖區(qū)域.




import matplotlib.pyplot as plt
import numpy as np
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由顏色字符/風格字符和標記字符可以組合使用
3.3.1顏色字符定義

3.3.2風格字符定義

3.3.3標記字符定義
-
標記字符的介紹
- 標記字符的實例介紹
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(10)
plt.plot(a,a*1.5,"go-",a,a*2.5,"rx",a,a*3.5,"*",a,a*4.5,"b-.")
plt.show()
如果沒有注明顏色,系統(tǒng)會自動用其他顏色畫出.

3.3.4其他方式的標記定義
與之前的簡寫字符是一一對應的

4.pyplot的中文顯示
pyplot并不默認中文的顯示,希望在坐標系出現(xiàn)中文的漢字,需要增加額外的代碼輔助介紹兩種方法,具體如下:
4.1第一種pyplot的中文顯示方法
SimHei是中文黑體的意思

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams["font.family"]="SimHei"
plt.plot([3,1,4,5,2])
plt.ylabel("縱坐標(值)")
plt.savefig("test",dpi=600)
plt.show()

- rcParams的屬性
這種字體的改變,會改變繪圖所有的文本,比如橫縱坐標的數(shù)字,文本均會改變成相對應的字體.


運用實例
import matplotlib
import numpy as np
matplotlib.rcParams["font.family"]="STSong"
matplotlib.rcParams["font.size"]=20
a=np.arange(0.0,5.0,0.02)
plt.xlabel("橫軸:時間")
plt.ylabel("縱軸:振幅")
plt.plot(a,np.cos(2*np.pi*a),"r--")
plt.show()

4.2第二種pyplot的中文顯示方法(最好使用這個)
- 在有中文輸出的地方,增加一個屬性fontproperties.
-
fontproperties僅對設置的區(qū)域起作用,其他的地方的數(shù)字和文字不起作用
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.xlabel("橫軸:時間",fontproperties="SimHei",fontsize=20)
plt.ylabel("縱軸:振幅",fontproperties="SimHei",fontsize=20)
plt.plot(a,np.cos(2*np.pi*a),"r--")

5.pyplot 的文本顯示
5.1pyplot 的文本顯示函數(shù)
至少要掌握這5個基本函數(shù),這樣繪制的圖形才非常專業(yè)

5.2實例
- $y=cos(2\pi x)$這個是排版格式
-
plt.grid(True)這個加入網(wǎng)格
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),"r--")
plt.xlabel("橫軸:時間",fontproperties="SimHei",fontsize=15,color="green")
plt.ylabel("縱軸:振幅",fontproperties="SimHei",fontsize=15)
plt.title(r"正弦波實例 $y=cos(2\pi x)$",fontproperties="SimHei",fontsize=25)
plt.text(2,1,r"$\mu=100$",fontsize=15)
plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()

5.3annotate函數(shù)

- s代表要注解的字符串是什么
- xy表示箭頭所在位置
- xytext表示文本顯示的位置
- arrowprops字典類型,定義了箭頭的屬性
import matplotlib.pyplot as plt
import numpy as np
a=np.arange(0.0,5.0,0.02)
plt.plot(a,np.cos(2*np.pi*a),"r--")
plt.xlabel("橫軸:時間",fontproperties="SimHei",fontsize=15,color="green")
plt.ylabel("縱軸:振幅",fontproperties="SimHei",fontsize=15)
plt.title(r"正弦波實例 $y=cos(2\pi x)$",fontproperties="SimHei",fontsize=25)
plt.annotate(r"$\mu=100$",xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor="black",shrink=0.1,width=2))
plt.axis([-1,6,-2,2])
plt.grid(True)
plt.show()
width箭頭的寬度,shrink表示箭頭不跟所指的位置直接靠近,留有一個很小的空白.

6.pyplot 的子繪圖區(qū)域
應該這樣繪制復雜的區(qū)域

6.1subplot2grid()函數(shù)介紹
第一個參數(shù)是個元組,將區(qū)域分割成什么樣的網(wǎng)格形狀,比如(3,3)表示把一個區(qū)域分割成三行三列,九塊區(qū)域的一個基本類型.
第二個參數(shù)代表subplot當前選定的區(qū)域在那里?針對(3,3) 而言(1,0)代表的是第一行第0列所在位置,也是圖中左側(cè)繪制區(qū)域的部分.
-
第三個參數(shù)colspan表示的是列的延伸,也就是從(1,0)開始,在列的方向上在延伸兩個長度.就是圖中所構(gòu)造的黃色區(qū)域.
-
subplot2grid()函數(shù)實例
6.2GridSpec類介紹
GridSpec(3,3)代表的是3行3列

7.單元小結(jié)









