日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

msdn画圆弧函数_画直线不简单!python-matplotlib告诉你为什么

發布時間:2023/12/4 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 msdn画圆弧函数_画直线不简单!python-matplotlib告诉你为什么 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 說明:

======

1.1 python的matplotlib畫直線,看似簡單,其實很難,從簡單到復雜,逐步深入,小白秒懂。

1.2 內容:畫直線,畫圓,畫圓點,動畫的單擺和圓套圓,好東西在后面,值得收藏。

1.3 環境:

python3.8+matplotlib3.2.0

2 靜態畫直線:

=======

2.1 line-1.py

import matplotlib.pyplot as pltimport numpy as npx = np.linspace(-3,3,100)y = 2*xplt.plot(x, y, '-r', label='y=2x')plt.show()

2.2 圖1

2.2 line2.py

import matplotlib.pyplot as pltimport numpy as np#坐標點為0,0x = np.linspace(0,3,100)y = xplt.plot(x, y, '-r', label='y=x')#顯示x和y坐標軸刻度起點和終點plt.xlim(-4, 4)plt.ylim(-4, 4)plt.show()

2.3 圖2:

2.4 復雜一些,加入畫圓、畫直線和畫圓點,代碼如下:

#第1步:導入模塊import matplotlib.pyplot as pltimport numpy as np#第2步:畫圓#定義圓的半徑r=3.0#角度theta = np.arange(0, 2*np.pi, 0.01)#圓的圓弧線的x和y坐標x = r * np.cos(theta)y = r * np.sin(theta)#畫圓的圓弧線,因為直線很小,所以就是圓的圓弧看起來很平滑plt.plot(x, y)#第3步:畫直線#畫直線的坐標點為0,0x1 = np.linspace(0,3,100)y1 = x1#畫直線plt.plot(x1, y1, '-r')#補充:畫原點==圓點plt.scatter(0, 0, marker="o",c='r')#第4步:相關設置#顯示x和y坐標軸刻度起點和終點plt.xlim(-4, 4)plt.ylim(-4, 4)plt.title('Graph of circle、line & scatter')plt.grid()plt.axis('equal')plt.show()

2.5 圖3:

3 動態直線:

========

3.1 圓和單擺,代碼:

#第1步:導入模塊import numpy as npfrom scipy.integrate import odeintimport matplotlib.pyplot as pltimport matplotlib.animation as animation#第2步:初始化畫布和ax定義#注意動畫需要這個,靜態圖片可以省略,采用默認fig, ax = plt.subplots()ax.grid() #顯示網格#第3步:畫圓#定義圓的半徑r=3.0#角度theta = np.arange(0, 2*np.pi, 0.01)#圓的圓弧線的x和y坐標x = r * np.cos(theta)y = r * np.sin(theta)#畫圓的圓弧線plt.plot(x, y)#第4步:單擺設置g = 9.8 #重力 #無阻力函數定義def pendulumno(w, t, l): th, v = w dth = v dv = - g/l * np.sin(th) return dth, dv #20==20秒t = np.arange(0, 20, 0.1)#調用scipy的一個函數odeinttrack = odeint(pendulumno, (1.0, 0), t, args=(r,))xdata = [r*np.sin(track[i, 0]) for i in range(len(track))]ydata = [-r*np.cos(track[i, 0]) for i in range(len(track))]#畫單擺線line, = ax.plot([], [], 'o-', lw=2)#初始化函數def init(): ax.set_xlim(-4, 4) ax.set_ylim(-4, 4) return line,#刷新函數def update(i): #提示0,0為直線的圓點坐標是不變的 newx = [0, xdata[i]] newy = [0, ydata[i]] line.set_data(newx, newy) return line,#第5步:相關設置plt.title('Graph of circle & pendulumno')plt.axis('equal')ani = animation.FuncAnimation(fig, update, range(1, len(xdata)), init_func=init, interval=50)plt.show()

3.2 效果圖:

4 圓和可轉動的半徑:

===============

4.1 代碼:

#第1步:導入模塊import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animation#第2步:初始化畫布和ax定義#注意動畫需要這個,靜態圖片可以省略,采用默認fig, ax = plt.subplots()ax.grid() #顯示網格#第3步:畫圓#定義圓的半徑r=3.0#角度theta = np.arange(0, 2*np.pi, 0.01)#圓的圓弧線的x和y坐標x = r * np.cos(theta)y = r * np.sin(theta)#畫圓的圓弧線plt.plot(x, y)#第4步:單擺設置#半徑直線數據xdata = [r*np.sin(theta[i]) for i in range(len(theta))]ydata = [r*np.cos(theta[i]) for i in range(len(theta))]#畫半徑直線line, = ax.plot([], [], 'o-', lw=2)#初始化函數def init(): ax.set_xlim(-4, 4) ax.set_ylim(-4, 4) return line,#刷新函數def update(i): #提示0,0為直線的圓點坐標是不變的 newx = [0, xdata[i]] newy = [0, ydata[i]] line.set_data(newx, newy) return line,#第5步:相關設置plt.title('Graph of circle & radius')plt.axis('equal')ani = animation.FuncAnimation(fig, update, range(1, len(xdata)), init_func=init, interval=10)plt.show()

4.2 效果圖:

===再復雜一些===

5 加入sin和cos:

============

5.1 代碼:

#第1步:導入模塊import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animation#第2步:初始化畫布和ax定義#注意動畫需要這個,靜態圖片可以省略,采用默認fig, ax = plt.subplots()ax.grid() #顯示網格#第3步:畫圓#定義圓的半徑r=3.0#角度theta = np.arange(0, 2*np.pi, 0.01)#圓的圓弧線的x和y坐標#水平向左移動4個單位x = -4+r * np.cos(theta)y = r * np.sin(theta)#畫圓的圓弧線plt.plot(x, y)#第4步:畫線設置#半徑直線數據xdata = [-4+r*np.sin(theta[i]) for i in range(len(theta))]ydata = [r*np.cos(theta[i]) for i in range(len(theta))]#畫半徑直線line, = ax.plot([], [], 'o-', lw=2)#sin波動線linesin, = ax.plot([], [], lw=2)#cos波動線linecos, = ax.plot([], [], lw=2)#初始化函數def init(): ax.set_xlim(-4, 4) ax.set_ylim(-4, 4) #sin和cos線 linesin.set_data([], []) linecos.set_data([], []) return line,linesin,linecos, #刷新函數def update(i): #提示0,0為直線的圓點坐標是不變的 newx = [-4, xdata[i]] newy = [0, ydata[i]] line.set_data(newx, newy) #+1就是水平向右移動1個單位 sinx = 1+np.linspace(0, 4, 1000) siny = 2+np.sin(2 * np.pi * (sinx - 0.01 * i)) linesin.set_data(sinx, siny) #+1就是水平向右移動1個單位 cosx = 1+np.linspace(0, 4, 1000) cosy = -2+np.cos(2 * np.pi * (cosx - 0.01 * i)) linecos.set_data(cosx, cosy) return line,linesin,linecos,#第5步:相關設置plt.title('Graph of circle、radius、sin & cos')plt.axis('equal')ani = animation.FuncAnimation(fig, update, range(1, len(xdata)), init_func=init, interval=10)plt.show()

5.2 效果圖:

再畫直線怎么辦?

6 再復雜些:

========

6.1 代碼:

#第1步:導入模塊import numpy as npimport matplotlib.pyplot as pltimport matplotlib.animation as animation#第2步:初始化畫布和ax定義#注意動畫需要這個,靜態圖片可以省略,采用默認fig, ax = plt.subplots()ax.grid() #顯示網格#第3步:畫圓#定義圓的半徑r=3.0#角度,0.01越小,速度越慢theta = np.arange(0, 2*np.pi, 0.01)#圓的圓弧線的x和y坐標#水平向左移動4個單位x = -4+r * np.cos(theta)y = r * np.sin(theta)#畫圓的圓弧線plt.plot(x, y)#第4步:直線設置#半徑直線數據xdata = [-4+r*np.sin(theta[i]) for i in range(len(theta))]ydata = [r*np.cos(theta[i]) for i in range(len(theta))]#畫半徑直線line, = ax.plot([], [], 'o-', lw=2)#sin波動線linesin, = ax.plot([], [], lw=2,label='sin')#cos波動線linecos, = ax.plot([], [], lw=2,label='cos')#連接sin和cos的線linesinl, = ax.plot([], [], 'o-', lw=2,label='sinline')linecosl, = ax.plot([], [], 'o-', lw=2,label='cosline')#水平線==lineshui==xs和ysxs = np.linspace(-6,6,100)ys =[0]*len(xs)plt.plot(xs, ys, '-b', label='lineshui')#垂直線==linechui==xc和ycyc = np.linspace(-4,4,100)xc =[0]*len(yc)plt.plot(xc, yc, '-y', label='linechui')#初始化函數def init(): ax.set_xlim(-4, 4) ax.set_ylim(-4, 4) #sin和cos的動態波動線 linesin.set_data([], []) linecos.set_data([], []) #sin和cos的連接線 linesinl.set_data([], []) linecosl.set_data([], []) return line,linesin,linecos, linesinl,linecosl,#刷新函數def update(i): #提示-4,0為直線的圓點坐標是不變的 newx = [-4, xdata[i]] newy = [0, ydata[i]] #圓的半徑直線 line.set_data(newx, newy) #+1就是水平向右移動1個單位 sinx = 1+np.linspace(0, 4, 1000) siny = 2+np.sin(2 * np.pi * (sinx - 0.01 * i)) #sin波動線 linesin.set_data(sinx, siny) #+1就是水平向右移動1個單位 cosx = 1+np.linspace(0, 4, 1000) cosy = -2+np.cos(2 * np.pi * (cosx - 0.01 * i)) #cos波動線 linecos.set_data(cosx, cosy) newxsinl=[1,xdata[i]] newysinl=[siny[i],ydata[i]] #sin連接線,bug linesinl.set_data(newxsinl,newysinl) newxcosl=[1,xdata[i]] newycosl=[cosy[i],ydata[i]] #cos連接線,bug linecosl.set_data(newxcosl,newycosl) return line,linesin,linecos,linesinl,linecosl,#第5步:相關設置plt.title('Graph of circle、radius、sin & cos')plt.axis('equal')ani = animation.FuncAnimation(fig, update, range(1, len(xdata)), init_func=init, interval=10)plt.legend(loc='upper right')plt.show()

6.2 效果圖:

小bug,留下,可以試試如何改進

總結

以上是生活随笔為你收集整理的msdn画圆弧函数_画直线不简单!python-matplotlib告诉你为什么的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩视频在线观看一区二区 | 色婷婷伊人 | 极品美女开粉嫩精品 | 欧美偷拍第一页 | 波多野吉衣一区 | 天天干天天爽天天操 | 天天天av | 日韩欧美成人网 | 男生裸体视频 | 性生交生活片1 | 精品视频成人 | 成人不卡 | 日本韩国欧美 | 国产女人高潮毛片 | 高潮无码精品色欲av午夜福利 | 中文字幕手机在线视频 | 动漫av网站 | 精品人妻在线播放 | 欧美日韩免费高清 | 国产无限制自拍 | 伊人中文字幕 | 国产麻豆电影在线观看 | 亚洲欧美日本在线 | 午夜国产在线视频 | 国产xxx| 国产成人啪精品午夜在线观看 | av网站在线免费观看 | 亚洲熟妇无码一区二区三区导航 | 自拍偷拍色综合 | 国产在线黄| 少妇特殊按摩高潮惨叫无码 | 国产卡一卡二卡三 | 亚洲精品久久久久久 | 亚洲av综合色区无码一区爱av | 亚洲成人毛片 | 四虎黄色网 | 日韩精品一区二区三区视频 | 五月伊人网 | 国产精品自拍片 | com国产| 米奇7777狠狠狠狠视频 | 国产精品久久一区二区三区 | 动漫涩涩免费网站在线看 | 午夜三级在线观看 | 欧美激情3p| 天天爽天天摸 | 欧美最猛黑人xxxx | 老太脱裤让老头玩ⅹxxxx | 精品久久久久久久久久久久久久久久久久 | 91国产在线免费观看 | 国产黄色网络 | 琪琪午夜伦理影院7777 | 亚洲精品国产成人久久av盗摄 | 亚洲天堂av一区二区三区 | 红桃视频成人在线 | 91娇羞白丝网站 | 亚洲老妇色熟女老太 | 亚洲特黄视频 | 日韩精品资源 | www国产在线观看 | 潘金莲一级淫片aaaaa武则天 | 二区三区偷拍浴室洗澡视频 | 日韩在线观看免费网站 | av猫咪 | 青娱乐av| 午夜写真片福利电影网 | 女女h百合无遮羞羞漫画软件 | 久久精品视频免费播放 | 三级三级久久三级久久 | 无码人妻aⅴ一区二区三区有奶水 | 久久噜噜噜精品国产亚洲综合 | 国产美女作爱视频 | 亚洲av无码乱码国产精品 | 波多野结衣电影在线播放 | 拔插拔插海外华人免费视频 | 国产野外作爱视频播放 | 在线观看波多野结衣 | 国产蜜臀av一区二区 | av影视天堂| av毛片大全 | 色宗合 | 国产精品黑丝 | 黑人巨大猛交丰满少妇 | 日本爱爱免费视频 | 中文字幕一区二区三区久久久 | 欧美一级爱爱视频 | 西西人体做爰大胆gogo直播 | 亚洲一区二区三区中文字幕 | 粗大的内捧猛烈进出 | 91精品91久久久中77777 | 在线免费观看亚洲视频 | 91精品国自产在线偷拍蜜桃 | 亚洲视频在线观看一区二区 | 夜夜夜夜夜操 | 成人福利午夜 | 欧美精品在线观看 | 91丨九色丨丰满 | av电影在线观看不卡 | 白嫩日本少妇做爰 |