У меня нет опыта работы с matplotlib, но, глядя на ваш код, мне интересно, правильно ли вы используете pyplot
?То, как ваш код выглядит для меня, заключается в том, что вы используете pyplot для генерации данных (которые вы не сохраняете возвращаемые значения), а затем вы строите их, но я думаю, что на самом деле она не работает на вашем экземпляре оси.
Пример того, как я видел использование matplotlib, можно найти здесь: Segfault с использованием matplotlib с PyQt .., где он фактически непосредственно создает PyQt4 FigureCanvas и строит графики непосредственно для своего экземпляра оси.
Похоже, что метод pyplot.plot()
может взять параметр figure и axis, чтобы сообщить ему, какой экземпляр использовать.Интересно, если он не использует вашу ось, так как я не вижу в вашем примере, как вы создаете саму ось.Взгляните на документы здесь
Я думаю, вы можете попробовать сделать что-то вроде этого:
plt.plot(ind, kdepdf, 'g', axis=self.axis, linewidth=0.8, label='kde')
Или, возможно, подтвердите, что у вас есть createe self.axis
с помощью self.axis = plt.axis()
, или даже попытаться выполнить всю графику непосредственно с экземпляром оси?