Animált GIF-be folyamat ábra készítés
🧰 Lehetséges eszközök és könyvtárak
1. Matplotlib + Pillow (GIF animációhoz)
Statikus folyamatábra képkockák generálása
matplotlib
-pel.Ezekből animált GIF készítése
Pillow
-lal.
2. Manim (Matematikai animációs könyvtár)
Nagyon rugalmas, akár ikonokat és vonalakat is animálhatsz.
Videó formátumban exportálható.
3. Plotly + Dash (Webes interaktív megoldás)
Interaktív folyamatábrák, akár animációval.
Webes megjelenítéshez ideális.
4. Aspose.Diagram for Python
Professzionális diagramgenerálás, akár Visio-szerű folyamatábrák.
Exportálható SVG, PNG, PDF stb.
Minta
import matplotlib.pyplot as plt
from PIL import Image
import os
# Lépések definiálása
steps = ["Start", "Input", "Process", "Decision", "End"]
images = []
# Mappa létrehozása
os.makedirs("frames", exist_ok=True)
# Képkockák generálása
for i, step in enumerate(steps):
fig, ax = plt.subplots(figsize=(6, 4))
ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
ax.axis('off')
# Előző lépések megjelenítése
for j in range(i + 1):
ax.text(5, 9 - j*2, steps[j], fontsize=14, ha='center', bbox=dict(boxstyle="round", facecolor="lightblue"))
if j > 0:
ax.annotate("", xy=(5, 9 - (j-1)*2 - 0.5), xytext=(5, 9 - j*2 + 0.5),
arrowprops=dict(arrowstyle="->", lw=2))
# Mentés
filename = f"frames/frame_{i}.png"
plt.savefig(filename)
images.append(Image.open(filename))
plt.close()
# GIF mentése
images[0].save("folyamatabra.gif",
save_all=True,
append_images=images[1:],
duration=800,
loop=0)
import matplotlib.pyplot as plt
from PIL import Image
import os
# Lépések definiálása
steps = ["Start", "Input", "Process", "Decision", "End"]
images = []
# Mappa létrehozása
os.makedirs("frames", exist_ok=True)
# Képkockák generálása
for i, step in enumerate(steps):
fig, ax = plt.subplots(figsize=(6, 4))
ax.set_xlim(0, 10)
ax.set_ylim(0, 10)
ax.axis('off')
# Előző lépések megjelenítése
for j in range(i + 1):
y_pos = 9 - j * 2
ax.text(5, y_pos, steps[j], fontsize=14, ha='center',
bbox=dict(boxstyle="round", facecolor="lightblue"))
# Nyíl az előző elemhez (felülről lefelé)
if j > 0:
ax.annotate("",
xy=(5, y_pos + 1.2), # nyíl kezdete (felül)
xytext=(5, y_pos + 2 - 0.2), # nyíl vége (alul)
arrowprops=dict(arrowstyle="->", lw=2))
# Mentés
filename = f"frames/frame_{i}.png"
plt.savefig(filename)
images.append(Image.open(filename))
plt.close()
# GIF mentése
images[0].save("folyamatabra.gif",
save_all=True,
append_images=images[1:],
duration=800,
loop=0)
Megjegyzések
Megjegyzés küldése