首页 > 其他分享 >matplotlib绘制拟合大象曲线

matplotlib绘制拟合大象曲线

时间:2024-07-10 11:44:26浏览次数:19  
标签:reshape self matplotlib matmul 大象 拟合 np array 101

通过十个参数绘制大象曲线

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.animation as animation

num=101
k=np.arange(1,6)
t=np.linspace(0,2*np.pi,num)

Ax=[0,0,12,0,-14]
Bx=[50,18,0,0,0]

Ay=[-60,0,0,0,0]
By=[-30,8,-10,0,0]

eye=20

x=(np.matmul(np.array(Ax).reshape(1,5),np.cos(k.reshape(5,1)*t.reshape(1,101)))+np.matmul(np.array(Bx).reshape(1,5),np.sin(k.reshape(5,1)*t.reshape(1,101)))).reshape((101,))
y=(np.matmul(np.array(Ay).reshape(1,5),np.cos(k.reshape(5,1)*t.reshape(1,101)))+np.matmul(np.array(By).reshape(1,5),np.sin(k.reshape(5,1)*t.reshape(1,101)))).reshape((101,))

plt.plot(y,-x,eye,eye,'o')
plt.show()

让大象的鼻子动起来

num=101
k=np.arange(1,6)
t=np.linspace(0,2*np.pi,num)

Ax=[-60,0,0,0,0]
Bx=[-30,8,-10,0,0]

Ay=[0,0,-12,0,14]
By=[-50,-18,0,0,0]

eye=20
wigg=40

x=(np.matmul(np.array(Ax).reshape(1,5),np.cos(k.reshape(5,1)*t.reshape(1,101)))+np.matmul(np.array(Bx).reshape(1,5),np.sin(k.reshape(5,1)*t.reshape(1,101)))).reshape((101,))
y=(np.matmul(np.array(Ay).reshape(1,5),np.cos(k.reshape(5,1)*t.reshape(1,101)))+np.matmul(np.array(By).reshape(1,5),np.sin(k.reshape(5,1)*t.reshape(1,101)))).reshape((101,))

A=20
nose=np.where(x>wigg)
nose_m=np.where(x>=np.max(x))

class Scope:
	def __init__(self,ax):
		self.ax=ax
		self.move_num=100
		self.i=0

	def paint(self,j):
		if self.i==self.move_num:
			self.i=0
		y0=np.zeros((101,))
		# import pdb;pdb.set_trace()
		y0[nose]=A*np.sin(2*np.pi*self.i/self.move_num)*np.exp(-np.power((nose[0]-nose_m[0]),2)/40)
		self.ax.cla()
		self.ax.plot(x,y+y0,eye,eye,'o')
		self.i+=1

fig,ax=plt.subplots()
scope=Scope(ax)
ani=animation.FuncAnimation(fig,scope.paint,interval=100)
plt.show()

参考链接:

使用matplotlib的动画模块快速更新曲线

在Python MatPlotLib中使用动画时,如何更改绘制曲线的颜色?

如何用四个参数画一头大象?

创建于2407101112,修改于2407101112

标签:reshape,self,matplotlib,matmul,大象,拟合,np,array,101
From: https://www.cnblogs.com/tellw/p/18293700

相关文章

  • Python实战训练(方程与拟合曲线)
    1.方程求e^x-派(3.14)的解用二分法来求解,先简单算出解所在的区间,然后用迭代法求逼近解,一般不能得到精准的解,所以设置一个能满足自己进度的标准来判断解是否满足这里打印出解x0是因为在递归过程中没有变量去接收返回值,所以返回x0,再打印x0得到的是None,再用numpy自带的log(pi)就查......
  • MATLAB神经网络拟合工具的使用
     本文以MATLABR2022a为例,介绍使用软件自带的神经网络拟合工具箱。首先,准备好需要分析的数据,包括预测变量、响应,在试验分析中分别对应试验因素、试验结果。每一组预测变量均对应一个响应,试验中一组试验因素对应一个试验结果。预测变量的数量、响应的数量分别对应神经网络中的......
  • python:使用matplotlib库绘制图像(一)
    作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!一、Matplotlib图像基础1.1 基本绘图实例:sin、cos函数图代码详解:1.frompylabimport*:导入pylab库中所有函数和变量。pyla......
  • matplotlib画3D图形的contour和plot_surface函数参数
    importmatplotlib.pyplotaspltimportnumpyasnpfrommpl_toolkits.mplot3dimportAxes3Dfig=plt.figure()ax=fig.add_axes(Axes3D(fig))X=np.arange(-4,4,0.25)Y=np.arange(-4,4,0.25)X,Y=np.meshgrid(X,Y)R=np.sqrt(X**2+Y**2)Z=np.sin......
  • 中山市选 #E 参数拟合
    中山市选#E参数拟合题目大意有两个长度为\(n\)的序列\(A,B\)。现在给出你\(m\)种操作,\((u,v)\)表示你可以将\(A_u,A_v\)同时增加\(q\)为任意整数。最后需要使得\(\sum(A_i-B_i)^2\)最小。解题思路首先,我们令\(C_i=A_i-B_i\)这样我们的目标就是使得\(\s......
  • 【深度学习】图形模型基础(5):线性回归模型第三部分:线性回归模型拟合
    1.引言本博文专辑的焦点主要集中在回归模型的实用案例和工具上,从简单的单变量线性回归入手,逐步过渡到包含多个预测变量、非线性模型,以及在预测和因果推断中的应用。本文我们将介绍回归模型推断的一些数学结构,并提供一些代数知识以帮助理解线性回归的估计方法。此外,我们还将......
  • 【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量
            ......
  • python 进阶教程--matplotlib
    matplotlib3.1安装配置3.2Matplotlib快速入门3.3图形绘制线图散点图条形图饼图3.4风格样式使用内置样式创建自定义样式临时使用样式3.1安装配置Matplotlib是一个用于创建高质量图表的Python绘图库。在开始使用Matplotlib之前,需要先安装它。以下是安装......
  • Matplotlib基本绘图
    Matplotlib基本绘图1.折线图(1)基本绘图plt.plot(x,y)importmatplotlib.pyplotaspltx=[1,2,3,4]y=[12,11,14,13]plt.plot(x,y)plt.show()(2)定义样式A.线条样式a.线条颜色plt.plot(x,y,color=颜色)importmatplotlib.pyplotaspltx=[1,2,3......
  • 【三变量联合分布函数copula】利用AIC BIC确定单变量最优拟合函数、利用AIC确定三变量
            ......