<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
資料視覺化有助於更有效地講述有關資料的故事並使其易於呈現。有時很難用靜態圖表來解釋資料的變化,為此,我們將討論matplotlib提供的名為“Animation”的動畫庫之一。以下是要涵蓋的主題。
最流行的Python二維繪相簿是Matplolib。大多數人從Matplotlib開始他們的探索性資料分析之旅。它可以輕鬆建立繪圖、直方圖、條形圖、散點圖等。與Pandas和Seaborn一樣,它可以建立更復雜的視覺效果。
但是也有一些缺陷:
Matplotlib的命令式 API,通常過於冗長。
有時糟糕的風格預設值。
對網路和互動式圖表的支援不佳。
對於大型和複雜的資料通常很慢。
參考程式碼如下
import matplotlib.animation as anime import matplotlib.pyplot as plt import numpy as np import pandas as pd fig = plt.figure() l, = plt.plot([], [], 'k-') l2, = plt.plot([], [], 'm--') p1, = plt.plot([], [], 'ko') p2, = plt.plot([], [], 'mo') plt.xlabel('xlabel') plt.ylabel('ylabel') plt.title('title') plt.xlim(-5, 5) plt.ylim(-5, 5) def func(x): return np.sin(x) * 3 def func2(x): return np.cos(x) * 3 metadata = dict(title="Movie", artist="sourabh") writer = anime.PillowWriter(fps=15, metadata=metadata) xlist = [] ylist = [] ylist2 = [] xlist2 = [] with writer.saving(fig, "sin+cosinewave.gif", 100): for xval in np.linspace(-5, 5, 100): xlist.append(xval) ylist.append(func(xval)) l.set_data(xlist, ylist) l2.set_data(xlist2, ylist2) p1.set_data(xval, func(xval)) writer.grab_frame() for xval in np.linspace(-5, 5, 100): xlist2.append(xval) ylist2.append(func2(xval)) l.set_data(xlist, ylist) l2.set_data(xlist2, ylist2) p2.set_data(xval, func2(xval)) writer.grab_frame()
動畫效果圖如下。
參考程式碼如下,這段程式碼會執行一段時間。
import matplotlib from matplotlib import cm import matplotlib.animation as anime import matplotlib.pyplot as plt import numpy as np import pandas as pd np.random.seed(29680801) fig, ax = plt.subplots(subplot_kw=dict(projection='3d')) plt.xlim(-5, 5) plt.ylim(-5, 5) metadata = dict(title="Movie", artist="sourabh") writer = anime.PillowWriter(fps=15, metadata=metadata) def func(x, y, r, t): return np.cos(r / 2 + t) * np.exp(-np.square(r) / 50) xdata = np.linspace(-10, 10, 1000) ydata = np.linspace(-10, 10, 1000) x_list, y_list = np.meshgrid(xdata, ydata) r_list = np.sqrt(np.square(x_list) + np.square(y_list)) with writer.saving(fig, "exp3d.gif", 100): for t in np.linspace(0, 20, 160): z = func(x_list, y_list, r_list, t) ax.set_zlim(-1, 1) ax.plot_surface(x_list, y_list, z, cmap=cm.viridis) writer.grab_frame() plt.cla()
動畫效果如下
參考程式碼如下
import matplotlib from matplotlib import cm import matplotlib.animation as anime import matplotlib.pyplot as plt import numpy as np import pandas as pd np.random.seed(23680545) metadata = dict(title="Movie", artist="sourabh") writer = anime.PillowWriter(fps=15, metadata=metadata) fig = plt.figure() plt.xlim(-8, 8) plt.ylim(-8, 8) def func(x): return x * 1.2 + 0.1 + np.random.normal(0, 2, x.shape) x = np.random.uniform(-7, 7, 10) x = np.sort(x) y = func(x) coeff = np.polyfit(x, y, 1) print(coeff) xline = np.linspace(-6, 6, 40) yline = np.polyval(coeff, xline) lPnt, = plt.plot(x, y, 'o') l, = plt.plot(xline, yline, 'k-', linewidth=3) plt.show() fig = plt.figure() plt.xlim(-10, 10) plt.ylim(-10, 10) lPnt, = plt.plot([], [], 'o') l, = plt.plot([], [], 'k-', linewidth=3) x_List = [] y_List = [] x_pnt = [] y_pnt = [] with writer.saving(fig, "fitPlot.gif", 100): for xval, yval in zip(x, y): x_pnt.append(xval) y_pnt.append(yval) lPnt.set_data(x_pnt, y_pnt) l.set_data(x_List, y_List) writer.grab_frame() writer.grab_frame() for x_val, y_val in zip(xline, xline): x_List.append(x_val) y_List.append(y_val) lPnt.set_data(x_pnt, y_pnt) l.set_data(x_List, y_List) writer.grab_frame() for i in range(10): writer.grab_frame()
效果圖如下
到此這篇關於使用matplotlib建立Gif動圖的實現的文章就介紹到這了,更多相關matplotlib建立Gif動圖內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45