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()いましたが、明らかにそうではありませんでした. また、必要なポイントをクリックして計算するインタラクティブにしようとしましたが、ドキュメントを見ると、多くの相互作用マウスオプションのように見えますが、クリックすることでイベントを作成するマウス相互作用は見られませんチャート上のポイントで(3回目に読んだ後でも、まだ見逃しています)。

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 に答える