http://geoffboeing.com/2015/04/animated-3d-plots-python/
Ce blog est cool, alors achetez la version japonaise, créez-la et partagez-la!
L'essentiel est que ce blog seul ne fonctionnera pas avec Python 3. En premier lieu, images2gif est python2.
Ainsi, dès que vous googlez "images2gif python3", vous accéderez au Github suivant
https://github.com/isaacgerg/images2gif
Pour le moment, faites cela localement, python images2gif.py
et espérons-le. Le Gif suivant peut être créé.
Et intégrez-le à celui du blog ci-dessus!
Si vous avez déjà installé images2gif avec python3, supprimez-le avec pip uninstall images2gif
ou quelque chose.
Ensuite, importez images2gif.py directement depuis Github ci-dessus.
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)
Maintenant, vous avez ce qui suit! (L'image est compressée et Gif ne fonctionne pas avec ...)
Il n'y a aucun moyen, alors créez une version à 5 images ↓
Recommended Posts