我已经在sympy中创建了一个图,并想自定义x轴和y轴。我想将它们变成红色并使它们成为虚线。我已经环顾四周并尝试了一些东西,但似乎没有工作,例如:
plt.axhline(linewidth = 1, linestyle = '--', color = 'red')
plt.axvline(linewidth = 1, linestyle = '--', color = 'red')
字符串
有没有一些方法可以做到这一点,实际上会工作?
先谢谢了!
我已经在sympy中创建了一个图,并想自定义x轴和y轴。我想将它们变成红色并使它们成为虚线。我已经环顾四周并尝试了一些东西,但似乎没有工作,例如:
plt.axhline(linewidth = 1, linestyle = '--', color = 'red')
plt.axvline(linewidth = 1, linestyle = '--', color = 'red')
字符串
有没有一些方法可以做到这一点,实际上会工作?
先谢谢了!
1条答案
按热度按时间z31licg01#
更新
Sympy的
plot(...)._backend.ax
现在(2023年11月)返回的不是单个Axes对象,而是一个Axes列表-通常带有单个元素。你必须写
p._backend.ax[0].method_of_axes()
Sympy的
*/sympy/plotting/plot.py
源代码有这样的注解:特别是如果你需要发布准备图形,这个模块对你来说是不够的-只需获取
_backend
属性并直接添加任何你想要的东西。在matplotlib的情况下(在python中绘制数据的常见方式),只需复制_backend.fig
(图)和_backend.ax
(轴),并像在任何其他matplotlib对象上一样处理它们。这意味着,一般来说,Sympy的图可以通过修改底层的
Axes
对象来调整,可以使用Sympy的plot
示例的_backend
属性来访问该对象。为了解决您的特定请求,每个
Axes
包含Spine
对象的OrderedDict
,您想要修改的对象是'bottom
和'left'
(要修改这些对象,您必须使用它们的set_x
方法)字符串
生产x1c 0d1x
注意事项:如果使用
p.save('...')
,那么图形将重置,并且他们将错过他们所做的任何调整,因此我使用了底层Figure
对象的savefig
方法,再次使用_backend
属性访问。