matplotlib

繪圖架構

學習目標

  • 目標
    • 知道Matplotlib的繪圖架構
  • 應用

1、什麼是Matplotlib

matplotlib

  • 是專門用於開發2D圖表(包括3D圖表)
  • 使用起來及其簡單
  • 以漸進、交互式方式實現數據可視化

2、爲何要學習Matplotlib

可視化是在整個數據挖掘的關鍵輔助工具,能夠清晰的理解數據,從而調整咱們的分析方法。html

  • 能將數據進行可視化,更直觀的呈現
  • 使數據更加客觀、更具說服力

例以下面兩個圖爲數字展現和圖形展現:python

star

咱們先來簡單畫一個圖看下效果

plt.figure(figsize=(20, 8), dpi = 100) plt.plot([1,2,3], [4,5,6]) plt.show() 

先看效果1

4、Matplotlib框架構成

matplotlib框架分爲三層,這三層構成了一個棧,上層能夠調用下層。編程

三層

一、後端層

matplotlib的底層,實現了大量的抽象接口類,這些API用來在底層實現圖形元素的一個個類json

  • FigureCanvas對象實現了繪圖區域這一律念
  • Renderer對象在FigureCanvas上繪圖

二、美工層

圖形中全部能看到的元素都屬於Artist對象,即標題、軸標籤、刻度等組成圖形的全部元素都是Artist對象的實例後端

  • Figure:指整個圖形(包括全部的元素,好比標題、線等)
  • Axes(座標系):數據的繪圖區域
  • Axis(座標軸):座標系中的一條軸,包含大小限制、刻度和刻度標籤

特色爲:api

  • 一個figure(圖)能夠包含多個axes(座標系),可是一個axes只能屬於一個figure。
  • 一個axes(座標系)能夠包含多個axis(座標軸),包含兩個即爲2d座標系,3個即爲3d座標系

artist

三、腳本層

主要用於可視化編程,pytplot模塊能夠提供給咱們一個與matplotlib打交道的接口。能夠只經過調用pyplot模塊的函數從而操做整個程序包,來繪製圖形。緩存

  • 操做或者改動Figure對象,例如建立Figure對象
  • 大部分工做是處理樣本文件的圖形與座標的生成

折線圖與基礎繪圖功能

學習目標

  • 目標
    • 知道如何解決中文顯示問題
    • 知道matplotlib的圖結構
    • 應用figure實現建立繪圖區域大小
    • 應用plot實現折線圖的繪製
    • 應用title,xlabel,ylabel實現標題以及x,y軸名設置
    • 應用xticks,yticks實現axes的刻度設置和標註
    • 應用savefig實現圖形的本地保存
    • 應用grid實現顯示網格應用axis實現圖像形狀修改
    • 應用legend實現圖形標註信息顯示
    • 應用plt.subplots實現多座標系的建立
    • 知道如何設置多個axes的標題、刻度
    • 知道折線圖的應用場景
  • 應用
    • 天氣的溫度變化顯示

1、Parts of a Figure

fig

2、折線圖繪製與保存圖片

爲了更好的去理解全部基礎繪圖功能,咱們經過天氣溫度變化的繪圖來融合全部的基礎API使用架構

一、matplotlib.pyplot模塊

matplotlib.pytplot包含了一系列相似於matlab的畫圖函數。 它的函數做用於當前圖形(figure)的當前座標系(axes)。app

import matplotlib.pyplot as plt 

二、折線圖繪製與顯示

展示上海一週的天氣,好比從星期一到星期日的天氣溫度以下

plt.figure(figsize=(10, 10)) plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13]) plt.show() 

折線圖

能夠看到這樣去顯示效果並很差,圖形的大小等等,因此咱們能夠經過加入更多的功能。框架

三、修改圖形大小與圖片保存

plt.figure(figsize=(), dpi=)
    figsize:指定圖的長寬
    dpi:圖像的清晰度
    返回fig對象
plt.savefig(path)
plt.figure(figsize=(20, 8), dpi=80) plt.savefig("test.png") 

會將圖片保存到當前路徑下

savefig

3、溫度變化顯示

需求:畫出某城市11點到12點1小時內每分鐘的溫度變化折線圖,溫度範圍在15度~18度

效果:

上海1

一、構造數據、顯示

# 畫出溫度變化圖 # 建立一個figure plt.figure(figsize=(20, 8), dpi=80) # 準備x, y座標的數據 x = range(60) y_shanghai = [random.uniform(15, 18) for i in x] # 畫折線圖 plt.plot(x, y_shanghai, label="上海") plt.show() 

上海2

二、自定義x,y刻度以及中文顯示

  • plt.xticks(x, **kwargs)

    x:要顯示的刻度值

  • plt.yticks(y, **kwargs)

    y:要顯示的刻度值

# 增長如下兩行代碼 # 構造中文列表的字符串 x_ch = ["11點{}分".format(i) for i in x] y_ticks = range(40) # 修改x,y座標的刻度 plt.xticks(x[::5], x_ch[::5]) plt.yticks(y_ticks[::5]) 

上海3

若是沒有解決過中文問題的話,會顯示這個樣子:

中文問題

2.1 中文顯示問題解決

下載中文字體(黑體,看準系統版本)

  • 下載 arial unicode ms 字體到 /home 目錄

  • 拷貝字體到 usr/share/fonts 下:

    sudo cp ~/arial\ unicode\ ms.ttf /usr/share/fonts/arial\ unicode\ ms.ttf
  • 修改配置文件matplotlibrc 而且在~/.matplotlib/matplotlibrc也進行修改

    在安裝的地方找到虛擬環境ai/lib/python3.6/site-packages/matplotlib/mpl-data目錄下面,修改下面三項配置

    font.family         : sans-serif        
    
    font.sans-serif     : arial unicode ms, Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Arial, Helvetica, Avant Garde, sans-serif
  • 刪除matplotlib字體緩存:

    rm -rf ~/matplotlib/fontList.json

三、增長標題、x軸y軸描述信息

plt.xlabel("時間") plt.ylabel("溫度") plt.title("中午11點0分到12點之間的溫度變化圖示") 

上海4

四、再添加一個城市的溫度變化

收集到北京當天溫度變化狀況,溫度在1度到3度。怎麼去添加另外一個在同一座標系當中的不一樣圖形,其實很簡單隻須要再次plot便可,可是須要區分線條,以下顯示

上海1

# 生成北京的溫度 y_beijing = [random.uniform(1, 3) for i in x] # 畫折線圖 plt.plot(x, y_shanghai, label="上海") # 使用plot能夠屢次畫多個折線 plt.plot(x, y_beijing, color='r', linestyle='--', label="北京") # 添加圖形註釋 plt.legend(loc="best") 

咱們仔細觀察,用到了兩個新的地方,一個是對於不一樣的折線展現效果,一個是添加註釋

4.1自定一個圖形風格

顏色字符 風格字符
r 紅色 - 實線
g 綠色 - - 虛線
b 藍色 -. 點劃線
w 白色 : 點虛線
c 青色 ' ' 留空、空格
m 洋紅  
y 黃色  
k 黑色

4.2添加註釋

plt.legend(loc="best")

legend

五、多個座標系顯示-plt.subplots

若是咱們想要將上海和北京的天氣圖顯示在同一個圖的不一樣座標系當中,效果以下:

subplots

能夠經過subplots函數實現(舊的版本中有subplot,使用起來不方便),推薦subplots函數

  • matplotlib.pyplot.subplots(nrows=1, ncols=1, **fig_kw) 建立一個帶有多個座標系的圖

    Parameters:    
    
    nrows, ncols : int, optional, default: 1, Number of rows/columns of the subplot grid.
    **fig_kw : All additional keyword arguments are passed to the figure() call.
    
    Returns:    
    fig : 圖對象
    ax : 
        設置標題等方法不一樣:
        set_xticks
        set_yticks
        set_xlabel
        set_ylabel

    關於axes子座標系的更多方法:參考https://matplotlib.org/api/axes_api.html#matplotlib.axes.Axes

# 畫出溫度變化圖,展示在不一樣axes裏面 # 建立一個figure fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80) # 準備x, y座標的數據 x = range(60) # y的刻度範圍 y_ticks = range(40) y_shanghai = [random.uniform(15, 18) for i in x] # 生成北京的溫度 y_beijing = [random.uniform(1, 3) for i in x] # 構造中文列表的字符串 x_ch = ["11點{}分".format(i) for i in x] # 畫折線圖 axes[0].plot(x, y_shanghai, label="上海") # 使用plot能夠屢次畫多個折線 axes[1].plot(x, y_beijing, color='r', linestyle='--', label="北京") # 美化x,y的刻度值 # 第一個參數必須是刻度數字類型,第二個是對應着第一個數字的中文描述 axes[0].set_xticks(x[::5], x_ch[::5]) axes[0].set_yticks(y_ticks[::5]) axes[1].set_xticks(x[::5], x_ch[::5]) axes[1].set_yticks(y_ticks[::5]) # 增長x,y描述信息和標題信息 axes[0].set_xlabel("時間") axes[0].set_ylabel("溫度") axes[1].set_xlabel("時間") axes[1].set_ylabel("溫度") axes[0].set_title("中午11點0分到12點之間的溫度變化圖示") axes[1].set_title("中午11點0分到12點之間的溫度變化圖示") axes[0].legend(loc="best") axes[1].legend(loc="best") plt.show() 

4、折線圖的應用場景

  • 呈現公司產品(不一樣區域)天天活躍用戶數
  • 呈現app天天下載數量
  • 呈現產品新功能上線後,用戶點擊次數隨時間的變化

小結

開頭的這幾個目標應用全都很重要

  • 知道如何解決中文顯示問題
  • 知道matplotlib的圖結構
  • 應用figure實現建立繪圖區域大小
  • 應用plot實現折線圖的繪製
  • 應用title,xlabel,ylabel實現標題以及x,y軸名設置
  • 應用xticks,yticks實現axes的刻度設置和標註
  • 應用savefig實現圖形的本地保存
  • 應用grid實現顯示網格應用axis實現圖像形狀修改
  • 應用legend實現圖形標註信息顯示
  • 應用plt.subplots實現多座標系的建立
  • 知道如何設置多個axes的標題、刻度

 

柱狀圖

學習目標

  • 目標
    • 應用bar實現柱狀圖的繪製
    • 知道柱狀圖的應用場景
  • 應用
    • 電影票房收入繪製

matplotlib可以繪製折線圖、柱狀圖、餅圖、直方圖、散點圖、熱力圖、K線圖等,可是,咱們須要知道不一樣的統計圖到底可以表示出什麼,以此來決定選擇哪一種統計圖來更直觀的呈現咱們的數據

1、常見圖形種類及意義

圖形種類

  • 折線圖:以折線的上升或降低來表示統計數量的增減變化的統計圖

    特色:可以顯示數據的變化趨勢,反映事物的變化狀況。(變化)

  • 直方圖:由一系列高度不等的縱向條紋或線段表示數據分佈的狀況。 通常用橫軸表示數據範圍,縱軸表示分佈狀況。

    特色:繪製,連續性的數據展現一組或者多組數據的分佈情況(統計)

  • 柱狀圖:排列在工做表的列或行中的數據能夠繪製到柱狀圖中。

    特色:繪製連離散的數據,可以一眼看出各個數據的大小,比較數據之間的差異。(統計)

  • 散點圖:用兩組數據構成多個座標點,考察座標點的分佈,判斷兩變量之間是否存在某種關聯或總結座標點的分佈模式。

    特色:判斷變量之間是否存在數量關聯趨勢,展現離羣點(分佈規律)

2、柱狀圖圖繪製

柱狀圖

需求:每部電影的票房收入對比?

一、畫出每部電影的票房收入對比,效果以下:

電影票房條形圖

電影數據以下圖所示:

電影票房數據

['雷神3:諸神黃昏','正義聯盟','東方快車謀殺案','尋夢環遊記','全球風暴', '降魔傳','追捕','七十七天','密戰','狂獸','其它']
[73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222]

二、繪製

  • matplotlib.pyplot.bar(x, width, align='center', **kwargs)

繪製柱狀圖

Parameters:    
x : sequence of scalars.

width : scalar or array-like, optional
柱狀圖的寬度

align : {‘center’, ‘edge’}, optional, default: ‘center’
Alignment of the bars to the x coordinates:
‘center’: Center the base on the x positions.
‘edge’: Align the left edges of the bars with the x positions.
每一個柱狀圖的位置對齊方式

**kwargs :
color:選擇柱狀圖的顏色

Returns:    
`.BarContainer`
Container with all the bars and optionally errorbars.

代碼:

# 完成簡單的條形圖展示不一樣的電影票房之間的對比 plt.figure(figsize=(20, 8), dpi=80) # 準備電影的名字以及電影的票房數據 movie_name = ['雷神3:諸神黃昏','正義聯盟','東方快車謀殺案','尋夢環遊記','全球風暴','降魔傳','追捕','七十七天','密戰','狂獸','其它'] y = [73853,57767,22354,15969,14839,8725,8716,8318,7916,6764,52222] # 放進橫座標的數字列表 x = range(len(movie_name)) # 畫出條形圖 plt.bar(x, y, width=0.5, color=['b','r','g','y','c','m','y','k','c','g','g']) # 修改刻度名稱 plt.xticks(x, movie_name) plt.show() 

如何對比電影票房收入才更能加有說服力?

三、比較相同天數的票房

有時候爲了公平起見,咱們須要對比不一樣電影首日和首周的票房

3.1數據以下

movie_name = ['雷神3:諸神黃昏','正義聯盟','尋夢環遊記']

first_day = [10587.6,10062.5,1275.7]
first_weekend=[36224.9,34479.6,11830]

數據來源: https://piaofang.maoyan.com/?ver=normal

效果以下:

首日首周票房對比

3.2 分析

  • 添加首日首周兩部分的柱狀圖
  • x軸中文座標位置調整

代碼:

# 三部電影的首日和首周票房對比 plt.figure(figsize=(20, 8), dpi=80) movie_name = ['雷神3:諸神黃昏','正義聯盟','尋夢環遊記'] first_day = [10587.6,10062.5,1275.7] first_weekend=[36224.9,34479.6,11830] x = range(len(movie_name)) # 畫出柱狀圖 plt.bar(x, first_day, width=0.2, label="首日票房") # 首周柱狀圖顯示的位置在首日的位置右邊 plt.bar([i+0.2 for i in x], first_weekend, width=0.2, label="首周票房") # 顯示X軸中文,固定在首日和首周的中間位置 plt.xticks([i+0.1 for i in x], movie_name) plt.legend(loc='best') plt.show() 

3、柱狀圖應用場景

適合用在分類數據對比場景上

  • 數量統計
  • 用戶數量對比分析

 

直方圖

學習目標

  • 目標
    • 應用hist實現直方圖的繪製
    • 知道直方圖圖的應用場景
  • 應用

    電影時長分佈

1、直方圖(Histogram)介紹

直方圖,形狀相似柱狀圖卻有着與柱狀圖徹底不一樣的含義。直方圖牽涉統計學的概念,首先要對數據進行分組,而後統計每一個分組內數據元的數量。 在座標系中,橫軸標出每一個組的端點,縱軸表示頻數,每一個矩形的高表明對應的頻數,稱這樣的統計圖爲頻數分佈直方圖。

相關概念:

  • 組數:在統計數據時,咱們把數據按照不一樣的範圍分紅幾個組,分紅的組的個數稱爲組數
  • 組距:每一組兩個端點的差

直方圖

2、電影時長分佈繪製

現有250部電影的時長,但願統計出這些電影時長的分佈狀態(好比時長爲100分鐘到120分鐘電影的數量,出現的頻率)等信息,你應該如何呈現這些數據?

數據:

time =[131,  98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115,  99, 136, 126, 134,  95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117,  86,  95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123,  86, 101,  99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140,  83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144,  83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137,  92,121, 112, 146,  97, 137, 105,  98, 117, 112,  81,  97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112,  83,  94, 146, 133, 101,131, 116, 111,  84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150]

效果:

電影時長分佈

一、matplotlib.pyplot.hist(x, bins=None, normed=None, **kwargs)

直方圖繪製

Parameters:    
x : (n,) array or sequence of (n,) arrays

bins : integer or sequence or ‘auto’, optional
組距

normed : bool, optional
以頻率顯示或者以頻數顯示,默認頻數,值1爲頻率

二、分析

  • 設置組距
  • 設置組數(一般對於數據較少的狀況,分爲5~12組,數據較多,更換圖形顯示方式)
    • 一般設置組數會有相應公式:組數 = 極差/組距= (max-min)/bins

代碼:

# 展示不一樣電影的時長分佈狀態 plt.figure(figsize=(20, 8), dpi=100) # 準備時長數據 time =[131, 98, 125, 131, 124, 139, 131, 117, 128, 108, 135, 138, 131, 102, 107, 114, 119, 128, 121, 142, 127, 130, 124, 101, 110, 116, 117, 110, 128, 128, 115, 99, 136, 126, 134, 95, 138, 117, 111,78, 132, 124, 113, 150, 110, 117, 86, 95, 144, 105, 126, 130,126, 130, 126, 116, 123, 106, 112, 138, 123, 86, 101, 99, 136,123, 117, 119, 105, 137, 123, 128, 125, 104, 109, 134, 125, 127,105, 120, 107, 129, 116, 108, 132, 103, 136, 118, 102, 120, 114,105, 115, 132, 145, 119, 121, 112, 139, 125, 138, 109, 132, 134,156, 106, 117, 127, 144, 139, 139, 119, 140, 83, 110, 102,123,107, 143, 115, 136, 118, 139, 123, 112, 118, 125, 109, 119, 133,112, 114, 122, 109, 106, 123, 116, 131, 127, 115, 118, 112, 135,115, 146, 137, 116, 103, 144, 83, 123, 111, 110, 111, 100, 154,136, 100, 118, 119, 133, 134, 106, 129, 126, 110, 111, 109, 141,120, 117, 106, 149, 122, 122, 110, 118, 127, 121, 114, 125, 126,114, 140, 103, 130, 141, 117, 106, 114, 121, 114, 133, 137, 92,121, 112, 146, 97, 137, 105, 98, 117, 112, 81, 97, 139, 113,134, 106, 144, 110, 137, 137, 111, 104, 117, 100, 111, 101, 110,105, 129, 137, 112, 120, 113, 133, 112, 83, 94, 146, 133, 101,131, 116, 111, 84, 137, 115, 122, 106, 144, 109, 123, 116, 111,111, 133, 150] # 定義一個間隔大小 a = 2 # 得出組數 bins = int((max(time) - min(time)) / a) # 畫出直方圖 plt.hist(time, bins, normed=1) # 指定刻度的範圍,以及步長 plt.xticks(list(range(min(time), max(time)))[::2]) plt.xlabel("電影時長大小") plt.ylabel("電影的數據量") plt.show() 

電影時長分佈無網格

三、增長網格顯示

爲了更好將圖形對應到

plt.grid(True, linestyle='--', alpha=0.5) 

3、直方圖的場景

  • 用於表示分佈狀況
  • 經過直方圖還能夠觀察和估計哪些數據比較集中,異常或者孤立的數據分佈在何處

例如:用戶年齡分佈,商品價格分佈

4、直方圖與其餘圖表的對比

  • 柱狀圖是以矩形的長度表示每一組的頻數或數量,其寬度(表示類別)則是固定的,利於較小的數據集分析。
  • 直方圖是以矩形的長度表示每一組的頻數或數量,寬度則表示各組的組距,所以其高度與寬度均有意義,利於展現大量數據集的統計結果。
  • 因爲分組數據具備連續性,直方圖的各矩形一般是連續排列,而柱狀圖則是分開排列。

 

餅圖

學習目標

  • 目標
    • 應用hist實現直方圖的繪製
    • 知道直方圖圖的應用場景
  • 應用
    • 電影時長分佈

1、餅圖(Pie)介紹

餅圖普遍得應用在各個領域,用於表示不一樣分類的佔比狀況,經過弧度大小來對比各類分類。餅圖經過將一個圓餅按照分類的佔比劃分紅多個區塊,整個圓餅表明數據的總量,每一個區塊(圓弧)表示該分類佔整體的比例大小,全部區塊(圓弧)的加和等於 100%。

餅圖

2、餅圖繪製

一、若是須要顯示不一樣的電影的排片佔比

1.1電影排片:

電影排片

1.2數據:

movie_name = ['雷神3:諸神黃昏','正義聯盟','東方快車謀殺案','尋夢環遊記','全球風暴','降魔傳','追捕','七十七天','密戰','狂獸','其它']

place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105]

1.3效果

電影排片佔比顯示

三、分析

  • 注意顯示的百分比的位數
  • plt.pie(x, labels=,autopct=,colors)
    • x:數量,自動算百分比
    • labels:每部分名稱
    • autopct:佔比顯示指定%1.2f%%
    • colors:每部分顏色

代碼

# 展示每部電影的排片的佔比 plt.figure(figsize=(20, 8), dpi=100) # 準備每部電影的名字,電影的排片場次 movie_name = ['雷神3:諸神黃昏','正義聯盟','東方快車謀殺案','尋夢環遊記','全球風暴','降魔傳','追捕','七十七天','密戰','狂獸','其它'] place_count = [60605,54546,45819,28243,13270,9945,7679,6799,6101,4621,20105] # 經過pie plt.pie(place_count, labels=movie_name, autopct='%1.2f%%', colors=['b','r','g','y','c','m','y','k','c','g','g']) # 指定顯示的pie是正圓 plt.axis('equal') plt.legend(loc='best') plt.title("排片佔比示意圖") plt.show() 

排片佔比

四、添加axis

爲了讓顯示的餅圖保持圓形,須要添加axis保證長寬同樣

plt.axis('equal') 

3、餅圖應用場景

  • 分類的佔比狀況(不超過9個分類)

例如:班級男女分佈佔比,公司銷售額佔比

 

 

 

其它功能

學習目標

  • 目標
    • 知道annotate或者text添加圖的註釋
    • 知道animation實現動畫的建立
  • 應用

1、使用annotate和text添加圖的註釋

fig, ax = plt.subplots(nrows=1, ncols=1, dpi=80) # 使用splines以及設置顏色,將上方和右方的座標去除 ax.spines['right'].set_color('none') ax.spines['top'].set_color('none') # 將刻度設置爲空,去除刻度 plt.xticks([]) plt.yticks([]) # x,y數據 data = np.ones(100) data[70:] = list(range(1, 31)) print(data) # 使用annptate添加註釋 plt.annotate( '這是一個拐點', xy=(70, 1), # 箭頭指向位置 arrowprops=dict(arrowstyle='->'),#自定義箭頭樣式 xytext=(50, 10))# 文本位置 plt.plot(data) plt.xlabel('1') plt.ylabel('2') ax.text( 30, 2,# 文本位置 '這是一段文本') 

效果:

圖形添加文本

2、使用animation實現動畫

import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation fig, ax = plt.subplots() # 設置x,y數據,顯示到圖形當中 x = np.arange(0, 2*np.pi, 0.01) line, = ax.plot(x, np.sin(x)) def init(): """ 初始設置 """ line.set_ydata([np.nan] * len(x)) return line, def animate(i): """ 更新座標點函數 """ line.set_ydata(np.sin(x + i / 100)) return line, ani = animation.FuncAnimation( fig, animate, init_func=init, interval=2, blit=True, save_count=50) plt.show() 

3、更多畫圖功能

請參考:https://matplotlib.org/tutorials/index.html

相關文章
相關標籤/搜索