Sympy:设置纵横比

3

我是使用Spyder的IPython控制台尝试快速绘制函数的参数图。目前,我主要关注x=cos(t),y=sin(t)。我运行了以下命令:

import sympy as sp
sp.init_session()
p = plotting.plot_parametric(cos(t),sin(t),(t,0,2*pi))

and I get an oblong plot of the curve.

If I enter

p.aspect_ratio = (1,1)
p.show()

没有任何变化。我尝试了其他纵横比,但仍然没有任何变化。

在查看这个答案之后In sympy plotting, how can I get a plot with a fixed aspect ratio?

我试着按照他们的指示尝试利用matplotlib,但是没有出现任何错误。但是当我输入

plt.show() 

没有任何显示。


在当前的sympy版本中,您可以使用plot_parametric(cos(t), sin(t), (t, 0, 2 * pi), aspect_ratio=(1, 1)) - JohanC
2个回答

4

你需要使用fig.show()来展示图形。以下示例生成了一个等宽高比的图形:

import sympy as sp
sp.init_session()
p = plotting.plot_parametric(cos(t),sin(t),(t,0,2*pi))
fig = p._backend.fig
ax = p._backend.ax
ax.set_aspect('equal')
fig.show()
致谢 Sympy和绘图

相应的Sympy问题在https://github.com/sympy/sympy/issues/11764。 - Robert Pollak

1

这也可以起作用

from sympy import*
t=symbols('t')
p = plot_parametric(cos(t),sin(t),show=False)
p.aspect_ratio=(1,1)
p.show()

1
通常认为使用 from X import * 不是一个好主意,因为你可能会导入比预期更多的符号。最佳实践是使用 import X ,然后在使用它们时限定名称,例如 X.some_function(),或者使用 from X import some_function - joanis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接