XLPack for Matplotlib Experimental Version 0.1
例題集
読み取り中…
検索中…
一致する文字列を見つけられません

z = (1 - x/2 + x^5 + y^3)*exp(-x^2 - y^2) の等高線を描く.


Sub Test_Contour()
    Const N = 256, Nlev = 7
    Dim X(N - 1) As Double, Y(N - 1) As Double
    Dim Z(N - 1, N - 1) As Double, Zmin  As Double, Zmax As Double
    Dim Levels(Nlev - 1) As Double
    Dim I As Integer, J As Integer
    Dim Fig As Figure, Ax As Axs, Cs As PyObject
    '-- Make data
    Call Linspace(-3, 3, N, X())
    Call Linspace(-3, 3, N, Y())
    For I = 0 To N - 1
        For J = 0 To N - 1
            Z(I, J) = (1 - X(J) / 2 + X(J) ^ 5 + Y(I) ^ 3) * Exp(-X(J) ^ 2 - Y(I) ^ 2)
            If Z(I, J) < Zmin Then Zmin = Z(I, J)
            If Z(I, J) > Zmax Then Zmax = Z(I, J)
        Next
    Next
    For I = 0 To Nlev - 1
        Levels(I) = Zmin + I * (Zmax - Zmin) / (Nlev - 1)
    Next
    '-- Plot
    Set Fig = Plt.Figure()
    Set Ax = Fig.Gca()
    Set Cs = Ax.Contour(N, N, X(), Y(), Z(), Levels())
    Call Ax.Clabel(Cs)
    Call Plt.Show
End Sub