R 如何生成箭图和平衡图?

R 如何生成箭图和平衡图?,r,differential-equations,R,Differential Equations,我在过去使用过Python,但一直在缓慢地过渡到R。我目前正在尝试创建一个抖动/方向场图和平衡图。我已经能够在Python中做到这一点,链接到下面的示例,但很难在R中反映这一点。在Python中,我能够使用诸如numpy、matplotlib.pyplot、mpl_toolkit.mplot3d和scipy.integrate之类的包。目前,我一直在尝试使用deSolve、pracma和matlab。我是否应该使用其他软件包,或者这些软件包中的函数是否无法正常工作?下面是我一直在胡闹的一篇论文中

我在过去使用过Python,但一直在缓慢地过渡到R。我目前正在尝试创建一个抖动/方向场图和平衡图。我已经能够在Python中做到这一点,链接到下面的示例,但很难在R中反映这一点。在Python中,我能够使用诸如numpy、matplotlib.pyplot、mpl_toolkit.mplot3d和scipy.integrate之类的包。目前,我一直在尝试使用deSolve、pracma和matlab。我是否应该使用其他软件包,或者这些软件包中的函数是否无法正常工作?下面是我一直在胡闹的一篇论文中的一个代码示例。任何帮助都将不胜感激

#Solve the system dy/dt = f(y, t) and model equations
Example <- function(t, state, parameters) {
  with(as.list(c(state, parameters)), {

    dK <-  a * K - b * H - c * F - d * H * F
    dH <-  b * H - a * K + c * F + e * F
    dF <-  f + c * F - a * K + b * H + h * K
    list(c(dK, dH, dF))
  })
}

#Parameters and Initial Conditions
parameters <- c(a = 0.02, 
                b = 0.01, 
                c = 0.04, 
                d = 0.06, 
                e = 0.08, 
                f = 0.2,  
                h = 0.04)
state      <- c(K = 0.7, 
                H = 0.6, 
                F = 0.3) 
times      <- seq(0, 100, by = 0.01) 

out <- ode(y = state, times = times, func = Example, parms = parameters)

plot(out)
求解系统dy/dt=f(y,t)和模型方程
示例对于你当前的示例,我看不到一种生成向量场的方法,但我确实得到了一些类似于你展示的平衡图示例的东西。我会称之为以时间为参数的三维参数图。将打开一个X11窗口,通过单击并拖动屏幕上的图像,可以在psuedo-3d sapce中旋转该窗口。rgl.snapshot拍摄照片。我决定缩放轴:

require(rgl)
 open3d()
#------
NSOpenGL 
      11 
> lines3d( x=out[, 2]/diff(range(out[, 2])),  y=out[, 3]/diff(range(out[, 3])), z=out[, 4]/diff(range(out[, 4])))
> axes3d()
> range(out[, 2])
[1] -599.9068  309.3532
> range(out[, 1])
[1]   0 100
> range(out[, 4])
[1] -18.02914  23.64377
> range(out[, 3])
[1]   0.6000 165.0494
> rgl.snapshot("equil.png")
还有scatterplot3d软件包:

require(scatterplot3d); scatterplot3d( out[, 2],  out[, 3], out[, 4])

一旦我们整理出错误,现在我们有6个系列:y1,…,y6。我们到底该拿这些做什么?谢谢你的回复。很抱歉,我将其编辑为三维模型以进一步简化。我想知道,作为一个随机示例,如何生成与上面Python示例类似的平衡图和颤动图?我不知道哪些软件包能够做到这一点。我有deSolve、matplot和phaser,但找不到这些选项的函数。我希望有人能给我指引正确的方向(比如,什么包裹),或者如果他们有时间,给我举个例子?ggplot2能够生成微分方程的图形吗?据我所知,ggplot2还不能生成3d图形。rgl软件包不支持旋转3d图形,lattice软件包和base软件包都具有允许固定视点显示的伪3d功能。deSolve的作者还编写了一个plot3d软件包,可以制作固定视点图形。您当前的代码仍然有一个错误,因为R不允许函数中的代码运行“请参阅
parms
中的字母变量名。我看过3d向量场和参数化3d曲线的绘制,甚至自己做了一些。将进行一些搜索。谢谢,这已经很有帮助了。你知道他写的plot3d软件包是否已经集成在deSolve中,或者我是否需要单独下载?很抱歉,这个例子不起作用。我正在编辑一篇新的文章,我刚刚运行,效果很好。再次感谢您花时间提供帮助。安装deSolve时,它不是集成的,也不是依赖的。我可以使用您的代码从我的旧模型(即照片中使用的模型)生成一个平衡图,它完全模仿了它。我将尝试阅读该函数的软件包信息,以便添加标签和更多内容。您是如何将rgl快照上载到此网站的?你用过imgur吗,还是有其他方法?我找到了你说的plot3d。他们的包装通过rgl工作。我将用它来尝试一个向量图。非常感谢!您认为使用rgl或scatterplot3d之间有什么优点或缺点吗?我已经能够使用scatterplot3d完成图形,非常感谢您的帮助,非常感谢。scatterplot3d运行良好,我能够在项目中使用它,但我现在正尝试使用您提供的rgl和openplot示例,只是出于个人兴趣。查看rgl和open3d的参考手册,我不知道如何修改或编辑大部分模型。例如,如果我想在x轴、y轴和z轴上添加标签名称,我将如何在代码中实现这一点?我(可能)已经有了(高度投票)的答案。只需在
scatter3d
上查看我的用户帖子即可。它适用于创建rgl对象的scatter3d,但也可能适用于普通rgl。如果没有,那么发布一个完整的问题。