使用matplotlib LineCollection,不会显示特定坐标的线

2024-04-26 07:48:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的很想了解一下我遇到的一个错误。你知道吗

简而言之,我正在设置从一个LineCollection到另一个LineCollection的平滑过渡的动画。所以,在每一个LineCollection中,我将行配对,一行来自LineCollection A,另一行来自LineCollection B,随着时间的推移,我将一行的坐标更改为另一行。每一个timestep,我都可以将帧保存为png格式。(在最后的代码中,我只是获取RGB数据并将其直接输入到视频编写器中,而不保存图像,但这并不重要)。你知道吗

奇怪的是,对于非常短的线条,有时候它们就消失了。如果只有最小长度,我可以接受它,但它们可以在动画中消失并重新出现几次,即使线随着时间的推移线性地映射到彼此。(将每个坐标元组视为时间上的线性贝塞尔曲线。Linear Bezier Curves.)那么,它们怎么会一次又一次变得太短而足够长呢?你知道吗

Check out the progression in these frames, which are about 3% of the total video

例如,注意右下角的小球。你知道吗

有人知道Matplotlib/LineCollections为什么这么做吗?你知道吗


Tags: the数据代码图像视频png格式错误
1条回答
网友
1楼 · 发布于 2024-04-26 07:48:53

如果我有

lc=mc.LineCollection系列(段)

答案是使用LineCollection命令

你知道吗lc.set\U捕捉(错误)

正如我所料,这与后端的一些优化有关。将“捕捉”设置为默认值会将点的位置移动到最近的整数,但仅在水平或垂直线段上。这种行为也只是在光栅化的输出上,而不是svg。每隔这么多帧,最接近的像素可能会与线段的起点和终点重合,并且它不会绘制长度为0的线,即使使用胖的圆帽样式。在其他帧上,这种优化没有被应用,因为这条线不是完全垂直或水平的,或者它被应用了,只是碰巧把点放在不同的像素上。我认为对于pme想要完全控制的应用程序,最好关闭所有的“智能”优化,否则会出现这样的怪癖。你知道吗

谢谢Diziet帮助我理解这个网站。我不能随意把整个代码放在那里,我正在做一个例子,我可以分享,但我已经找到了解决办法。你知道吗

相关问题 更多 >