LineCollection, перерисовка PatchCollectionPython

Программы на Python
Ответить Пред. темаСлед. тема
Гость
 LineCollection, перерисовка PatchCollection

Сообщение Гость »


Я пытаюсь создать блокнот Jupyter с графиком matplotlib, в котором LineCollection и PatchCollection (кругов) можно изменить с помощью ползунка:
>
импортировать numpy как np импортировать matplotlib.pyplot как plt из matplotlib.collections импортировать LineCollection, CircleCollection, PatchCollection из matplotlib.patches import Circle из взаимодействия импорта ipywidgets, FloatSlider, Layout Блокнот %matplotlib рис = plt.figure() топор = plt.axes() линии = LineCollection(np.array([[[0,0],[1,1]]])) круги = PatchCollection([Круг((.5,.5),.5)]) ax.add_collection(линии) ax.add_collection(круги) #lines.set_segments([[[0,1],[1,0]]]) #circles.set_paths([Круг((.5,.5),.1)]) взаимодействовать(лямбда s: круги.set_paths([Круг((.5,.5),s)]), s = FloatSlider(мин = 0, макс = 0,5, шаг = 01)) взаимодействовать(лямбда т:lines.set_segments([[[0,t],[1,1-t]]]), t = FloatSlider(мин = 0, макс = 1, шаг = 0,01)) Это отлично работает для LineCollection, но изменение параметра для PatchCollection не приводит к перерисовке фигуры. Изменение функции PatchCollection на включение figs.canvas.draw() решает проблему, поэтому я подумал, что PatchCollection.set_paths() в отличие от PatchCollection.set_paths() code>LineCollection.set_segments() не запускает перерисовку. Однако в строке с комментариями circles.set_paths() действительно, кажется, вызывает перерисовку. Может ли кто-нибудь объяснить мне, что происходит? Если возможно, мне бы хотелось стабильного поведения.
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»