我有一个df,它包含一个鼠标鼻子的x,y坐标,我想用它来制作动画散点图。目前,我有静态散点图的代码。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import os
from pathlib import Path 
from IPython.display import HTML


#import video pose estimation data 
video='topNoF.mp4'
DLCscorer='C:/Users/Bri-Guy/Desktop/DLC/h5/topFDLC_resnet50_topAnalysisJan20shuffle1_100000'
dataname = DLCscorer+'.h5' #can change to .csv instead; make sure to change pd.read_hdf() to pd.read_csv() 
df=pd.read_hdf(os.path.join(dataname))


#get X & Y coordinates of snout bdp
scorer=df.columns.get_level_values(0)[0] 
x=df[scorer]['snout']['x'].values
y=df[scorer]['snout']['y'].values

#produce a static scatterplot trace of snout movement 
length=len(x)
n = len(x)
color = []
for i in range (1,n+1):
    color.append(i/n)
    
scatter=plt.scatter(x,y,c=color, cmap='inferno')
ax = scatter.axes

从而产生

enter image description here

我想使用此Stack Exchange答案中的代码变体:Matplotlib Plot Points Over Time Where Old Points Fade以如下方式设置散点图的动画:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from IPython.display import HTML
from matplotlib.colors import LinearSegmentedColormap


plt.rcParams['animation.ffmpeg_path'] = r'C:/Users/Bri-Guy/anaconda3/envs/pWGA/Library/bin/ffmpeg.exe'

x=df[scorer]['snout']['x'].values
y=df[scorer]['snout']['y'].values

fig, ax = plt.subplots()
plt.xlim(0, max(x)+100)
plt.ylim(0, max(y)+100)
graph, = plt.plot([], [], 'o')

def animate(i):
    graph.set_data(x[:i+1], y[:i+1])
    return graph


ani = FuncAnimation(fig, animate, frames=len(y), interval=20)
html = ani.to_html5_video()
HTML(html)

gif example

理想情况下,我希望此动画中的点随着时间推移而褪色(像链接的示例一样平滑褪色)。此外,我不确定如何为动画散点图设置颜色贴图(如inferno)。淡化(&A);设置颜色图的能力是我最重要的优先事项。

我使用链接示例中的代码遇到的主要问题是以下方面:

def get_new_vals():
    n = np.random.randint(1,5)
    x = np.random.rand(n)
    y = np.random.rand(n)
    return list(x), list(y)

def update(t):
    global x_vals, y_vals, intensity
    # Get intermediate points
    new_xvals, new_yvals = get_new_vals()
    x_vals.extend(new_xvals)
    y_vals.extend(new_yvals)

    # Put new values in your plot
    scatter.set_offsets(np.c_[x_vals,y_vals])

    #calculate new color values
    intensity = np.concatenate((np.array(intensity)*0.96, np.ones(len(new_xvals))))
    scatter.set_array(intensity)

    # Set title
    ax.set_title('Time: %0.3f' %t)

我需要从x=df[scorer]['snout']['x'].values&y=df[scorer]['snout']['y'].values. 必须按x[0]x[len(x)-1]的顺序调用这些值,以便绘图按时间顺序更新。然而,当试图在get_new_vals(i)中添加参数时,我会出错,因为我认为动画的t变量不是整数。我不确定数组x&;因为它们是浮点。

我提前感谢你的帮助!如果我能为你澄清什么,请告诉我。下面我发布了x,y变量中的一些数据:

print(x[:200])

[276.89370728 280.57974243 285.25439453 285.55096436 284.71258545
 283.52386475 284.31976318 285.08609009 285.56118774 285.38183594
 289.21246338 295.28497314 303.41043091 315.51828003 324.87826538
 333.36367798 338.73730469 341.11685181 349.20300293 357.63671875
 366.72702026 395.68356323 385.37298584 387.86871338 387.58526611
 382.20205688 378.13674927 373.97241211 368.39953613 591.94116211
 347.27310181 616.52069092 608.12902832 605.11340332 602.10974121
 598.72052002 598.48504639 599.19256592 601.30432129 603.32104492
 604.9621582  605.21533203 621.36779785 627.51617432 626.20269775
 621.00164795 618.92498779 617.44885254 615.73883057 598.8916626
 594.17883301 593.38647461 589.3248291  592.67895508 593.67053223
 589.05767822 589.08850098 303.0085144  568.39239502 555.08520508
 550.79425049 547.77197266 547.21954346 313.01544189 333.96121216
 348.59899902 353.26141357 358.76705933 360.81588745 363.94262695
 527.38165283 522.80316162 518.20489502 521.84442139 525.30664062
 526.43286133 532.38995361 536.35961914 536.51574707 540.41906738
 545.77844238 545.22381592 545.34112549 540.22357178 537.93457031
 534.03442383 532.6651001  522.52618408 505.38290405 489.37664795
 469.75460815 448.28039551 424.54315186 403.87719727 383.25265503
 359.93307495 335.06869507 318.53125    296.43450928 288.86499023
 442.87780762 443.70950317 440.31652832 439.50854492 439.11328125
 434.4161377  216.55622864 216.7456665  215.32554626 213.63644409
 213.8143158  213.96568298 213.87882996 214.10801697 214.05957031
 212.54373169 216.25740051 214.80444336 216.47532654 218.31072998
 215.78303528 213.40249634 292.92352295 290.80630493 287.03222656
 283.45129395 390.10848999 274.83648682 269.53741455 215.76341248
 218.75086975 220.38156128 219.87997437 219.83804321 218.52023315
 216.93737793 218.18110657 218.31959534 224.79884338 224.69064331
 221.88998413 218.67016602 216.9510498  216.63031006 215.88612366
 217.3243103  217.01783752 214.08659363 213.87808228 211.14770508
 206.47595215 214.88208008 214.39358521 212.50665283 212.39123535
 213.95169067 217.72639465 313.20504761 288.23443604 283.30273438
 283.1756897  281.46990967 276.20397949 273.39535522 274.38088989
 267.42678833 269.19915771 271.11810303 331.80795288 330.61746216
 329.03930664 227.14578247 226.81338501 227.80999756 229.65690613
 229.97644043 207.91325378 219.31289673 225.3374939  230.50515747
 313.22525024 310.83474731 306.02667236 299.73217773 288.91854858
 278.45489502 266.55349731 264.91229248 256.15029907 249.70783997
 245.47244263 246.11851501 245.35572815 246.03157043 246.50708008
 246.63691711 245.77215576 245.09873962 241.44792175 243.87677002]
print(y[:200])

[1321.18652344 1316.84301758 1316.04064941 1315.66455078 1315.38586426
 1315.74560547 1317.04711914 1318.11218262 1320.09631348 1321.45703125
 1328.39794922 1339.04956055 1353.28076172 1364.76757812 1371.4901123
 1376.57568359 1381.58361816 1383.17236328 1390.66870117 1401.93652344
 1412.72961426 1393.1583252  1437.81616211 1440.15380859 1440.01843262
 1438.75891113 1437.50012207 1436.55932617 1429.39416504 1620.10900879
 1400.08654785 1506.79125977 1497.49243164 1491.12316895 1488.84606934
 1487.79296875 1489.73840332 1488.69665527 1490.09631348 1490.75927734
 1490.99291992 1487.58154297 1610.09851074 1612.06115723 1613.1282959
 1615.44006348 1619.22009277 1620.50915527 1618.51501465 1495.30175781
 1496.44470215 1497.99816895 1492.10546875 1474.48339844 1481.59130859
 1475.67248535 1477.48083496 1375.00964355 1480.91625977 1486.29675293
 1493.73193359 1501.6204834  1507.31176758 1366.4050293  1358.88977051
 1346.67797852 1339.04455566 1333.7755127  1328.54821777 1322.38439941
 1502.17102051 1497.28198242 1493.86022949 1479.5690918  1469.38928223
 1458.9095459  1448.56921387 1448.53613281 1443.38757324 1444.77124023
 1443.64233398 1440.03857422 1431.31848145 1427.53820801 1427.53393555
 1428.34887695 1429.39526367 1431.30249023 1440.09594727 1457.33044434
 1474.85864258 1492.55554199 1498.40905762 1497.65649414 1503.4185791
 1507.8626709  1507.43164062 1506.86315918 1507.16052246 1506.81115723
 1313.21789551 1317.2467041  1322.02380371 1320.96960449 1314.60107422
 1314.20336914 1640.76843262 1656.12866211 1667.98669434 1675.00683594
 1675.64379883 1678.5567627  1678.24157715 1673.58984375 1667.44628906
 1651.3112793  1635.78564453 1626.48413086 1616.28967285 1594.74316406
 1580.41320801 1579.52124023 1506.03894043 1504.37646484 1501.6105957
 1500.49902344 1316.76806641 1491.15759277 1471.89294434 1575.55322266
 1585.22619629 1594.93151855 1598.60961914 1597.25134277 1598.54443359
 1599.59936523 1597.15466309 1594.58544922 1585.51281738 1582.63903809
 1584.89025879 1585.41784668 1589.9654541  1592.00085449 1596.66369629
 1598.4128418  1598.8269043  1600.46069336 1596.1394043  1597.69421387
 1598.36975098 1582.69897461 1580.45617676 1581.58618164 1580.9498291
 1578.98144531 1575.28918457 1494.18151855 1490.47180176 1490.87109375
 1485.41467285 1480.73291016 1481.30554199 1485.26867676 1489.50756836
 1497.07263184 1501.99645996 1505.94543457 1267.27172852 1270.28515625
 1281.31738281 1568.67248535 1576.60119629 1578.63500977 1577.04748535
 1577.89709473 1681.06103516 1681.95227051 1684.63745117 1686.96484375
 1325.62084961 1331.21569824 1331.70007324 1331.41809082 1336.49401855
 1345.08703613 1351.00073242 1356.37145996 1360.50805664 1367.5177002
 1371.69470215 1376.6151123  1377.27844238 1376.92382812 1376.37487793
 1377.03894043 1377.87390137 1378.53796387 1373.02990723 1365.00915527]

带有渐变轨迹的散点图动画轨迹的更多相关文章

  1. CSS中实现动画效果-附案例

    这篇文章主要介绍了 CSS中实现动画效果并附上案例代码及实现效果,就是CSS动画样式处理,动画声明需要使用@keyframes name,后面的name是人为定义的动画名称,下面我们来看看文章的具体实现内容吧,需要的小伙伴可以参考一下

  2. ios – 围绕其中心点旋转UIImageView?

    我在UIImageView中有一个透明的png,我想围绕它的中心点旋转.代码应该非常简单:图像以正确的速度/时间和直角旋转,但其位置会发生偏移.这是一个正在发生的事情的例子:灰色方块只是为了在屏幕上显示位置.透明的png是另一个图.白色虚线显示UIImageView的中心.图像的左侧显示图像的原始位置,右侧显示使用上述代码旋转后的图像.黑色和白色圆圈位于图像文件的中心.有什么东西我不见了吗?

  3. ios – 将UIView的框架和角半径合在一起

    码:此代码是UIView的扩展.解决方法我像这样调整我的圈子视图:

  4. ios – 如何在Cocos2D 3.x中为CCSprite制作动画?

    你知道如何在新的Cocos2Dv3.x中动画CCSprite吗?许多类都被改变了,旧的方法似乎不起作用.任何的想法?谢谢.额外信息解决方法这是它的工作原理:

  5. ios5 – UIPageViewController转换速度/持续时间?

    有没有办法改变页面卷曲过渡的默认持续时间?这是快速的方式然后我希望它会是?谢谢沙尼解决方法Hy,这是使用默认转换来卷曲页面和指定卷曲速度的方法.祝你工作顺利.

  6. ios – 重用UICollectionView中的单元格时,会短暂显示重用的UICollectionViewCell的旧内容

    我正在使用UICollectionView来显示从URL异步加载的图片网格.我的集合视图使用可重用单元格来显示UICollectionViewCells.当不重复使用单元格时,所有内容都会正确显示,但是当我滚动一下时,重用的单元格会在它们开始正常行为之前短暂闪烁旧内容.以下是自定义UICollectionViewController的实现:这是自定义UICollectionViewCell的实现.

  7. XCode 3.2 Ruby和Python模板

    在xcode3.2下,我的ObjectiveCPython/Ruby项目仍然可以打开更新和编译,但是你无法创建新项目.鉴于xcode3.2中缺少ruby和python的所有痕迹(即创建项目并添加新的ruby/python文件),是否有一种简单的方法可以再次安装模板?我发现了一些关于将它们复制到某个文件夹的信息,但我似乎无法让它工作,我怀疑文件夹的位置已经改变为3.2.解决方法3.2中的应用程序模板

  8. 在iOS中移动UICollectionView的单元格?

    我有一个UICollectionView.I我试图给它作为SpringBoard的功能.我有能力给每个单元格摇动动画.但是我想当图标摇动时,我应该能够移动他们.为了摇动单元格,我已经在每个单元格上添加了UILongPressGesture.当手势结束时,我已经添加了一个自定义动画.还在左上角添加了一个删除按钮.长按手势代码:添加手势到集合视图回调方法单元格在inde路径项在这里工作正常为了移动单元

  9. iOS:CAShapeLayer绘制非直视图像并为其形状设置动画

    我一直在阅读有关CAShapeLayer的文档,但我仍然不太明白.根据我的理解,Layer始终是扁平的,其大小始终是矩形.另一方面,CAShapeLayer允许您定义不仅仅是矩形的图层.它可以是圆形,三角形等,只要您将它与UIBezierPaths一起使用即可.我的理解是在这里吗?

  10. ios – CGContextSaveGState:应用启动时的无效上下文0x0

    FWW我的应用程序大多是用Swift2.0编写的,在iOS9上使用Xcode7b6.解决方法我遇到同样的问题,其原因是,我正在为不同的屏幕设置不同的状态栏样式.因此,我需要在plist中添加“查看基于控制器的状态栏外观”键.如果我删除此键,警告消失.

随机推荐

  1. 如何扩展ATmega324PB微控制器的以下宏寄存器?

    我目前正在学习嵌入式,我有以下练习:展开以下宏寄存器:如果有人解决了这个问题,我将不胜感激,以便将来参考

  2. Python将ONNX运行时设置为返回张量而不是numpy数组

    在python中,我正在加载预定义的模型:然后我加载一些数据并运行它:到目前为止,它仍在正常工作,但我希望它默认返回Tensor列表,而不是numpy数组。我对ONNX和PyTorch都是新手,我觉得这是我在这里缺少的基本内容。这将使转换中的一些开销相同。

  3. 在macOS上的终端中使用Shell查找文件中的单词

    我有一个文本文件,其中有一行:我需要找到ID并将其提取到变量中。我想出了一个RexEx模式:但它似乎对我尝试过的任何东西都不起作用:grep、sed——不管怎样。我的一个尝试是:我为这样一个看似愚蠢的问题感到抱歉,但我在互联网上找不到任何东西:我在SO和SE上读了几十个类似的问题,并在谷歌上搜索了几个教程,但仍然无法找到答案。欢迎提供任何指导!

  4. react-chartjs-2甜甜圈图中只有标题未更新

    我正在使用react-chartjs-2在我的网站中实现甜甜圈图。下面是我用来呈现图表的代码。我将甜甜圈图的详细信息从父组件传递到子组件,所有道具都正确传递。当我在beforeDraw函数外部记录props.title时,它会记录正确的值,但当我在beforeDraw函数内部记录props.title时,它将记录标题的前一个值,从而呈现标题的前值。我在这里做错了什么?

  5. 如何在tkinter中使用Python生成器函数?

    生成器函数承诺使某些代码更易于编写。但我并不总是知道如何使用它们。假设我有一个斐波那契生成器函数fib(),我想要一个显示第一个结果的tkinter应用程序。当我点击“下一步”按钮时,它会显示第二个数字,依此类推。我如何构建应用程序来实现这一点?我可能需要在线程中运行生成器。但如何将其连接回GUI?

  6. 如何为每次提交将存储库历史记录拆分为一行?

    我正在尝试获取存储库的历史记录,但结果仅以单行文本的形式返回给我。

  7. 尝试在颤振项目上初始化Firebase时出错

    当尝试在我的颤振项目上初始化firebase时,我收到了这个错误有人知道我能做什么吗?应用程序分级Gradle插件Gradle项目颤振相关性我已经将firebase设置为Google文档已经在另一个模拟器上尝试过,已经尝试过创建一个全新的模拟器,已经在不同的设备上尝试过了,已经尝试了特定版本的firebase,已经尝试添加但没有任何效果,已经在youtube上看到了关于它的每一个视频,该应用程序在android和iOS两个平台上都抛出了这个错误

  8. 在unix中基于当前日期添加新列

    我试图在unix中基于时间戳列在最后一个单元格中添加一个状态列。我不确定如何继续。

  9. 麦克斯·蒙特利。我一直得到UncaughtReferenceError:当我在终端中写入node-v时,节点未定义

    如果这是您应该知道的,请确认:我已将所有shell更改为默认为zsh。当我在终端中写入node-v时,我一直收到“UncaughtReferenceError:nodeisnotdefined”。但它显示节点已安装。我是个新手,在这方面经验不足。

  10. 如何在前端单击按钮时调用后端中的函数?

    那么如何在后端添加一个新的端点,点击按钮调用这个函数。

返回
顶部