我已经从文件创建了一个3D绘图表面,我正在尝试为该绘图设置动画.我已经阅读了matplotlib网页中的示例和SO中的其他示例,并注意到我需要创建一个更新函数来循环遍历文件中的值,然后创建一个matplotlib.animation对象,但我不明白该怎么做.
如果有人能够解释更新函数的语法以及如何在matplotlib.animation对象中使用它,我将非常感激.
我的数据是一个多维数组,有498行,每行我有一个64x128值的数组.数据按以下方式组织:
数据是来自力板的时间序列,500行中的每一行都是一帧,这意味着该试验持续10秒.对于每个帧,我有另一个64x128值的数组.
这是我的代码,直到现在:
from mpl_toolkits.mplot3d import *
import matplotlib.pyplot as plt
import numpy as np
from random import random, seed
from matplotlib import cm
from mpl_toolkits.mplot3d import axes3d
import matplotlib.animation as animation
source_path = "c:\\Projecto\\"
destination_path = "c:\\Projecto\\EntirePlate\\"
#fid = np.loadtxt(source_path + "rolloff_xls.txt",dtype=str)
fid_MP = open(source_path + "101mp - Entire plate roll off.xls","Ur")
lines_MP = fid_MP.readlines()
fid_MP.close()
values_MP = []
for i in lines_MP:
if i[0].isdigit():
values_MP.append(i)
values = np.loadtxt(values_MP,dtype=float)
new_values_MP =[]
for i …Run Code Online (Sandbox Code Playgroud) 我在带有鼠标悬停事件的情节中创建了一条垂直线和一条水平线.这些行旨在帮助用户选择在绘图中单击的位置.我的问题是,当鼠标移动到绘图上时,先前绘制的线不会消失.有人能解释我怎么做吗?
在OnOver函数中绘制绘图之后我使用了ax.lines.pop()但是没有用.
这是我正在使用的代码
from matplotlib import pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(np.random.rand(10))
def OnClick(event):
print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
event.button, event.x, event.y, event.xdata, event.ydata)
def OnOver(event):
x = event.xdata
y = event.ydata
ax.axhline(y)
ax.axvline(x)
plt.draw()
did = fig.canvas.mpl_connect('motion_notify_event', OnOver)
#iii = fig.canvas.mpl_disconnect(did) # get rid of the click-handler
cid = fig.canvas.mpl_connect('button_press_event', OnClick)
plt.show()
Run Code Online (Sandbox Code Playgroud)
在此先感谢您的帮助.伊沃
我有一个包含时间序列和一条或多条 axvspan 线的图,以突出显示某些区域并提取时间序列值和即时值,但我希望能够使用按钮删除一条或所有这些 axvspan 线。我查看了一些有关如何删除线的示例(How can I deleteplotlinescreated with Mouse Over Event in Matplolib?),但我无法\xc2\xb4t找到与 axvspan 线相关的任何内容。\n这是我\用于创建 axvspan 线
\n\n def on_click(event):\n global x0\n x0 = event.xdata\n\n def on_release(event):\n global force_values\n if force_value == "Min":\n self.axes.axvspan(x0,event.xdata, facecolor=\'y\', alpha=0.5)\n get_data(frames,force_values,x0,event.xdata)\n else:\n self.axes.axvspan(x0,event.xdata, facecolor=\'r\', alpha=0.5)\n get_data(frames,force_values,x0,event.xdata)\nRun Code Online (Sandbox Code Playgroud)\n\n在此先感谢您的帮助。\n亲切的问候\n伊沃
\n