Zeichnen Sie gewaltsam so etwas wie ein Flussdiagramm mit Python, matplotlib

Einführung

Ich habe eine numerische Berechnung durchgeführt, was meine Aufgabe ist. Das Programm ist eine Verbesserung des Python-Programms, das ich zuvor hatte, aber es beinhaltet Konvergenzberechnungen, und ich wollte schon immer so etwas wie ein einfaches Flussdiagramm erstellen, um das Berechnungsverfahren zu zeigen. Also habe ich ein Programm erstellt, um "so etwas wie ein Flussdiagramm" in Python zu erstellen. Ich habe auf verschiedene Weise darüber nachgedacht, aber am Ende konnte ich keine gute Idee finden, und der Inhalt bestand darin, den Computer das Gleiche wie Handschrift tun zu lassen, indem er Polygon und Text in den Code einbettete, anstatt mit einem Lineal und einem Bleistift auf Millimeterpapier Handschrift zu schreiben. Anfangs wollte ich nur das Flussdiagramm verwenden, aber der gleiche Ton ist für verwandte Elemente wie variable Erklärungen kühler, deshalb habe ich auch ein Programm zum Erstellen einer Tabelle erstellt. Im Wesentlichen unterscheidet es sich nicht von einem Programm für Flussdiagramme. Der Inhalt des Programms ist super primitiv, aber die Ausgabe ist schwarz und weiß, aber es kann ziemlich cool sein (Selbstzufriedenheit). Die Programmierumgebung ist Computer: MacBook Pro (Retina, 13 Zoll, Mitte 2014), Python 3.5.2. Da ich in Übersee arbeite, besteht keine besondere Notwendigkeit, auf Japanisch auszugeben. Bitte haben Sie Verständnis dafür, dass die Ausgabe ein schlechter englischer Ausdruck ist.

Was sind die Vorteile, wenn Sie so etwas in Python erstellen? .. .. .. .. ..

Ist es so ein Ort? Schließlich möchte ich einen Weg finden, um eine solche Figur effizienter zu zeichnen.

Programmierung

Ein Teil des Programmkörpers ist unten dargestellt.

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()
Programm Beschreibung
py_fig_flowchart.py Programm zur Erstellung von Flussdiagrammen
py_fig_table.py Tabellenersteller

Lieferbares Produkt

Die linke Seite des Ergebnisdiagramms ist das Tabellenerstellungsprogramm, und die rechte Seite ist diejenige, die vom Flussdiagrammerstellungsprogramm gezeichnet wird, das mit ImageMagick kombiniert wird, um ein Bild zu erstellen. Das Ausführungsskript lautet wie folgt.

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

Die Ergebnisse sind wie folgt. Es gibt keine "Ist dieser Fluss eine Endlosschleife?"

fig_floodroutine.png

das ist alles

Recommended Posts

Zeichnen Sie gewaltsam so etwas wie ein Flussdiagramm mit Python, matplotlib
Zeichnen Sie gewaltsam so etwas wie ein Flussdiagramm mit Python, matplotlib
[Python] Wie zeichnet man mit Matplotlib ein Liniendiagramm?
[Python] Wie zeichnet man mit Matplotlib ein Streudiagramm?
Zeichnen Sie mit matplotlib ein loses Diagramm
Zeichne Riapnov Fractal mit Python, matplotlib
# Ich habe so etwas wie Vlookup mit Python # 2 ausprobiert
Zeichnen Sie eine flache Oberfläche mit einem Matplotlib-3D-Diagramm
[Python] Zeichnen Sie mit Dash Cytoscape ein gerichtetes Diagramm
Versuchen Sie, mit Python eine Lebenskurve zu zeichnen
[Python] Zeichnen mehrerer Diagramme mit Matplotlib
[Python] Zeichne eine Mickey Mouse mit Turtle [Anfänger]
[Python] Wie zeichnet man mit Matplotlib ein Histogramm?
Visualisiere grib2 auf einer Karte mit Python (matplotlib)
Heatmap von Python + matplotlib
Zeichnen Sie ein Faltlinien- / Streudiagramm mit Python Matplotlib für die CSV-Datei (2 Spalten).
[Python] Zeichnen Sie ein Qiita-Tag-Beziehungsdiagramm mit NetworkX
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
[Python] Weg zur Schlange (5) Spiele mit Matplotlib
Zeichnen Sie mit NetworkX ein Diagramm
Machen Sie eine Lotterie mit Python
Zeichne ein Herz in Python
Erstellen Sie ein Verzeichnis mit Python
Zeichnen Sie mit networkx ein Diagramm
Machen Sie so etwas wie einen Python-Interpreter mit Visual Studio Code
Ich habe mit Tkinter of Python ein Puzzlespiel (wie) gemacht
Erweitern Sie ein in Python verschachteltes Wörterbuch, um etwas wie Pandas MultiIndex zu tun
[Python] Was ist eine with-Anweisung?
Löse ABC163 A ~ C mit Python
Bedienen Sie den Belegdrucker mit Python
Zeichne ein Diagramm mit Julia + PyQtGraph (2)
[Road to Intermediate Python] Rufen Sie eine Klasseninstanz wie eine Funktion mit __call__ auf
Lassen Sie uns eine GUI mit Python erstellen.
So etwas wie JS setTimeout in Python
Löse ABC166 A ~ D mit Python
Zeichne Japanisch mit matplotlib auf Ubuntu
Zeichnen Sie eine Streudiagrammmatrix mit Python
Erstellen Sie eine virtuelle Umgebung mit Python!
Ich habe mit Python eine Lotterie gemacht.
Zeichne einen schönen Kreis mit Numpy
Zeichne ein Diagramm mit Julia + PyQtGraph (1)
Erstellen einer virtuellen Umgebung mit Python 3
Zeichne ein Diagramm mit Julia + PyQtGraph (3)
Löse ABC168 A ~ C mit Python
Zeichnen Sie eine Aquarellillusion mit Kantenerkennung in Python3 und openCV3
Erstellen Sie ein Empfehlungssystem mit Python
Zeichnen Sie mit Python Turtle eine Koch-Kurve
Fühlen wir uns wie ein Materialforscher mit Python [Einführung in Pymatgen]
Heatmap mit Dendrogramm in Python + Matplotlib
[Python] Generiere ein Passwort mit Slackbot
Löse ABC162 A ~ C mit Python
Zeichnen Sie ein Diagramm mit Pandas + XlsxWriter
Löse ABC167 A ~ C mit Python
Löse ABC158 A ~ C mit Python
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Zeichnen Sie eine Illustration mit Python + OpenCV
Zeichnen Sie einfach Diagramme mit matplotlib