gpt4 book ai didi

python - 在 sympy 绘图中,如何获得具有固定纵横比的绘图?

转载 作者:太空狗 更新时间:2023-10-30 00:10:00 25 4
gpt4 key购买 nike

如果我用这段代码画一个圆圈

from sympy import *
x, y = symbols('x y')
p1 = plot_implicit(Eq(x**2 +y**2, 1),aspect_ratio=(1.,1.))

我会得到一个像这样的图形窗口

enter image description here

现在纵横比不是我所期望的,因为我看到的是椭圆而不是圆。此外,如果我改变 window 的纵横比(拖动窗口的右下角),我也会改变绘图的纵横比......下图是我拖动角后得到一个圆圈:

enter image description here

当您设置axis equal 时,我想得到一个类似于您在 Matlab 中得到的图,参见 http://it.mathworks.com/help/matlab/creating_plots/aspect-ratio-for-2-d-axes.html当你画一个椭圆时

enter image description here

我错过了什么?

我正在使用 Jupyter,笔记本服务器的版本是 4.1.0,运行在:Python 2.7.11 |Anaconda 2.5.0(64 位)| (默认,2015 年 12 月 6 日,18:08:32)[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)]

最佳答案

我不确定 Sympy 的稳定 API 是否涵盖了这一点,但您可以提取 matplotlib 的图形和轴实例并使用标准 matplotlib 调用来更改绘图的外观:

import matplotlib.pyplot as plt
import sympy as sy

x, y = sy.symbols('x y')
p1 = sy.plot_implicit(sy.Eq(x**2 +y**2, 4))
fg, ax = p1._backend.fig, p1._backend.ax # get matplotib's figure and ax

# Use matplotlib to change appearance:
ax.axis('tight') # list of float or {‘on’, ‘off’, ‘equal’, ‘tight’, ‘scaled’, ‘normal’, ‘auto’, ‘image’, ‘square’}
ax.set_aspect("equal") # 'auto', 'equal' or a positive integer is allowed
ax.grid(True)
fg.canvas.draw()


plt.show() # enter matplotlib's event loop (not needed in Jupyter)

这给出: Tight Axis with equal aspect ratio

关于python - 在 sympy 绘图中,如何获得具有固定纵横比的绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36505768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com