![]() |
XLPack for Matplotlib Experimental Version 0.1
例題集
|
z = (1 - x/2 + x^5 + y^3)*exp(-x^2 - y^2) の等高線(塗りつぶしあり)を描く.
Sub Test_Contourf()
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()
Call Ax.Grid
Set Cs = Ax.Contourf(N, N, X(), Y(), Z(), Levels())
Call Fig.Colorbar(Cs)
Call Plt.Show
End Sub