为什么这些功能不能同时绘制在同一个图表上?

时间:2016-07-27 23:48:51

标签: python matplotlib ipython

我希望能够点击IPython GUI中生成的两个按钮,然后在同一个图表上生成总共6个点。但是,现在单击这两个按钮不会创建6个点,只会创建由第一个按钮单击的图形。我做错了什么?

glm::mat4

1 个答案:

答案 0 :(得分:1)

我玩了你的代码并通过添加%matplotlib笔记本并删除对plt.show()的调用来实现它。

%matplotlib notebook
import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from ipywidgets.widgets import Button
from IPython.display import display

class Test(object):
    def __init__(self):
        plt.ion()
        self.figure = plt.figure()
        self.ax = self.figure.gca()
        self.button = Button(description = "Draw new points.")
        display(self.button)
        self.button.on_click(self.button_clicked)
        self.button2 = Button(description = "Draw more points.")
        display(self.button2)
        self.button2.on_click(self.button_clicked2)

    def button_clicked(self, event):
        self.ax.scatter([1,2,8], [6,5,4])
        self.figure.canvas.draw()

    def button_clicked2(self, event):
        self.ax.scatter([1,0,5], [3,8,3])
        self.figure.canvas.draw()

test = Test()

确保安装了最新版本的matplotlib。此功能取决于nbagg后端。有关详细信息,请参阅this question