Cet article est une suite de Dessin de lignes de contour dans les manuels (Fortan + gnuplot).
L'auteur étudie la dynamique des fluides apprise au département d'ingénierie de l'université, mais au début de la dynamique des fluides (théorie des fluides complète), des grandeurs physiques telles que le potentiel de vitesse $ \ phi $ et la fonction d'écoulement $ \ psi $ apparaissent, et ces quantités Il existe quelques exemples de flux typiques utilisant (double face 87% BA% E3% 81% 97) etc.). Les courbes de niveau bidimensionnelles de ces quantités sont représentées sous forme de figures dans le manuel, mais j'ai le sentiment que si je peux les dessiner moi-même, ma compréhension s'approfondira. Cependant, il est souvent difficile de tracer des courbes de niveau d'une certaine quantité physique sur une surface bidimensionnelle avec un service logiciel de graphe qui peut facilement dessiner la fonction $ y = f (x) $. Dans l'article précédent, j'ai essayé de dessiner avec Fortran + gnuplot, mais j'aimerais l'essayer avec un langage de programmation populaire, donc cette fois je vais dessiner des courbes de niveau en utilisant Python.
Puisque Python est multi-plateforme, installez-le en fonction de chaque environnement. Il existe différentes façons d'installer Python, veuillez donc le vérifier vous-même et choisir celui qui vous convient. Pour ceux qui éprouvent des difficultés à installer ou ne souhaitent pas installer divers éléments sur leur PC, nous vous recommandons d'utiliser Google Colaboratory.
En plus de Python lui-même, numpy et matplotlib sont nécessaires en tant que modules. Si vous souhaitez utiliser Python, etc. qui est à l'origine inclus dans le système d'exploitation, installez-le en plus.
L'article précédent est destiné à la même éruption / aspiration. En supposant que la distance à l'origine est $ r $, le potentiel de vitesse $ \ phi $ en trois dimensions peut être exprimé comme suit.
Le module matplotlib de Python peut dessiner différents types de dessins, de sorte que le travail ne peut être résolu qu'avec Python.
Créez un script Python dans le flux. Puisque nous ne faisons pas de choses avancées, nous ne considérons pas l'orientation objet.
Un exemple de script est présenté ci-dessous.
contour.py
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
xmin = -10.0
xmax = 10.0
ymin = -10.0
ymax = 10.0
delta = 0.1
x = np.arange(xmin,xmax,delta)
y = np.arange(xmin,xmax,delta)
m = 1.0
X, Y = np.meshgrid(x,y)
r = np.sqrt(X**2 + Y**2)
Z = -m/r
fig, ax = plt.subplots(figsize=(6,6))
levels = np.arange(-1.0,0.0,0.2)
cont = ax.contour(X,Y,Z,levels)
cont.clabel(fmt='%1.1f', fontsize=12)
plt.show()
Tout d'abord, les valeurs de coordonnées sont placées dans $ x $ et $ y $, et $ X $ et $ Y $ sont convertis en points de grille. Il existe deux façons de dessiner un graphique dans matplotlib, mais la méthode utilisant l'objet Artist est utilisée. C'est l'un des avantages de matplotlib que vous pouvez mettre des nombres dans les courbes de niveau, alors je les mets.
Le script ci-dessus est exécuté sur le terminal comme suit, et le diagramme de contour apparaît dans une fenêtre séparée.
python contour.py
Si vous voulez enregistrer l'image, cliquez sur le bouton Enregistrer dans cette fenêtre de dessin pour l'enregistrer, ou changez le plot.show ()
à la fin du script comme suit.
plt.savefig('c2.png')
J'ai présenté comment dessiner facilement des lignes de contour en utilisant la fonction de matplotlib de Python. Cette fois, seuls les paramètres minimums nécessaires pour matplotlib sont définis, mais comme matplotlib peut être défini en détail à chaque coin du graphique, il est possible de dessiner correctement et proprement la figure dans le manuel si vous êtes particulier à ce sujet. ..
Recommended Posts