[Introduction aux mathématiques à partir de Python](https://www.amazon.co.jp/Python%E3%81%8B%E3%82%89%E3%81%AF%E3%81%98%E3%82% J'ai acheté un livre intitulé 81% E3% 82% 8B% E6% 95% B0% E5% AD% A6% E5% 85% A5% E9% 96% 80-Amit-Saha / dp / 4873117682). Comme c'était un gros problème, j'ai décidé de dessiner un graphique en me référant au "Chapitre 2 Visualiser les données avec un graphique". J'ai aimé la jolie silhouette, alors j'ai décidé de dessiner: coeur:.
Tout d'abord, créez un fichier de configuration pour matplotlib comme préparation préliminaire. Il était nécessaire de spécifier backend
pour afficher le graphique dans l'environnement macOS, et font.family
pour utiliser le japonais pour le titre du graphique.
~/.matplotlib/matplotlibrc
backend : TkAgg
font.family : Ricty Diminished
Passons maintenant au sujet principal du dessin: coeur:. J'ai utilisé la formule sur la page Heart Curve.
draw_heart.py
from matplotlib import pyplot as plt
from math import pi, sin, cos
def draw_graph(x, y, title, color):
plt.title(title)
plt.plot(x, y, color=color)
plt.show()
# range()Version à virgule flottante de la fonction
# (référence)Premiers pas avec les mathématiques Commencer avec Python 2.4.2.1 Génération de nombres à virgule flottante équidistants
def frange(start, final, increment=0.01):
numbers = []
while start < final:
numbers.append(start)
start = start + increment
return numbers
def draw_heart():
intervals = frange(0, 2 * pi)
x = []
y = []
for t in intervals:
x.append(16 * sin(t) ** 3)
y.append(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
draw_graph(x, y, title='cœur', color='#FF6597')
if __name__ == '__main__':
try:
draw_heart()
except KeyboardInterrupt:
# control +Quittez avec C.
pass
L'exécution de ce script Python dessinera un beau: heart: graph. Mignon: détendu:
La fonction frange implémentée dans le script ci-dessus pourrait être remplacée par la fonction arange de NumPy. NumPy a également des fonctions telles que «pi», «sin» et «cos», vous n'avez donc pas besoin du module «math» si vous utilisez ce module.
draw_heart.py
from matplotlib import pyplot as plt
from numpy import arange, pi, sin, cos
def draw_graph(x, y, title, color):
plt.title(title)
plt.plot(x, y, color=color)
plt.show()
def draw_heart():
intervals = arange(0, 2 * pi, 0.01)
x = []
y = []
for t in intervals:
x.append(16 * sin(t) ** 3)
y.append(13 * cos(t) - 5 * cos(2 * t) - 2 * cos(3 * t) - cos(4 * t))
draw_graph(x, y, title='cœur', color='#FF6597')
if __name__ == '__main__':
try:
draw_heart()
except KeyboardInterrupt:
pass
Recommended Posts