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.
Ein Teil des Programmkörpers ist unten dargestellt.
`A = [0, 0,7, 1,4, ... ]
, Aber es ist schwierig zu verwenden, deshalb bereiten wir uns auf die Prozedur vor, um dies in die Anzeige von
B = [0, 1, 2, ...]
zu ändern. Die tatsächlichen vertikalen Achsenkoordinaten werden mit ``
plt.yticks (A, B)` `` angezeigt.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 th> | Beschreibung th> tr> |
---|---|
py_fig_flowchart.py td> | Programm zur Erstellung von Flussdiagrammen td> tr > |
py_fig_table.py td> | Tabellenersteller td> tr > |
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?"
das ist alles
Recommended Posts