Python MatPlotlib庫的學習筆記

2021-10-08 14:54:42 字數 3466 閱讀 8242

matplotlib和numpy庫一樣,都是python的第三方庫,numpy庫側重於資料的統計,計算,分析,詳細看這裡;

matplotlib庫則側重於圖形的繪製,將資料視覺化,支援許多種影象的繪製,具體看這裡。matplotlib庫支援的功能太多,一般情況只使用其中的pyplot子庫就已足夠,具體使用方法如下:

import matplotlib.pyplot as plt
上初中時,學的最簡單的圖形是什麼?沒錯,座標系,學習pyplot,第一步先學會畫乙個平面座標系,利用plot函式可以做到這一點

plt.plot(x,y,format_string,

**kwargs)

其中:

format_string:可控制曲線的顏色,風格,標記字元,下圖列出了常用的幾個,不用記憶,需要的時候查一下表就行:

這裡舉乙個plot的使用示例:

a=np.arrage(10)

plt.plot(a,a*

1.5,

'go-'

,a,a*

2.5,

'rx'

,a,a*

3.5,

'*',a,a*

4.5,

'b-.'

)

這條程式繪製出的圖形如下:

使用技巧:當繪製一條曲線時,可以省略x軸,影象將y軸資料(列表或陣列)的下標當作x軸,

但是當繪製多條曲線時,不允許x軸的省略

僅僅有影象是不夠的,這個圖象表示了什麼,它的x,y軸代表什麼含義?我們需要用注釋來表明影象的意義,pyplot中提供了許多文字顯示函式,常用的有以下幾種:

那這些函式怎麼用呢?前三者用法相同,這裡舉乙個例子

a=np.arange(0,

5,0.5)

plt.plot(a,a**2,

'r--'

)plt.xlabel(

'xlabel'

,fontsize=

15,color=

'green'

)plt.ylabel(

'ylabel'

,fontsize=

15,color=

'yellow'

)plt.title(

'title $y=coss(2\pi x)$'

,fontsize=25)

plt.text(2,

1,r'$\mu=100$'

,fontsize=15)

plt.grid(

true

)plt.show(

)

其中,由兩個$包括起來的部分是latex格式語句,這裡不贅述;

text函式中,前兩個引數分別表示文字的橫縱座標

除這些外,表中還提到了annotate函式,使用方法如下:

plt.annotate(s,xy=arrow_crd,xytexte=text_crd,arrowprops=

dict

)

這些引數中:

pyplot預設情況下,不支援中文的標註,這可讓英文渣大為頭疼,接下來我們學習:如何讓它支援中文注釋。

想讓pyplot支援中文注釋,需要用到rcparams這個函式,它可以指定中文的字型,字型風格(正常,斜體),以及字型大小,使用的示例如下:

import matplotlib

matplotlib.rcparams[

'font.family']=

'simhei'

matplotlib.rcparams[

'fontsize']=

20

以上**中,simhei代表黑體,在寫過這條**後,就可以在x,y軸等地方新增中文的注釋,常用的字型有如下幾種:

此外,rcparams包含以下這些屬性:

在以上的方法中,使用rcparams可以設定全域性的字型,但如果只想改變某個部分的字型呢?這時就需要用到fontproperties屬性。

舉例:

a=np.arange(

0.0,

5.0,

0.02

)plt.xlabel(

'這裡是橫軸'

,fontproperties=

'simhei'

,fontsize=20)

ply.ylabel(

'這裡是縱軸',fontperoerties=

'simhei'

,fontsize=20)

plt.plot(a,a**2)

plt.show

常常,我們會想在一張紙上畫許多個互不關聯的影象,這些影象有的占用了左半邊,有時由占用了一整行,pyplot中也可以做到這種效果----subplot2grid()

subplot2grid函式,首先將畫圖的區域分成多個網格,利用對不同的網格選擇,合併,便達到圖中的效果,和excel中的合併單元格是同樣的原理。

例如:

plt.subplot2grid((3

,3),

(1,0

),colspan=

2,rowspan=

2)

gridspec函式是位於matplotlib中gridspec子庫中的乙個函式,它的使用原理同上,但在劃分網格後,不需要每次重新劃分,直接選

中便可使用,舉例如下:

機器學習筆 常用python庫

python下有很多關於機器學習的庫,最常用的組合有以下四個 numpy 主要用來做一些科 算,主要是矩陣的運算。numpy為python帶來了真正的多維陣列功能,並且提供了豐富的函式庫處理這些陣列。它將常用的數學函式都進行陣列化,使得這些數學函式能夠直接對陣列進行操作,將本來需要在python級別...

android actionbar的學習筆記

我主要學習了actionbar的 1.如何顯示和關閉 2.如何在actionbar中顯示自定義的view 3.如何顯示隱藏的和直接顯示的menu item 1.如何顯示 2.如何得到actionbar?actionbar有兩種,一種是android系統自帶的,一種是support包中的actionb...

python matplotlib中的一些引數問題

import numpy as np import matplotlib.pyplot as plt 生成x軸上的資料 從 1到1,總共有50個點 x np.linspace 1 1,50 定義乙個線性方程 y1 3 x 定義乙個二次方程 y2 x 3 設定x軸的取值範圍為 2到2 plt.xlim...