J'ai fait un calcul numérique, c'est mon travail. Le programme est une amélioration de celui de Python que j'avais auparavant, mais il implique des calculs de convergence, et j'ai toujours voulu créer quelque chose comme un simple organigramme pour montrer la procédure de calcul. J'ai donc créé un programme pour créer «quelque chose comme un organigramme» en Python. J'y ai pensé de différentes manières, mais en fin de compte, je n'ai pas pu trouver une bonne idée, et le contenu consistait simplement à laisser l'ordinateur faire la même chose que l'écriture manuscrite en incorporant Polygon et texte dans le code au lieu d'écrire à la main avec une règle et un crayon sur du papier millimétré. Au début, j'avais l'intention d'utiliser uniquement l'organigramme, mais le même ton est plus froid pour les éléments connexes tels que les explications variables, j'ai donc également créé un programme pour créer un tableau. En substance, ce n'est pas différent d'un programme pour les organigrammes. Le contenu du programme est super primitif, mais la sortie est en noir et blanc, mais il peut être assez cool (auto-satisfaction). L'environnement de programmation est Computer: MacBook Pro (Retina, 13 pouces, mi-2014), Python 3.5.2. Puisque je travaille à l'étranger, il n'y a pas de besoin particulier de sortir en japonais, alors comprenez bien que le résultat est une mauvaise expression anglaise.
Quels sont les avantages de créer quelque chose comme ça en Python? .. .. .. .. ..
Est-ce un tel endroit? Finalement, j'aimerais concevoir un moyen de dessiner un tel chiffre plus efficacement.
Une partie du corps du programme est illustrée ci-dessous.
, Mais il est difficile à utiliser, nous nous préparons donc à la procédure pour changer cela en l'affichage de
B = [0, 1, 2, ...]
`. Les coordonnées réelles de l'axe vertical sont affichées par
plt.yticks (A, B) ''.python
# Flowchart
from math import *
import sys
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon
from matplotlib.ticker import *
param=sys.argv
iflag=int(param[1]) # flag for axis drawing
# 0: without axis and grid, 1: with axis and grid
# drawing area: w x h = 16 x 25 imaged A4 paper
xmin=-8
xmax=8
ymin=0
ymax=25
dh=0.7 # height of one row
A=[] # actural y-axis
B=[] # grid number in y-axis
for i in range(0,int(ymax//dh)+1):
s='{0:.1f}'.format(dh*i)
A=A+[float(s)]
B=B+[i]
fnameF='fig_flowchart.png'
fig = plt.figure()
ax1=plt.subplot(111)
ax1 = plt.gca()
ax1.set_xlim([xmin,xmax])
ax1.set_ylim([ymax,ymin])
aspect = (abs(ymax-ymin))/(abs(xmax-xmin))*abs(ax1.get_xlim()[1] - ax1.get_xlim()[0]) / abs(ax1.get_ylim()[1] - ax1.get_ylim()[0])
ax1.set_aspect(aspect)
if iflag==0:
plt.axis('off')
else:
ax1.tick_params(labelsize=6)
ax1.xaxis.set_major_locator(MultipleLocator(1))
ax1.yaxis.set_major_locator(MultipleLocator(dh))
plt.yticks(A,B)
plt.grid(which='both',lw=0.3, color='#cccccc',linestyle='-')
#################################################
# #
# (something to draw) #
# #
#################################################
plt.savefig(fnameF, dpi=200, bbox_inches="tight", pad_inches=0.2)
#plt.show()
Programme th> | Description th> tr> |
---|---|
py_fig_flowchart.py td> | Programme de création d’organigrammes td> tr > |
py_fig_table.py td> | Créateur de table td> tr > |
Le côté gauche du diagramme de résultat est le programme de création de table, et le côté droit est celui dessiné par le programme de création d'organigramme, qui est combiné avec ImageMagick pour créer une image. Le script d'exécution est le suivant.
a.txt
python py_fig_flowchart.py 0
python py_fig_table.py 0
convert -trim fig_flowchart.png -bordercolor 'white' -border 10x10 fig_flowchart.png
convert -trim fig_table.png -bordercolor 'white' -border 10x10 fig_table.png
montage -tile 2x1 -geometry 465x670 fig_table.png fig_flowchart.png fig_floodroutine.png
Les livrables sont les suivants. Il n'y a rien de tel que "Ce flux est-il une boucle infinie?"
c'est tout
Recommended Posts