Исходный код Sympy */sympy/plotting/plot.py
содержит следующий комментарий:
Особенно, если вам нужны графики, готовые к публикации, и вам недостаточно этого модуля - просто получите атрибут _backend
и добавьте все, что вы хочу прямо к этому. В случае matplotlib (общий способ отображения данных в python) просто скопируйте _backend.fig
, который является цифрой, и _backend.ax
, который является осью, и работайте с ними так же, как с любым другим объектом matplotlib.
Это означает, что в общем случае сюжеты Sympy могут быть изменены, изменяя базовый объект Axes
, доступ к которому можно получить с помощью атрибута _backend
экземпляра plot
Sympy.
Чтобы удовлетворить ваши указанные c запросы, каждый Axes
содержит OrderedDict
из Spine
объектов, которые вы хотите изменить, это 'bottom
'и 'left'
(для изменения этих объектов у вас есть использовать их set_x
методы)
In [33]: from sympy import *
...: x = symbols('x')
...: p = plot(sin(x))
...: for spine in ('bottom', 'left'):
...: p._backend.ax.spines[spine].set_linestyle((0, (5, 10)))
...: p._backend.ax.spines[spine].set_edgecolor('red')
...: p._backend.fig.savefig('Figure_1.png')
производит
Примечание: если использовать p.save('...')
, то цифра сбрасывается, и они будут Я пропустил любые изменения, которые они сделали, поэтому я использовал метод savefig
базового объекта Figure
, доступ к которому снова осуществлялся с помощью атрибута _backend
.