matplotlib采用面向對象的技術來實現(xiàn),因此組成圖表的各個元素都是對象,在編寫較大的應用程序時通過面向對象的方式使用matplotlib將更加有效。但是使用這種面向對象的調用接口進行繪圖比較煩瑣,因此matplotlib還提供了快速繪圖的pyplot模塊。本節(jié)首先介紹該模塊的使用方法。
為了將matplotlib繪制的圖表嵌入Notebook中,需要執(zhí)行下面的命令:
%matplotlib inline
使用inline模式在Notebook中繪制的圖表會自動關閉,為了在Notebook的多個單元格內操作同一幅圖表,需要運行下面的魔法命令:
%config InlineBackend.close_figures = False
一、使用pyplot模塊繪圖
matplotlib的pyplot模塊提供了與MATLAB類似的繪圖函數(shù)調用接口,方便用戶快速繪制二維圖表。我們先看一個簡單的例子:
pylab模塊
matplotlib還提供了一個名為pylab的模塊,其中包括了許多NumPy和pyplot模塊中常用的函數(shù),方便用戶快速進行計算和繪圖,十分適合在IPython交互式環(huán)境中使用。
import matplotlib.pyplot as plt ?
x = np.linspace(0, 10, 1000)
y = np.sin(x)
z = np.cos(x**2)
plt.figure(figsize=(8,4)) ?
plt.plot(x,y,label="$sin(x)$",color="red",linewidth=2) ?
plt.plot(x,z,"b--",label="$cos(x^2)$") ?
plt.xlabel("Time(s)") ?
plt.ylabel("Volt")
plt.title("PyPlot First Example")
plt.ylim(-1.2,1.2)
plt.legend()
plt.show() ?
程序的輸出如圖1所示。
圖1 使用pyplot模塊快速將數(shù)據繪制成曲線
?首先載入matplotlib的繪圖模塊pyplot,并且重命名為plt。?調用figure()創(chuàng)建一個Figure(圖表)對象,并且它將成為當前Figure對象。也可以不創(chuàng)建Figure對象而直接調用接下來的plot()進行繪圖,這時matplotlib會自動創(chuàng)建一個Figure對象。figsize參數(shù)指定Figure對象的寬度和高度,單位為英寸。此外還可以用dpi參數(shù)指定Figure對象的分辨率,即每英寸所表示的像素數(shù),這里使用默認值80。因此本例中所創(chuàng)建的Figure對象的寬度為8*80 = 640個像素。
?創(chuàng)建Figure對象之后,接下來調用plot()在當前的Figure對象中繪圖。實際上plot()是在Axes(子圖)對象上繪圖,如果當前的Figure對象中沒有Axes對象,將會為之創(chuàng)建一個幾乎充滿整個圖表的Axes對象,并且使此Axes對象成為當前的Axes對象。plot()的前兩個參數(shù)是分別表示X、Y軸數(shù)據的對象,這里使用的是NumPy數(shù)組。使用關鍵字參數(shù)可以指定所繪制曲線的各種屬性:
·label:給曲線指定一個標簽,此標簽將在圖示中顯示。如果標簽字符串的前后有字符’$',matplotlib會使用內嵌的LaTeX引擎將其顯示為數(shù)學公式。
·color:指定曲線的顏色,顏色可以用英文單詞或以’#‘字符開頭的6位十六進制數(shù)表示,例如’#ff0000’表示紅色?;蛘呤褂弥翟?到1范圍之內的三個元素的元組來表示,例如(1.0, 0.0, 0.0)也表示紅色。
·linewidth:指定曲線的寬度,可以不是整數(shù),也可以使用縮寫形式的參數(shù)名lw。
使用LaTeX語法繪制數(shù)學公式會極大地降低圖表的描繪速度。
?直接通過第三個參數(shù)’b–‘指定曲線的顏色和線型,它通過一些易記的符號指定曲線的樣式。其中’b’表示藍色,’–'表示線型為虛線。在IPython中輸入plt.plot?可以查看格式化字符串以及各個參數(shù)的詳細說明。
?接下來通過一系列函數(shù)設置當前Axes對象的各個屬性:
·xlabel、ylabel:分別設置X、Y軸的標題文字。
·title:設置子圖的標題。
·xlim、ylim:分別設置X、Y軸的顯示范圍。
·legend:顯示圖示,即圖中表示每條曲線的標簽(label)和樣式的矩形區(qū)域。
?最后調用plt.show()顯示繪圖窗口,在Notebook中可以省略此步驟。在通常的運行情況下,show()將會阻塞程序的運行,直到用戶關閉繪圖窗口。
還可以調用plt.savefig()將當前的Figure對象保存成圖像文件,圖像格式由圖像文件的擴展名決定。下面的程序將當前的圖表保存為test.png,并且通過dpi參數(shù)指定圖像的分辨率為120,因此輸出圖像的寬度為8*120 = 960個像素。
plt.savefig("test.png", dpi=120)
如果關閉了圖表窗口,則無法使用savefig()保存圖像。實際上不需要調用show()顯示圖表,可以直接用savefig()將圖表保存成圖像文件。使用這種方法可以很容易編寫批量輸出圖表的程序。
savefig()的第一個參數(shù)可以是文件名,也可以是和Python的文件對象有相同調用接口的對象。例如可以將圖像保存到io.BytesIO對象中,這樣就得到了一個表示圖像內容的字符串。這里需要使用fmt參數(shù)指定保存的圖像格式。
import io
buf = io.BytesIO() # 創(chuàng)建一個用來保存圖像內容的BytesIO對象
plt.savefig(buf, fmt="png") # 將圖像以png格式保存到buf中
buf.getvalue()[:20] # 顯示圖像內容的前20個字節(jié)
'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x03 '
二、面向對象方式繪圖
matplotlib實際上是一套面向對象的繪圖庫,它所繪制的圖表中的每個繪圖元素,例如線條、文字、刻度等在內存中都有一個對象與之對應。為了方便快速繪圖,matplotlib通過pyplot模塊提供了一套和MATLAB類似的繪圖API,將眾多繪圖對象所構成的復雜結構隱藏在這套API內部。我們只需要調用pyplot模塊所提供的函數(shù)就可以實現(xiàn)快速繪圖以及設置圖表的各種細節(jié)。
為了將面向對象的繪圖庫包裝成只使用函數(shù)的API,pyplot模塊的內部保存了當前圖表以及當前子圖等信息??梢允褂胓cf()和gca()獲得這兩個對象,它們分別是“Get Current Figure”和“Get Current Axes”開頭字母的縮寫。gcf()獲得的是表示圖表的Figure對象,而gca()獲得的則是表示子圖的Axes對象。
fig = plt.gcf()
axes = plt.gca()
print fig, axes
Figure(640x320) Axes(0.125,0.1;0.775x0.8)
在pyplot模塊中,許多函數(shù)都是對當前的Figure或Axes對象進行處理,例如前面介紹的plot()、xlabel()、savefig()等。我們可以在IPython中輸入函數(shù)名并加“??”,查看這些函數(shù)的源代碼以了解它們是如何調用各種對象的方法進行繪圖處理的。例如下面的例子查看plot()函數(shù)的源程序,可以看到plot()函數(shù)實際上會通過gca()獲得當前的Axes對象ax,然后再調用它的plot()方法來實現(xiàn)真正的繪圖。請讀者使用類似的方法查看pyplot模塊的其他函數(shù)是如何對各種繪圖對象進行包裝的。
def plot(*args, **kwargs):
ax = gca()
...
try:
ret = ax.plot(*args, **kwargs)
...
finally:
ax.hold(washold)
三、配置屬性
matplotlib所繪制圖表的每個組成部分都和一個對象對應,可以通過調用這些對象的屬性設置方法set_*()或者pyplot模塊的屬性設置函數(shù)setp()來設置它們的屬性值。例如plot()返回一個元素類型為Line2D的列表,下面的例子設置Line2D對象的屬性:
plt.figure(figsize=(4, 3))
x = np.arange(0, 5, 0.1)
line = plt.plot(x, 0.05*x*x)[0] # plot返回一個列表
line.set_alpha(0.5) # 調用Line2D對象的set_*()方法來設置屬性值
上面的例子中,通過調用Line2D對象的set_alpha(),修改它在圖表中對應曲線的透明度。下面的語句同時繪制正弦和余弦兩條曲線,lines是一個有兩個Line2D對象的列表:
lines = plt.plot(x, np.sin(x), x, np.cos(x))
調用setp()可以同時配置多個對象的屬性,這里同時設置兩條曲線的顏色和線寬:
plt.setp(lines, color="r", linewidth=4.0)
圖2 配置繪圖對象的屬性
同樣,可以通過調用Line2D對象的get_*()或者通過plt.getp()來獲取對象的屬性值:
print line.get_linewidth()
print plt.getp(lines[0], "color") # 返回color屬性
2.0
r
注意getp()和setp()不同,它只能對一個對象進行操作,它有兩種用法:
·指定屬性名:返回對象的某個屬性的值。
·不指定屬性名:輸出對象的所有屬性和值。
下面通過getp()查看Figure對象的屬性:
f = plt.gcf()
plt.getp(f)
agg_filter = None
alpha = None
animated = False
axes = [<matplotlib.axes._subplots.AxesSubplot object at ...
...
Figure對象的axes屬性是一個列表,它保存圖表中的所有子圖對象。下面的程序查看當前圖表的axes屬性,它就是gca()所獲得的當前子圖對象:
print plt.getp(f, "axes"), plt.getp(f, "axes")[0] is plt.gca()
[<matplotlib.axes._subplots.AxesSubplot object at 0x05DE5790>] True
用plt.getp()可以繼續(xù)獲取AxesSubplot對象的屬性,例如它的lines屬性為子圖中的Line2D對象列表:
alllines = plt.getp(plt.gca(), "lines")
print alllines, alllines[0] is line # 其中的第一條曲線就是最開始繪制的那條曲線
<a list of 3 Line2D objects> True
通過這種方法可以很容易查看對象的屬性值以及各個對象之間的關系,找到需要配置的屬性。因為matplotlib實際上是一套面向對象的繪圖庫,因此也可以直接獲取對象的屬性,例如:
print f.axes, len(f.axes[0].lines)
[<matplotlib.axes._subplots.AxesSubplot object at 0x05DE5790>] 3
四、繪制多子圖
一個Figure對象可以包含多個子圖(Axes),在matplotlib中用Axes對象表示一個繪圖區(qū)域,在本書中稱之為子圖。在前面的例子中,F(xiàn)igure對象只包括一個子圖??梢允褂胹ubplot()快速繪制包含多個子圖的圖表,它的調用形式如下:
subplot(numRows, numCols, plotNum)
圖表的整個繪圖區(qū)域被等分為numRows行和numCols列,然后按照從左到右、從上到下的順序對每個區(qū)域進行編號,左上區(qū)域的編號為1。plotNum參數(shù)指定所創(chuàng)建Axes對象的區(qū)域。如果numRows、numCols和plotNum三個參數(shù)都小于10,則可以把它們縮寫成一個整數(shù),例如subplot(323)和subplot(3,2,3)的含義相同。如果新創(chuàng)建的子圖和之前創(chuàng)建的子圖區(qū)域有重疊的部分,之前的子圖將被刪除。
下面的程序創(chuàng)建如圖3(左)所示的3行2列共6個子圖,并通過axisbg參數(shù)給每個子圖設置不同的背景顏色。
圖3 在Figure對象中創(chuàng)建多個子圖
for idx, color in enumerate(“rgbyck”):
plt.subplot(321+idx, axisbg=color)
如果希望某個子圖占據整行或整列,可以如下調用subplot(),程序的輸出如圖3(右)所示。
plt.subplot(221) # 第一行的左圖
plt.subplot(222) # 第一行的右圖
plt.subplot(212) # 第二整行
在繪圖窗口的工具欄中,有一個名為“Configure Subplots”的按鈕,單擊它會彈出調節(jié)子圖間距和子圖與圖表邊框距離的對話框。也可以在程序中調用subplots_adjust()調節(jié)這些參數(shù),它有l(wèi)eft、right、bottom、top、wspace和hspace共6個參數(shù),這些參數(shù)與對話框中的各個控件對應。參數(shù)的取值范圍為0到1,它們是以圖表繪圖區(qū)域的寬和高進行正規(guī)化之后的坐標或長度。
subplot()返回它所創(chuàng)建的Axes對象,我們可以將這些對象用變量保存起來,然后用sca()交替讓它們成為當前Axes對象,并調用plot()在其中繪圖。如果需要同時繪制多幅圖表,可以給figure()傳遞一個整數(shù)參數(shù)來指定Figure對象的序號。如果序號所指定的Figure對象已經存在,將不創(chuàng)建新的對象,而只是讓它成為當前的Figure對象。下面的程序演示了依次在不同圖表的不同子圖中繪制曲線:
plt.figure(1) # 創(chuàng)建圖表1
plt.figure(2) # 創(chuàng)建圖表2
ax1 = plt.subplot(121) # 在圖表2中創(chuàng)建子圖1
ax2 = plt.subplot(122) # 在圖表2中創(chuàng)建子圖2
x = np.linspace(0, 3, 100)
for i in xrange(5):
plt.figure(1) ?選擇圖表1
plt.plot(x, np.exp(i*x/3))
plt.sca(ax1) ?選擇圖表2的子圖1
plt.plot(x, np.sin(i*x))
plt.sca(ax2) # 選擇圖表2的子圖2
plt.plot(x, np.cos(i*x))
也可以不調用sca()指定當前子圖,而直接調用ax1和ax2的plot()方法來繪圖。
首先通過figure()創(chuàng)建了兩個圖表,它們的序號分別為1和2。然后在圖表2中創(chuàng)建了左右并排的兩個子圖,并用變量ax1和ax2保存。
在循環(huán)中,?先調用figure(1)讓圖表1成為當前圖表,并在其中繪圖。?然后調用sca(ax1)和sca(ax2)分別讓子圖ax1和ax2成為當前子圖,并在其中繪圖。當它們成為當前子圖時,包含它們的圖表2也自動成為當前圖表,因此不需要調用figure(2)。這樣依次在圖表1和圖表2的兩個子圖之間切換,逐步在其中添加新的曲線,效果如圖4所示。
圖4 同時在多幅圖表、多個子圖中進行繪圖
此外subplots()可以一次生成多個子圖,并返回圖表對象和保存子圖對象的數(shù)組。在下面的例子中,axes是一個形狀為(2, 3)的數(shù)組,每個元素都是一個子圖對象,可以利用Python的賦值功能將這個數(shù)組中的每個元素用一個變量表示:
fig, axes = plt.subplots(2, 3)
[a, b, c], [d, e, f] = axes
print axes.shape
print b
(2, 3)
Axes(0.398529,0.536364;0.227941x0.363636)
還可以調用subplot2grid()進行更復雜的表格布局。表格布局和在Excel或Word中繪制表格十分類似,其調用參數(shù)如下:
subplot2grid(shape, loc, rowspan=1, colspan=1, **kwargs)
其中,shape為表示表格形狀的元組:(行數(shù), 列數(shù))。loc為子圖左上角所在的坐標:(行, 列)。rowspan和colspan分別為子圖所占據的行數(shù)和列數(shù)。在下面的例子中,在3×3的網格上創(chuàng)建5個子圖,在每個子圖中間顯示該子圖對應的變量名,如圖5所示:
圖5 使用subplot2grid()創(chuàng)建表格布局
fig = plt.figure(figsize=(6, 6))
ax1 = plt.subplot2grid((3, 3), (0, 0), colspan=2)
ax2 = plt.subplot2grid((3, 3), (0, 2), rowspan=2)
ax3 = plt.subplot2grid((3, 3), (1, 0), rowspan=2)
ax4 = plt.subplot2grid((3, 3), (2, 1), colspan=2)
ax5 = plt.subplot2grid((3, 3), (1, 1))
五、配置文件
繪制一幅圖需要對許多對象的屬性進行配置,例如顏色、字體、線型等。在前面的繪圖程序中,并沒有逐一對這些屬性進行配置,而是直接采用matplotlib的默認配置。matplotlib將這些默認配置保存在一個名為matplotlibrc的配置文件中,通過修改配置文件,可以修改圖表的默認樣式。
在matplotlib中可以使用多個matplotlibrc配置文件,它們的搜索順序如下:順序靠前的配置文件將會被優(yōu)先采用。
·當前路徑:程序的當前路徑。
·用戶配置路徑:通常在用戶文件夾的.matplotlib目錄下,可以通過環(huán)境變量MATPLOTLIBRC修改它的位置。
·系統(tǒng)配置路徑:保存在matplotlib的安裝目錄下的mpl-data中。
通過下面的語句可以獲取用戶配置路徑:
from os import path
path.abspath(matplotlib.get_configdir())
u'C:\\Users\\RY\\Dropbox\\scipybook2\\settings\\.matplotlib'
通過下面的語句可以獲得目前使用的配置文件的路徑:
path.abspath(matplotlib.matplotlib_fname())
u'C:\\Users\\RY\\Dropbox\\scipybook2\\settings\\.matplotlib\\matplotlibrc'
如果使用文本編輯器打開此配置文件,就會發(fā)現(xiàn)它實際上是一個字典。為了對眾多的配置進行區(qū)分,字典的鍵根據配置的種類,用“.”分為多段。配置文件的讀入可以使用rc_params(),它返回一個配置字典:
print(matplotlib.rc_params())
agg.path.chunksize: 0
animation.avconv_args: []
animation.avconv_path: avconv
animation.bitrate: -1
...
在matplotlib模塊載入時會調用rc_params(),并把得到的配置字典保存到rcParams變量中:
print(matplotlib.rcParams)
agg.path.chunksize: 0
animation.avconv_args: []
animation.avconv_path: avconv
animation.bitrate: -1
...
matplotlib將使用rcParams字典中的配置進行繪圖。用戶可以直接修改此字典中的配置,所做的改變會反映到此后創(chuàng)建的繪圖元素。例如下面的腳本所繪制的折線將帶有圓形的點標識符:
matplotlib.rcParams["lines.marker"] = "o"
plt.plot([1,2,3,2])
為了方便對配置字典進行設置,可以使用rc()。下面的例子同時配置點標識符、線寬和顏色:
matplotlib.rc("lines", marker="x", linewidth=2, color="red")
如果希望恢復到matplotlib載入時從配置文件讀入的默認配置,可以調用rcdefaults():
matplotlib.rcdefaults()
如果手工修改了配置文件,希望重新從配置文件載入最新的配置,可以調用:
matplotlib.rcParams.update( matplotlib.rc_params() )
通過pyplot模塊也可以使用rcParams、rc和rcdefaults。
matplotlib.style模塊提供繪圖樣式切換功能,所有可選樣式可以通過available獲得:
from matplotlib import style
print style.available
[u'dark_background', u'bmh', u'grayscale', u'ggplot', u'fivethirtyeight']
調用use()函數(shù)即可切換樣式,例如下面使用ggplot樣式繪圖,效果如圖6所示。
圖6 使用ggplot樣式繪圖
style.use("ggplot")
六、在圖表中顯示中文
matplotlib的默認配置文件中所使用的字體無法正確顯示中文,可以通過下面幾種方法設置中文字體:
·在程序中直接指定字體。
·在程序開頭修改配置字典rcParams。
·修改配置文件。
在matplotlib中可以通過字體名指定字體,而每個字體名都與一個字體文件相對應。通過下面的程序可以獲得所有可用字體的列表:
from matplotlib.font_manager import fontManager
fontManager.ttflist[:6]
[<Font 'cmss10' (cmss10.ttf) normal normal 400 normal>,
<Font 'cmb10' (cmb10.ttf) normal normal 400 normal>,
<Font 'cmex10' (cmex10.ttf) normal normal 400 normal>,
<Font 'STIXSizeFourSym' (STIXSizFourSymBol.ttf) normal normal 700 normal>,
<Font 'Bitstream Vera Serif' (VeraSeBd.ttf) normal normal 700 normal>,
<Font 'Bitstream Vera Sans' (VeraIt.ttf) oblique normal 400 normal>]
ttflist是matplotlib的系統(tǒng)字體列表。其中每個元素都是表示字體的Font對象,下面的程序顯示了第一個字體文件的全路徑和字體名,由路徑可知它是matplotlib自帶的字體:
print fontManager.ttflist[0].name
print fontManager.ttflist[0].fname
cmss10
C:\WinPython-32bit-2.7.9.2\python-2.7.9\lib\site-packages\matplotlib\mpl-data\fonts\ttf\cmss10.ttf
下面的程序使用字體列表中的字體顯示中文文字,效果圖7所示。
圖7 顯示系統(tǒng)中所有的中文字體名
scpy2/matplotlib/chinese_fonts.py:顯示系統(tǒng)中所有文件大于1MB的TTF字體,請讀者使用該程序查詢計算機中可使用的中文字體名。
import os
from os import path
fig = plt.figure(figsize=(8, 7))
ax = fig.add_subplot(111)
plt.subplots_adjust(0, 0, 1, 1, 0, 0)
plt.xticks([])
plt.yticks([])
x, y = 0.05, 0.05
fonts = [font.name for font in fontManager.ttflist if
path.exists(font.fname) and os.stat(font.fname).st_size>1e6] ?
font = set(fonts)
dy = (1.0 - y) / (len(fonts) // 4 + (len(fonts)%4 != 0))
for font in fonts:
t = ax.text(x, y + dy / 2, u"中文字體",
{'fontname':font, 'fontsize':14}, transform=ax.transAxes) ?
ax.text(x, y, font, {'fontsize':12}, transform=ax.transAxes)
x += 0.25
if x >= 1.0:
y += dy
x = 0.05
plt.show()
?利用os模塊中的stat()獲取字體文件的大小,并保留字體列表中所有大于1MB的字體文件。由于中文字體文件通常都很大,因此使用這種方法可以粗略地找出所有的中文字體文件。
?調用子圖對象的text()在其中添加文字,注意文字必須是Unicode字符串。通過一個描述字體的字典指定文字的字體:'fontname’鍵對應的值就是字體名。
由于matplotlib只搜索TTF字體文件,因此無法通過上述方法使用系統(tǒng)中安裝的許多復合TTC字體文件。可以直接創(chuàng)建使用字體文件的FontProperties對象,并使用此對象指定圖表中的各種文字的字體。下面是一個例子:
from matplotlib.font_manager import FontProperties
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc", size=14) ?
t = np.linspace(0, 10, 1000)
y = np.sin(t)
plt.close("all")
plt.plot(t, y)
plt.xlabel(u"時間", fontproperties=font) ?
plt.ylabel(u"振幅", fontproperties=font)
plt.title(u"正弦波", fontproperties=font)
plt.show()
?創(chuàng)建一個描述字體屬性的FontProperties對象,并設置其fname屬性為字體文件的絕對路徑。?通過fontproperties參數(shù)將FontProperties對象傳遞給顯示文字的函數(shù)。
還可以通過字體工具將TTC字體文件分解為多個TTF字體文件,并將其復制到系統(tǒng)的字體文件夾中。為了縮短啟動時間,matplotlib不會每次啟動時都重新掃描所有的字體文件并創(chuàng)建字體列表,因此在復制完字體文件之后,需要運行下面的語句重新創(chuàng)建字體列表:
from matplotlib.font_manager import _rebuild
_rebuild()
還可以直接修改配置字典,設置默認字體,這樣就不需要在每次繪制文字時設置字體了。例如:
plt.rcParams["font.family"] = "SimHei"
plt.plot([1,2,3])
plt.xlabel(0.5 ,0.5, u"中文字體")
或者修改上節(jié)介紹的配置文件,修改其中的font.family配置為SimHei,注意SimHei是字體名,請讀者運行前面的代碼來查看系統(tǒng)中所有可用的中文字體名。
題外話
感興趣的小伙伴,贈送全套Python學習資料,包含面試題、簡歷資料等具體看下方。
??CSDN大禮包??:全網最全《Python學習資料》免費贈送??!(安全鏈接,放心點擊)文章來源:http://www.zghlxwxcb.cn/news/detail-673398.html
一、Python所有方向的學習路線
Python所有方向的技術點做的整理,形成各個領域的知識點匯總,它的用處就在于,你可以按照下面的知識點去找對應的學習資源,保證自己學得較為全面。
二、Python必備開發(fā)工具
工具都幫大家整理好了,安裝就可直接上手!
三、最新Python學習筆記
當我學到一定基礎,有自己的理解能力的時候,會去閱讀一些前輩整理的書籍或者手寫的筆記資料,這些筆記詳細記載了他們對一些技術點的理解,這些理解是比較獨到,可以學到不一樣的思路。
四、Python視頻合集
觀看全面零基礎學習視頻,看視頻學習是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎到深入,還是很容易入門的。
五、實戰(zhàn)案例
紙上得來終覺淺,要學會跟著視頻一起敲,要動手實操,才能將自己的所學運用到實際當中去,這時候可以搞點實戰(zhàn)案例來學習。
六、面試寶典
簡歷模板
??CSDN大禮包??:全網最全《Python學習資料》免費贈送??!(安全鏈接,放心點擊)
如有侵權,請聯(lián)系刪除。文章來源地址http://www.zghlxwxcb.cn/news/detail-673398.html
到了這里,關于Python 數(shù)據分析——matplotlib 快速繪圖的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!