14

我正在自学 matplotlib 和 Python,我很难为椭圆曲线绘制方程。我有等式,但我没有做y^2

到目前为止,这是我能够让自己陷入的麻烦:

from mpl_toolkits.axes_grid.axislines import SubplotZero
import matplotlib.pyplot as plt
import numpy as np
from pylab import *


def plotGraph():
    fig = plt.figure(1)
    ax = SubplotZero(fig, 111)
    fig.add_subplot(ax)

    for direction in ["xzero", "yzero"]:
        ax.axis[direction].set_axisline_style("-|>")
        ax.axis[direction].set_visible(True)

    a = 5; b = 25
    x = np.arange(-50.0, 50.0, 1.0)
    y = pow(x,3) + a*x + b

    xmin = -50; xmax = 50; ymin = -50; ymax = 50
    v = [xmin, xmax, ymin, ymax]
    ax.axis(v)

    ax.plot(x, pow(y,2))

    #grid()
    #ax.grid(color='r', linestyle='-', linewidth=2)

    show()


def main():
    plotGraph()


if __name__ == '__main__':
    main()

之所以axis()存在,是因为我还试图获得一个带有网格线的更清晰的图表,我认为这grid()也会解决这个问题,但显然不是。我还打算让它在你点击你想要的点并计算它的地方进行交互,但是查看文档似乎有很多交互鼠标选项,但我没有看到通过单击创建一些事件的鼠标交互在图表上的一个点上(在第三次阅读之后我仍然想念它)。

我只是从matplotlib 上的 pyplot 摘要开始,但我没有看到我在这里做错了什么。椭圆曲线的图很遥远,甚至没有接近。

这可能是初学者的错误,因此花一秒钟时间阅读本文的初级程序员可能会很快明白为什么我没有得到我想要的曲线。

4

1 回答 1

30

是的,你是对的,你没有做y^2。为了在 matplotlib 中绘制椭圆曲线,我使用了这段代码(在 Python 3 中测试):

import numpy as np
import matplotlib.pyplot as plt

def main():
    a = -1
    b = 1

    y, x = np.ogrid[-5:5:100j, -5:5:100j]
    plt.contour(x.ravel(), y.ravel(), pow(y, 2) - pow(x, 3) - x * a - b, [0])
    plt.grid()
    plt.show()

if __name__ == '__main__':
    main()

我有这个情节: 在此处输入图像描述

这是你需要的吗?

于 2013-11-03T19:35:45.010 回答