Erstellen Sie ein 3D-GIF mit Python3

Ich habe einen Blog gefunden, der cooles 3D in Python schreibt

http://geoffboeing.com/2015/04/animated-3d-plots-python/

Dieser Blog ist cool, also kaufe die japanische Version, mache sie und teile sie!

Das Fazit ist, dass dieser Blog alleine nicht mit Python 3 funktioniert. In erster Linie ist images2gif python2.

Sobald Sie also "images2gif python3" googeln, erreichen Sie den folgenden Github

https://github.com/isaacgerg/images2gif

Tun Sie dies vorerst lokal, python images2gif.py und hoffentlich. Das folgende Gif kann erstellt werden.

test.gif

Und integrieren Sie mit dem auf dem Blog oben!

Wenn Sie images2gif bereits mit python3 installiert haben, löschen Sie es mit pip uninstall images2gif oder so.

Importieren Sie dann images2gif.py, das direkt von Github oben gebracht wurde.

Importieren Sie, was Sie benötigen (verwenden Sie es wie es aus dem Blog stammt)

import pandas as pd, numpy as np, random
import matplotlib.pyplot as plt, matplotlib.cm as cm
from mpl_toolkits.mplot3d import Axes3D
import IPython.display as IPdisplay
import glob
from PIL import Image as PIL_Image
from images2gif import writeGif

Schreiben Sie ein 3D-Bild in Axes3D (ich habe es selbst geschrieben)

gif_file_name = '3d_test'

x = np.arange(-3, 3, 0.25)
y = np.arange(-3, 3, 0.25)

x = np.arange(-3, 3, 0.25)
y = np.arange(-3, 3, 0.25)
X, Y = np.meshgrid(x, y)
Z = np.sin(X)+ np.cos(Y)

fig = plt.figure()
ax = Axes3D(fig)
ax.plot_wireframe(X, Y, Z)

Speichern Sie 100 Bilder aus verschiedenen Blickwinkeln (verwenden Sie das Blog so wie es ist).

ax.elev = 89.9
ax.azim = 270.1
ax.dist = 11.0

for n in range(100):
    if n >= 20 and n <= 22:
        ax.set_xlabel('')
        ax.set_ylabel('') #don't show axis labels while we move around, it looks weird
        ax.elev -= 0.5 #start by panning down slowly
    if n >= 23 and n <= 36:
        ax.elev -= 1.0 #pan down faster
    if n >= 37 and n <= 60:
        ax.elev -= 1.5
        ax.azim += 1.1 #pan down faster and start to rotate
    if n >= 61 and n <= 64:
        ax.elev -= 1.0
        ax.azim += 1.1 #pan down slower and rotate same speed
    if n >= 65 and n <= 73:
        ax.elev -= 0.5
        ax.azim += 1.1 #pan down slowly and rotate same speed
    if n >= 74 and n <= 76:
        ax.elev -= 0.2
        ax.azim += 0.5 #end by panning/rotating slowly to stopping position
    if n == 77:
        ax.set_xlabel('X')
        ax.set_ylabel('Y')
        ax.set_zlabel('Z')
    fig.suptitle('Practice')
    fig.savefig('images/' + 'img' + str(n).zfill(3) + '.png')

Erstellen Sie schließlich ein GIF aus 100 Bildern

images = [PIL_Image.open(image) for image in glob.glob('images/*.png')]
file_path_name = 'images/3d_test.gif'
writeGif(file_path_name, images, duration=0.1)

Jetzt haben Sie folgendes! (Das Bild ist komprimiert und Gif funktioniert nicht w ...)

3d_test.gif

Es gibt keine Möglichkeit, also erstellen Sie eine 5-Frame-Version ↓

3d_test_sm.gif

Recommended Posts

Erstellen Sie ein 3D-GIF mit Python3
Erstellen Sie ein 3D-Streudiagramm mit SciPy + matplotlib (Python)
Erstellen Sie ein Verzeichnis mit Python
Erstellen Sie mit Python + Flask einen animierten lokalen GIF-Server
[Python] So erstellen Sie mit Matplotlib ein zweidimensionales Histogramm
Erstellen Sie eine 2D-CAD-Datei ".dxf" mit Python [ezdxf]
Erstellen Sie eine Plotanimation mit Python + Matplotlib
Erstellen Sie Awaitable mit der Python / C-API
Dreidimensionale Skelettstrukturanalyse mit Python
Löse ABC166 A ~ D mit Python
Erstellen Sie eine virtuelle Umgebung mit Python!
Laden Sie das GIF-Bild mit Python + OpenCV
FizzBuzz in Python3
Erstellen Sie mit Class einen Python-Funktionsdekorator
Scraping mit Python
Erstellen Sie automatisch eine Python-API-Dokumentation mit Sphinx
Erstellen Sie mit python3 eine Wortwolke aus Ihrem Tweet
Statistik mit Python
Scraping mit Python
Python mit Go
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
2D FEM Stressanalyseprogramm von Python
Erstellen wir mit Python eine kostenlose Gruppe
Erstellen Sie schnell eine Excel-Datei mit Python #python
Twilio mit Python
In Python integrieren
Spielen Sie mit 2016-Python
AES256 mit Python
Getestet mit Python
Erstellen Sie mit Docker eine Python + uWSGI + Nginx-Umgebung
Erstellen und entschlüsseln Sie Caesar-Code mit Python
Python beginnt mit ()
Erstellen verschiedener Photoshop-Videos mit Python + OpenCV ③ Erstellen Sie verschiedene Photoshop-Videos
mit Syntax (Python)
Erstellen Sie eine Excel-Datei mit Python + Ähnlichkeitsmatrix
Löse AtCoder ABC168 mit Python (A ~ D)
Erstellen Sie mit Python 3.4 einen Worthäufigkeitszähler
Bingo mit Python
[Python] Erstellen Sie schnell eine API mit Flask
Zundokokiyoshi mit Python
Erstellen Sie eine englische Wort-App mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Erstellen Sie mit tkinter [Python] einen Rahmen mit transparentem Hintergrund.
Erstellen Sie eine GIF-Datei mit Pillow in Python
Erstellen Sie solche Testdaten mit Python (Teil 1)
[Python] Grenzachse des 3D-Graphen mit Matplotlib
Erstellen eines Hintergrundbilds mit Tupfen mit der Python-Bildbibliothek
Erstellen Sie mit Minette für Python einen LINE BOT
Erstellen Sie eine virtuelle Umgebung mit conda in Python
Erstellen Sie eine Seite, die unbegrenzt mit Python geladen wird
[Hinweis] Erstellen Sie mit Python eine einzeilige Zeitzonenklasse
Sie können auch mit Python problemlos eine GUI erstellen
Erstellen Sie mit Sublime Text3 eine Python3-Build-Umgebung
Löse A ~ D des Yuki-Codierers 247 mit Python
Erstellen Sie eine Farbleiste mit Python + Qt (PySide)