首頁>技術>

1 Celluloid庫

==========

1.1 Celluloid庫來簡化Matplotlib中的動畫。

1.2 透過建立一個攝像頭來實現,該攝像頭的目標是在每次圖形的某個引數發生變化時拍攝該圖形的快照。

1.3 Python-celluloid用於建立擁有動畫效果的Matplotlib圖表,國內介紹比較少。

2 準備

====

2.1 安裝

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple celluloid#本機安裝sudo pip3.8 install -i https://pypi.tuna.tsinghua.edu.cn/simple celluloid

2.2 環境:python3.8+matplotlib3.3.2。

2.3 Python-matplotlib-celluloid的相關知識。

3 效果圖

4 程式碼講解:

=========

4.1 第一步:匯入模組

from matplotlib import pyplot as pltfrom celluloid import Camera

4.2 第二步:字型設定,可要可不要(#解決負號-i後出現8722問題)

#plt.rcParams['font.sans-serif']=['SimHei']#顯示中文標籤# 本機預設DejaVu Sansplt.rcParams['font.sans-serif']=['DejaVu Sans']plt.rcParams['axes.unicode_minus']=False

4.3 第三步:定義畫布和放入攝像頭內

#定義畫布fig = plt.figure()#個人愛好,背景顏色為黑色#畫布外的背景顏色設定fig.patch.set_facecolor('black')#定義畫布的背景顏色設定ax=fig.gca()ax.set_facecolor("black")#將畫布放入攝像頭內camera = Camera(fig)

4.4 第四步:x和y座標軸與直線關係,直線選擇樣式

#取值範圍#12是y的取值for i in range(12):    #畫直線    #x的取值    #預設直線    #plt.plot([i] * 12)    #樣式:"-o" #實線;"--o" #虛線;"-.o" #虛點線;":o" # 點線    #隨機顏色    #plt.plot([i] * 12,"--o")    #指定顏色    #plt.plot([i] * 12,"--o",color="green")        #plt.plot([i] * 12,"--o",markersize=20)        #垂直從左向右滾動    #y=[0,1,2,3,4,5,6,7,8,9,10,11]    #同上    y=[11,10,9,8,7,6,5,4,3,2,1,0]        #x=[i] * 12    #垂直從右向左滾動    x=[-i] * 12    #改-號報錯    #untimeWarning: Glyph 8722 missing from current font.    #font.set_text(s, 0.0, flags=flags)    plt.plot(x,y,"--o",markersize=20)    #攝像頭快照    camera.snap()

4.5 第五步:結尾

#動畫掛起animation = camera.animate()#動畫儲存#animation.save('line.gif')#展示plt.show()

5 簡潔版

======

5.1 效果圖:從下往上運動。

5.2 完整簡潔程式碼

#匯入模組from matplotlib import pyplot as pltfrom celluloid import Camera#定義畫布fig = plt.figure()#畫布外的背景顏色設定fig.patch.set_facecolor('black')#定義畫布的背景顏色設定ax=fig.gca()ax.set_facecolor("black")#將畫布放入攝像頭內camera = Camera(fig)#取值範圍#12是y的取值for i in range(12):    plt.plot([i] * 12,"--o",markersize=20)    #攝像頭快照    camera.snap()#動畫掛起animation = camera.animate()#展示plt.show()

未完待續。

24
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 如何實現Velocity模板引擎與Struts 框架相互整合