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.
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.
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
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)
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')
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 ...)
Es gibt keine Möglichkeit, also erstellen Sie eine 5-Frame-Version ↓
Recommended Posts