我试图绘制一个简单的环面与sympy。我想使用的数字作为一个图像。不幸的是,纵横比的轴使图像看起来拉长。
在代码中,我尝试将aspect_ratio
更改为equal
,如下所示:
from sympy import *
from sympy.plotting import *
u,v = symbols("u, v")
r = 1
R = 2
p = plot3d_parametric_surface(cos(u)*(r*cos(v)+R), sin(u)*(r*cos(v)+R), r*sin(v), (u, 0, 2*pi), (v, 0, 2*pi), show = False)
p.aspect_ratio = "equal"
p.show()
但随后发生了这个错误:
ValueError: could not convert string to float: 'q'
这个错误导致了第1296行的plot.py
,这里有一个if语句:
if aspect != 'auto':
aspect = float(aspect[1]) / aspect[0]
所以我试着注解掉它,然后代码运行,结果略有变化。
此外,根据这个错误(在将值设置为“aa”之后),这些选项应该默认工作:
ValueError: 'aa' is not a valid value for aspect; supported values are 'auto', 'equal', 'equalxy', 'equalyz', 'equalxz'
1条答案
按热度按时间5hcedyr01#
达到你想要的结果的最好方法是使用Sympy Plotting Backends Module,其中的bug已经被修复了:
如果你安装了完整的软件包,你可以很容易地创建更多的花式图。例如,使用Plotly: