Matplotlib动态更新绘图出现异常线条问题排查
Matplotlib动态添加矩形出现异常线条的解决方法
问题场景
尝试使用Matplotlib动态向绘图中添加矩形时,绘图出现奇怪的异常线条。具体情况:
- 定义了
GridDisplay类,包含初始化方法和UpdatePlotWithIndicesCoords方法用于添加新矩形 - 更新绘图逻辑:每次移除
self.graph后添加新矩形,最后执行self.graph = self.ax.plot(self.rectangles)[0] - 已启用Matplotlib交互模式
plt.ion(),测试代码生成多个矩形时出现异常线条,查阅文档和社区帖子未解决
问题原因
ax.plot()是Matplotlib用于绘制折线图的方法,它需要接收坐标点序列作为参数。直接将矩形对象传入ax.plot(),会导致Matplotlib错误解析矩形的内部数据,进而生成不符合预期的异常线条。而矩形属于Matplotlib的**补丁(Patch)**类图形元素,需要用专门的方法添加。
解决方法
将UpdatePlotWithIndicesCoords方法最后一行的代码:
self.graph = self.ax.plot(self.rectangles)[0]
修改为:
self.graph = self.ax.add_patch(rectangle)
ax.add_patch()是Matplotlib专门用于添加补丁类图形的方法,能正确识别并渲染矩形对象,避免异常线条的出现。
内容的提问来源于stack exchange,提问作者Yuushabio
相关产品推荐
相关产品推荐

