1. 程式人生 > >4.python資料分析與展示-----Matplotlib庫入門

4.python資料分析與展示-----Matplotlib庫入門

1.Matplotlib庫介紹

Python優秀的資料 視覺化第三方庫


2.Matplotlib庫的使用

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

                          import matplotlib.pyplot as plt

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

import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel("Grade")
plt.savefig("test"
,dpi=600) #PNG檔案 plt.show()

   

plt.savefig()將輸出圖形儲存為檔案,預設PNG格式,可以通過dpi修改輸出質量

import matplotlib.pyplot as plt
plt.plot([3,1,4,5,2])
plt.ylabel("Grade")
plt.savefig("test",dpi=600)#PNG檔案
plt.show()
         

plt.plot(x,y)當有兩個以上引數時,按照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()

                 


import matplotlib.pyplot as plt
import numpy as np
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(2,1,2)
plt.plot(a,np.cos(2*np.pi*f(a)),'r--')
plt.show()

        

3.pyplot的plot()函式

        plt.plot(x,y, format_string, **kwargs)

                     ∙ x : X軸資料,列表或陣列,可選 

                    ∙ y :Y軸資料,列表或陣列 

                     ∙format_string: 控制曲線的格式字串,可選 

                    ∙ **kwargs: 第二組或更多(x,y,format_string)

當繪製多條曲線時,各條曲線的x不能省略

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()

                    




顏色字元、風格字元和標 記字元可以組合使用,如下例

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()



4.pyplot的中文顯示

①pyplot並不預設支援中文顯示,需要rcParams修改字型實現

import matplotlib.pyplot as plt
import matplotlib
matplotlib.rcParams['font.family']='SimHei' #'SimHei'是黑體
plt.plot([3,1,4,5,2])
plt.ylabel("縱軸()")
plt.savefig("test",dpi=600) #PNG檔案
plt.show()

                   



import matplotlib.pyplot as plt
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.ylabel("縱軸:振幅")
plt.xlabel("橫軸:時間")
plt.plot(a,np.cos(2*np.pi*a),'r--')
plt.show()

     

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


5.pyplot的文字顯示


6.pyplot的子繪圖區域


plt.subplot2grid((3,3),(0,0),colspan=3)
plt.subplot2grid((3,3),(1,0),colspan=2)
plt.subplot2grid((3,3),(1,2),rowspan=2)
plt.subplot2grid((3,3),(2,0))
plt.subplot2grid((3,3),(2,1))