Python -- matplotlib 椭圆曲线

Posted

技术标签:

【中文标题】Python -- matplotlib 椭圆曲线【英文标题】:Python -- matplotlib elliptic curves 【发布时间】:2013-11-14 09:10:27 【问题描述】:

我正在自学 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() 也会解决这个问题,但显然不是。我还打算让它在你点击你想要的点并计算它的地方进行交互,但是查看文档似乎有很多交互鼠标选项,但我没有看到通过单击创建一些事件的鼠标交互在图表上的一个点上(在第三次阅读之后我仍然想念它)。

我刚从pyplot summary on matplotlib 出发,但我没有看到我在这里做错了什么。椭圆曲线的图很遥远,甚至没有接近。

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

【问题讨论】:

【参考方案1】:

是的,你是对的,你没有做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()

我有这个情节:

这是你需要的吗?

【讨论】:

是的,谢谢,这就是我想要达到的基础知识。 +1 并接受。不确定您是否碰巧知道如何突出显示/显示曲线上的特定点并在它们之间画一条线。 不客气。我也不确定,但您可以创建另一个问题并描述您想要的内容。

以上是关于Python -- matplotlib 椭圆曲线的主要内容,如果未能解决你的问题,请参考以下文章

python使用matplotlib可视化余弦曲线cosine使用plot函数可视化余弦曲线

使用Python matplotlib做动态曲线

Python使用matplotlib绘制三维曲线

绘制/计算指数曲线的问题(python、matplotlib、pandas)

使用matplotlib在python中绘制曲线决策边界

python matplotlib 生成x的三次方曲线图