Ca matplotlib prin intermediul trage o linie de nivel

curba nivelului funcțional - o curbă la fiecare punct în care funcția are aceeași valoare fixă.

Pentru a desena linii de nivel în Matplotlib există mai multe caracteristici care sunt diferite de afișare în format de design grafic și modul de introducere. În general, principiul construcției liniilor de același nivel ca în desenul de diagrame tridimensionale și grafice privind punctele inegal împrăștiate. Datele brute pot fi specificate în două formate:

  1. Sub formă de matrici tridimensionale care descriu grila bidimensional și valoarea funcției la nodurile acestei grile. În acest caz, vom folosi funcțiile și contur contourf.
  2. Sub formă de matrice tridimensionale care descriu punct situat arbitrar pe planul și valoarea funcției la aceste puncte. În acest caz, vom folosi funcțiile și tricontourf tricontour.

În primul rând, considerăm cazul în care datele prezentate în formă de matrici bidimensionale. În acest articol, vom trage funcțiile la nivel de linie definită prin următoarea formulă:

În primul rând vom construi un grafic tridimensional al acestei funcții, să ne imaginăm cum arată această funcție:

pylab import
din mpl_toolkits. Axes3D import mplot3d
NumPy import


def makeData # 40; # 41; :
x = NumPy. rază de acțiune # 40; - 10. 10. 0,05 # 41;
y = NumPy. rază de acțiune # 40; - 10. 10. 0,05 # 41;
xgrid, ygrid = NumPy. meshgrid # 40; x, y # 41;

zgrid = # 40; NumPy. păcat # 40; xgrid * 0.3 # 41; * NumPy. cos # 40; ygrid * 0,75 # 41; /
# 40; 1 + NumPy. abs # 40; xgrid * ygrid # 41; * 0,05 # 41; # 41;
reveni xgrid, ygrid, zgrid


dacă __name__ == '__main__':
x, y, z = makeData # 40; # 41;

Fig = pylab. figura # 40; # 41;
Axele = Axes3D # 40; smochin # 41;

axe. plot_surface # 40; x, y, z # 41;

pylab. spectacol # 40; # 41;

În forma tridimensională a acestei funcții este următoarea:

Ca matplotlib prin intermediul trage o linie de nivel

linii de desen nivel

Pentru a construi nivelul liniei de date care este definită sub forma unor matrici tridimensionale (date situate la nodurile unei grile dreptunghiulare), se poate utiliza funcțiile sau contourf modulului contur pylab. Diferența dintre aceste două funcții este aceea că contourf. în contrast cu conturul. Se umple zona dintre liniile de nivel de culoare solidă. Aceste funcții au un număr de opțiuni pentru a personaliza aspectul grafic, dar acum ele pot fi ignorate și a trecut la o funcție, numai datele pentru care aveți nevoie pentru a construi o linie de nivel. De exemplu:

pylab import
NumPy import


def makeData # 40; # 41; :
x = NumPy. rază de acțiune # 40; - 10. 10. 0,05 # 41;
y = NumPy. rază de acțiune # 40; - 10. 10. 0,05 # 41;
xgrid, ygrid = NumPy. meshgrid # 40; x, y # 41;

zgrid = # 40; NumPy. păcat # 40; xgrid * 0.3 # 41; * NumPy. cos # 40; ygrid * 0,75 # 41; /
# 40; 1 + NumPy. abs # 40; xgrid * ygrid # 41; * 0,05 # 41; # 41;
reveni xgrid, ygrid, zgrid


dacă __name__ == '__main__':
x, y, z = makeData # 40; # 41;
pylab. contur # 40; x, y, z # 41;

pylab. spectacol # 40; # 41;

Rezultatul va arăta după cum urmează: