Dessinez de force quelque chose comme un organigramme avec Python, matplotlib

introduction

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.

la programmation

Une partie du corps du programme est illustrée ci-dessous.

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 Description
py_fig_flowchart.py Programme de création d’organigrammes
py_fig_table.py Créateur de table

Produit livrable

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?"

fig_floodroutine.png

c'est tout

Recommended Posts

Dessinez de force quelque chose comme un organigramme avec Python, matplotlib
Dessinez de force quelque chose comme un organigramme avec Python, matplotlib
[Python] Comment dessiner un graphique linéaire avec Matplotlib
[Python] Comment dessiner un diagramme de dispersion avec Matplotlib
Dessinez un graphique lâche avec matplotlib
Dessinez Riapnov Fractal avec Python, matplotlib
# J'ai essayé quelque chose comme Vlookup avec Python # 2
Dessinez une surface plane avec un graphique 3D matplotlib
[Python] Dessinez un graphe orienté avec Dash Cytoscape
Essayez de dessiner une courbe de vie avec python
[Python] Comment dessiner plusieurs graphiques avec Matplotlib
[Python] Dessinez un Mickey Mouse avec une tortue [Débutant]
[Python] Comment dessiner un histogramme avec Matplotlib
Visualiser grib2 sur une carte avec python (matplotlib)
Carte thermique par Python + matplotlib
Dessinez une ligne de pliage / diagramme de dispersion avec python matplotlib pour fichier CSV (2 colonnes)
[Python] Dessinez un diagramme de relation de balises Qiita avec NetworkX
[Python] Comment créer un histogramme bidimensionnel avec Matplotlib
[Python] Road to the Serpent (5) Jouez avec Matplotlib
Dessinez un graphique avec NetworkX
Faites une loterie avec Python
Dessinez un cœur en Python
Créer un répertoire avec python
Dessinez un graphique avec networkx
Faites quelque chose comme un interpréteur Python avec Visual Studio Code
J'ai fait un jeu de puzzle (comme) avec Tkinter of Python
Développez un dictionnaire imbriqué Python pour faire quelque chose comme MultiIndex de Pandas
[Python] Qu'est-ce qu'une instruction with?
Résoudre ABC163 A ~ C avec Python
Faites fonctionner l'imprimante de reçus avec python
Tracez un graphe avec Julia + PyQtGraph (2)
[Road to Intermediate Python] Appelez une instance de classe comme une fonction avec __call__
Faisons une interface graphique avec python.
Quelque chose comme JS setTimeout en python
Résoudre ABC166 A ~ D avec Python
Dessinez le japonais avec matplotlib sur Ubuntu
Dessinez une matrice de diagramme de dispersion avec python
Créez un environnement virtuel avec Python!
J'ai fait une loterie avec Python.
Dessinez un beau cercle avec numpy
Tracez un graphique avec Julia + PyQtGraph (1)
Créer un environnement virtuel avec Python 3
Dessinez un graphique avec Julia + PyQtGraph (3)
Résoudre ABC168 A ~ C avec Python
Dessinez une illusion d'aquarelle avec détection des contours en Python3 et openCV3
Créer un système de recommandation avec python
Dessinez une courbe Koch avec Python Turtle
Sentons-nous comme un chercheur de matériaux avec python [Introduction à pymatgen]
Heatmap avec dendrogramme en Python + matplotlib
[Python] Générer un mot de passe avec Slackbot
Résoudre ABC162 A ~ C avec Python
Dessinez un graphique avec des pandas + XlsxWriter
Résoudre ABC167 A ~ C avec Python
Résoudre ABC158 A ~ C avec Python
Faisons un graphe avec python! !!
Dessinez une illustration avec Python + OpenCV
Dessinez facilement des graphiques avec matplotlib