最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用python動態(tài)生成波形曲線的實現(xiàn)

 更新時間:2019年12月04日 11:03:06   作者:Y_Jwei  
今天小編就為大家分享一篇使用python動態(tài)生成波形曲線的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

效果是這個樣子的:

用到的模塊:

* matplotlib.pyplot
* matplotlib.animation.FuncAnimation
* numpy

三個圓的半徑分別為:5, 2, 1。

三個點旋轉(zhuǎn)的角頻率分別為:1, 3, 5。

生成固定的圓——基礎(chǔ)圓

xdata = np.linspace(0, 2 * np.pi, 50)
fig, ax = plt.subplots(1, 1, figsize=(8, 5))
b_cir = ax.plot(5 * np.cos(xdata), 5 * np.sin(xdata))

# 配置下畫布
ax.spines['bottom'].set_visible(False)  # 清除下脊
ax.spines['top'].set_visible(False)    # 清除上脊
ax.spines['left'].set_visible(False)   # 清除左脊
ax.spines['right'].set_visible(False)   # 清除右脊
# 取消刻度和數(shù)字標(biāo)簽
ax.tick_params(bottom='off', left='off', labelbottom='off', labelleft='off')

生成第1個移動點

  根據(jù)圓上點的坐標(biāo)公式,更新點的位置:

x = r * cos(w * t) + a 
y = r * sin(w * t) + b

def update(frame):
  movX1 = 5 * np.cos(frame * 1)
  movY1 = 5 * np.sin(frame * 1)
  movp1.set_data(movX1, movY1)  # 更新移動點數(shù)據(jù)
  return movp1,   # 還是得有','
ani = FuncAnimation(fig, update, frames=xdata, blit=True)

生成第1個移動圓

  根據(jù)坐標(biāo)系中任意位置上圓的公式,計算移動的圓。

c_sub1, = ax.plot([], [], animated=True)
# 修改 update 函數(shù)生成在基礎(chǔ)圓上移動的圓
def update(frame):
  # 計算移動點
  # 計算移動圓
  c_sub1X = 2 * np.cos(xdata) + movX1
  c_sub1Y = 2 * np.sin(xdata) + movY1
  # 更新移動點數(shù)據(jù)
  c_sub1.set_data(c_sub1X, c_sub1Y)
  return movp1, c_sub1,

生成第2個移動點和移動圓

   生成的方式和前面的類似

movp2, = ax.plot([], [], 'ro', animated=True)
c_sub2, = ax.plot([], [], animated=True)
def update(frame):
# 計算第1個移動點和圓
# 計算第2個移動點和圓
movX2 = movX1 + 2 * np.cos(frame * 3)
movY2 = movY1 + 2 * np.sin(frame * 3)
c_sub2X = 1 * np.cos(xdata) + movX2
c_sub2Y = 1 * np.sin(xdata) + movY2

# 更新第1個移動點和圓
# 更新第2個移動點和圓
movp2.set_data(movX2, movY2)
c_sub2.set_data(c_sub2X, c_sub2Y)
return movp1, c_sub1, movp2, c_sub2,

生成波形曲線

  生成的波形曲線,其實就是3個圓生成的正弦曲線的疊加值:

sineTotal = sine1 + sine2 + sine3

sine, = ax.plot(xdata + 10, np.zeros(50))
def update(frame):
# 計算第1個移動點和圓
# 計算第2個移動點和圓
# 計算波形曲線的 y 值
s = 5 * np.sin((xdata+frame) * 1) + \
  2 * np.sin((xdata+frame) * 3) + \
  1 * np.sin((xdata+frame) * 5)

# 更新第1個移動點和圓
# 更新第2個移動點和圓
# 更新波形曲線
sine.set_ydata(s)
return movp1, c_sub1, movp2, c_sub2, sine,

加條直線指示下

  直線就是,第3個移動圓上的移動點與波形末端的連線。

movp3, = ax.plot([], [], 'ro', animated=True) # 添加第3個圓上的移動點
ln, = ax.plot([], [], animated=True)
def update(frame):
# 計算第1個移動點和圓
# 計算第2個移動點和圓
# 計算波形曲線的 y 值
# 計算第3個移動點
movX3 = movX2 + 1 * np.cos(frame * 5)
movY3 = movY2 + 1 * np.sin(frame * 5)

# 更新第1個移動點和圓
# 更新第2個移動點和圓
# 更新波形曲線
ln.set_data([movX3, 10 + 2 * np.pi], [movY3, movY3])
return movp1, c_sub1, movp2, c_sub2, sine, movp3, ln

保存 gif 動圖

ani.save("multiSin.gif", writer='imagemagick', fps=200, dpi=50)

  這里用到“imagemagick”來進行動圖的保存。但在使用前需要配置些內(nèi)容:

1. 安裝 imagemagick,下載地址是:http://www.imagemagick.org/script/download.php;

2. 修改matplotlibrc文件進行配置,可通過下面語句查看文件存放路徑:

import matplotlib
matplotlib.matplotlib_fname()

  在文件末尾取消“animation.convert_path”的注釋;

3. 修改__init__.py文件,打開文件后查找rcParams(),在下一行添加:

rcParams['animation.convert_path'] = '[imagemagick的安裝路徑]\\ImageMagick-7.0.8-Q16\\magick.exe'

在以前的imagemagick版本,有個文件是convert.exe,新版本這個文件取消了,功能整合到“magick.exe”中了。

修改完成后就可以使用上面的語句生成gif動圖了。

以上這篇使用python動態(tài)生成波形曲線的實現(xiàn)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 利用Python+Opencv實現(xiàn)車牌自動識別完整代碼

    利用Python+Opencv實現(xiàn)車牌自動識別完整代碼

    這篇文章主要介紹了如何使用Python和OpenCV進行車牌識別,包括圖像預(yù)處理、車牌定位、分割和模板匹配等步驟,通過實戰(zhàn)項目,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • Python中判斷輸入是否為數(shù)字的實現(xiàn)代碼

    Python中判斷輸入是否為數(shù)字的實現(xiàn)代碼

    這篇文章主要介紹了Python中判斷輸入是否為數(shù)字的實現(xiàn)代碼,需要的朋友可以參考下
    2018-05-05
  • Pygame中Sprite的使用方法示例詳解

    Pygame中Sprite的使用方法示例詳解

    這篇文章主要介紹了Pygame中Sprite的使用方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Django外鍵(ForeignKey)操作以及related_name的作用詳解

    Django外鍵(ForeignKey)操作以及related_name的作用詳解

    這篇文章主要介紹了Django外鍵(ForeignKey)操作以及related_name的作用詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Vscode使用matplotlib顯示圖像詳細圖文教程

    Vscode使用matplotlib顯示圖像詳細圖文教程

    最近使用python里的matplotlib庫繪圖,想在代碼結(jié)束時顯示圖片看看,下面這篇文章主要給大家介紹了關(guān)于Vscode使用matplotlib顯示圖像的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • Python操作Excel的學(xué)習(xí)筆記

    Python操作Excel的學(xué)習(xí)筆記

    這篇文章主要介紹了Python操作Excel的學(xué)習(xí)筆記,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Jupyter Notebook運行代碼無反應(yīng)問題及解決方法

    Jupyter Notebook運行代碼無反應(yīng)問題及解決方法

    這篇文章主要介紹了Jupyter Notebook運行代碼無反應(yīng)問題及解決方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Django框架模型簡單介紹與使用分析

    Django框架模型簡單介紹與使用分析

    這篇文章主要介紹了Django框架模型簡單介紹與使用,結(jié)合實例形式分析了Django框架中模型的概念、原理、使用技巧與相關(guān)操作注意事項,需要的朋友可以參考下
    2019-07-07
  • python利用pandas分析學(xué)生期末成績實例代碼

    python利用pandas分析學(xué)生期末成績實例代碼

    pandas是數(shù)據(jù)分析師最常用的工具之一,這篇文章主要給大家介紹了關(guān)于python如何利用pandas分析學(xué)生期末成績的相關(guān)資料,文中給出了詳細的實現(xiàn)方法,需要的朋友可以參考下
    2021-07-07
  • Python中pow()和math.pow()函數(shù)用法示例

    Python中pow()和math.pow()函數(shù)用法示例

    這篇文章主要介紹了Python中pow()和math.pow()函數(shù)用法,結(jié)合具體實例形式分析了Python使用pow()和math.pow()函數(shù)進行冪運算的相關(guān)操作技巧,需要的朋友可以參考下
    2018-02-02

最新評論

洪泽县| 新晃| 本溪| 长汀县| 厦门市| 武威市| 阳春市| 连南| 岚皋县| 景德镇市| 高州市| 子长县| 广河县| 句容市| 吉水县| 峡江县| 类乌齐县| 建阳市| 龙泉市| 长垣县| 枣阳市| 湖南省| 渝北区| 招远市| 湄潭县| 石门县| 伊金霍洛旗| 镇坪县| 逊克县| 临泽县| 密云县| 若尔盖县| 九龙县| 梨树县| 拉孜县| 济宁市| 方山县| 乌什县| 乐陵市| 淮南市| 额尔古纳市|