Сюжет Panda создает новый колобар, потому что вы просите его создать его (colorbar=True
), и похоже, что теперь есть способ сообщить функции, что цветовая полоса уже есть и что она должна использовать ее вместо этого.
Есть много способов обойти эту проблему.
первым будет не использовать DataFrame.plot()
, а вместо этого использовать matplotlib напрямую для генерации графика. Это даст вам больше контроля над осями, которые вы используете, и позволит вам перерабатывать цветовую панель от кадра к кадру. Вот несколько ссылок, которые могут иметь отношение к теме:
второй вариант, если вы хотите, чтобы ваш код был близок к тому, что есть сейчас, чтобы стереть всю фигуру в каждом кадре и позволить pandas
воссоздавать оси, которые ему нужны каждый раз. i.e.:
def plot(self):
self.fig.clf()
self.axis = self.fig.add_subplot(111)
self.axis = self.data.plot(kind="scatter", x="A", y="B", alpha=0.4,
s=50, label="Real Time Position",
c="C", cmap=plt.get_cmap("jet"), colorbar=True, ax=self.axis)