- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想顺序绘制一系列 x,y 坐标,同时清楚地标记指定的坐标。似乎“markevery”允许用户在 matplotlib 图中执行此操作,但是,当我在动画中提供此属性时,我收到错误“ValueError: markevery
is iterable but not a valid form of numpy”花式索引'。有什么想法吗?
我实际的“mark_on”数组会更长,所以我认为在这里使用 linecollection 是不合理的。
frames = 100
def update_pos(num,data,line):
line.set_data(data[...,:num])
return line,
def traj_ani(data):
fig_traj = plt.figure()
l,= plt.plot([],[],'b', markevery = mark_on, marker = '*')
plt.xlim(-90,90)
plt.ylim(-90,90)
pos_ani = animation.FuncAnimation(fig_traj, update_pos, frames = np.shape(data)[1], fargs = (data,l),
interval = 20, blit = True)
pos_ani.save('AgentTrajectory.mp4')
data = pd.read_csv('xy_pos.csv', header = None, skiprows = [0])
data = np.asarray(data)
mark_on = [20, 50, 100, 300, 600]
traj_ani(data)
谢谢!
这是一个完整的、微型的动画示例:
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import csv
import pandas as pd
import numpy as np
Writer = animation.writers['ffmpeg']
writer = Writer(fps=2000, metadata=dict(artist='Me'), bitrate=1800)
def update_pos(num,data,line):
line.set_data(data[...,:num])
return line,
def traj_ani(data):
fig_traj = plt.figure()
l,= plt.plot([],[],'b')
plt.xlim(0,1)
plt.ylim(0,1)
pos_ani = animation.FuncAnimation(fig_traj, update_pos, frames = 25, fargs = (data,l),
interval = 200, blit = True)
pos_ani.save('AgentTrajectory.mp4')
data = np.random.rand(2,25)
traj_ani(data)
在我的完整代码中,我想指定某些框架,其 x-y 坐标应使用特殊字符或不同的颜色进行标记。
最佳答案
将索引列表设置为 markevery 似乎有问题,其中包含绘制数组中不存在的索引。例如。如果绘制的数组有 3 个元素,但为 markevery 设置的列表包含索引 5,则会发生 ValueError。
解决方案需要在每次迭代中设置 markevery 列表,并确保它只包含有效的索引。
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import numpy as np
mark_on = np.array([2,5,6,13,17,24])
def update_pos(num,data,line):
line.set_data(data[...,:num])
mark = mark_on[mark_on < num]
line.set_markevery(list(mark))
return line,
def traj_ani(data):
fig_traj = plt.figure()
l,= plt.plot([],[],'b', markevery = [], marker = '*', mfc="red", mec="red", ms=15)
plt.xlim(0,1)
plt.ylim(0,1)
pos_ani = animation.FuncAnimation(fig_traj, update_pos, frames = 25, fargs = (data,l),
interval = 200, blit = True)
plt.show()
data = np.random.rand(2,25)
traj_ani(data)
关于python - Markevery 的 FuncAnimation 难度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43100009/
我对此给出了答案thread ,谈论 matplotlib 上的褪色点。我对 ImportanceOfBeingErnest 的回答感到好奇。所以我尝试尝试他的代码。 首先,这是我的代码。 impor
我正在制作一个应该可视化传感器数据的应用程序。因此,我使用 python 和 tkinter 作为 gui 框架和 matplotlib 来可视化数据。该图应显示当前传感器值,因此它应该是动画的。但是
我对此给出了答案thread ,谈论 matplotlib 上的褪色点。我对 ImportanceOfBeingErnest 的回答感到好奇。所以我尝试尝试他的代码。 首先,这是我的代码。 impor
有谁知道停止 FuncAnimation 的首选方法吗?我用它来记录来自示波器的数据,并希望能够按需暂停和重新启动数据。有什么方法可以向它发送按钮点击事件吗? 谢谢,德里克 最佳答案 FuncAnim
下面的代码有效,但我认为每个重复周期都会过度绘制原始点。我希望它从原点开始,每个重复循环,有一个清晰的情节。在解决此问题的许多方法中,我尝试在 init 和 update 函数中插入 ax.clear
我试图从头开始模拟双星系统中行星的运动。为此,我需要能够在动画图中绘制点。在对整个事情进行编码之前,我正在学习使用 pyplot 为绘图设置动画。到目前为止,我还没有运气为移动点设置动画。在查看了几个
我正在尝试为机器人的链接设置动画但没有成功。 FuncAnimation 从不调用 animate 函数——从不执行打印语句。任何帮助将不胜感激。我的代码: def foo(): joints
我是 python 的新手,我正在尝试使用 matplotlibs FuncAnimation 制作动画并将其保存为某种视频格式。如果我运行以下代码: import numpy as np impor
我正在尝试用我计算的数据制作一部电影。我正在使用 ffmpeg 编写器。当我在 Spyder 中启动动画时,它工作正常并持续到最后,但当我尝试保存它时,它只持续动画的前 30%。我怎样才能保存整个动画
我想从不同的文件生成一系列动画线图的视频。下面是我的 python 代码的开始。我正在使用matplotlib.animation图书馆。 看起来像这样: 如何删除之前的绘图(一次显示一行),但保持相
我想构建一个带有某些实时图表的界面,显示一些实验的结果。为此,我决定结合使用glade(UI)、gtk、python 和 matplotlib。我正在学习一些基础知识,并且能够绘制一些实时图表。 现在
我正在尝试使用 FuncAnimation 模块制作动画,但我的代码只生成一帧然后停止。它似乎没有意识到它需要更新什么。你能帮我看看哪里出了问题吗? import numpy as np import
我使用 matplotlib 的 FuncAnimation 创建了表面绑定(bind)过程的简单动画。然而,结果非常缓慢。我怀疑这是因为我在每一帧重新绘制所有元素,但我还没有找到解决方法。任何帮助表
根据 matplotlib 的文档,FuncAnimation 重复调用一个函数来制作动画。 问题是,当没有更多图像数据可用时,我应该如何告诉 FuncAnimation() 停止? 最佳答案 如果您
如何将参数传递给animation.FuncAnimation()?我试过了,但没用。 animation.FuncAnimation() 的签名是 class matplotlib.animatio
浏览了一些关于 matplotlib 动画的教程并遇到了这个问题。我正在使用 matplotlib.animation funcanimation 如下: import matplotlib.anim
我正在尝试使用 Matplotlib 的 FuncAnimation 来动画显示每帧动画中的一个点。 # modules #--------------------------------------
我想弄清楚是否有任何方法可以更改现有 matplotlib FuncAnimation 的间隔。我希望能够根据用户输入调整动画的速度。 我发现了一个类似的问题 How do I change the
我在 Matplotlib 中遇到动画缓慢的问题。我正在对模拟结果进行动画处理,这是最简单的可视化方式,其中包含一系列随时间改变颜色的矩形。 遵循建议 here ,我使用 blitting 仅绘制每帧
我制作了一个脚本,它使用 matplotlib 的 FuncAnimation 函数来为抛物面函数的一系列等高线图设置动画。我想添加一个颜色条,其范围在整个动画过程中都不会改变。我真的不知道该怎么做。
我是一名优秀的程序员,十分优秀!