如何解决索引器错误:索引(x)超出wxPython中大小为(y)的轴0的界限?

2024-05-15 16:49:43 发布

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

在这里,我试图展示下颌线的动画。运行该代码会在调用OnClicked()事件时出错

def OnClicked(self, e):
    print("ok")
    self.ani = animation.FuncAnimation(self.figure_animation, self.animate , init_func=self.init, interval=0.1,
                                       blit=True)

def init(self):  # only required for blitting to give a clean slate.
    x = self.mat_px[0]
    y = self.mat_py[0]
    self.jaw_outline.set_data(x, y)
    return self.img, self.jaw_outline

def animate(self, i):
    # update the data
    x = self.mat_px[i]
    y = self.mat_py[i]
    self.jaw_outline.set_data(x, y)
    poa = self.axes_animation.scatter(self.h2_POA_pos[i], self.K2_POA_pos[i], color='red', s=150)
    jaw_area_fill = self.axes_animation.fill_between(x, y, 0, facecolor=[(254 / 255, 157 / 255, 111 / 255)])

    return self.img, self.jaw_outline, jaw_area_fill, poa

考虑如果Self.MataPx的长度为80,那么在PyToMin控制台中,这个“索引80是具有大小80的轴0超出了界限”的错误。我会遇到如下不停的错误

  • 索引器:索引80超出大小为75的轴0的界限
  • 索引器:索引81超出大小为75的轴0的界限
  • 索引器错误:索引82超出大小为75的轴0的界限
  • 诸如此类

如果我将blit设置为False,那么我不会得到任何错误,但是这样做并不能得到正确的结果。 请帮我解决这个问题


Tags: selfdatainitdef错误fillpxanimation
1条回答
网友
1楼 · 发布于 2024-05-15 16:49:43

我建议使用%(模)运算符(请参见Binary arithmetic operations),将索引分别限制在self.mat_px的范围内self.mat_py

x = self.mat_px[i % len(self.mat_px)]
y = self.mat_py[i % len(self.mat_py)]

相关问题 更多 >