我有什麼可能是使用Matplotlib重新繪製某些3D數據的一個非常簡單的問題。最初,我有一個畫布上的3D投影的圖:Matplotlib:當使用canvas.draw重繪圖3D圖形時的附加座標軸()
self.fig = plt.figure()
self.canvas = FigCanvas(self.mainPanel, -1, self.fig)
self.axes = self.fig.add_subplot(111, projection='3d')
我然後添加一些數據,並使用canvas.draw()來更新。劇情本身更新符合市場預期,但我得到的數字(-0.05〜0.05)之外的其他2D軸,我無法工作,如何阻止它:
self.axes.clear()
self.axes = self.fig.add_subplot(111, projection='3d')
xs = np.random.random_sample(100)
ys = np.random.random_sample(100)
zs = np.random.random_sample(100)
self.axes.scatter(xs, ys, zs, c='r', marker='o')
self.canvas.draw()
任何想法?我現在正在圈子裏!
嗨華金, 感謝您花時間回覆。我試過這個,但它似乎沒有工作。 remove()似乎清除三維散點數據,但對軸不起作用。此外,2D軸(圖中的外側-0.05至0.05)仍然存在。任何其他想法? – Dan
2D軸的標籤不應該在第一位。你是否從你的代碼中移除了axes.clear()行? – joaquin
你好, 是的,我做到了。第一次繪製時,2D軸不存在。但第二次,他們再次出現。代碼是: xs = np.random.random_sample(100)* 40 - 20 ys = np.random.random_sample(100)* 40 - 20 zs = np.random.random_sample(100)* 40 - 20 a = self.axes.scatter(xs,ys,zs,c ='r',marker ='o') a.remove() a = self.axes.scatter(xs,ys,zs,c ='r ',marker ='o') self.canvas.draw() – Dan