Animationen erzeugen mit matplotlib und imagemagick
Hier ein Beispiel, wie man Bilder für eine Animation mit matplotlib erstellen kann, adaptiert von im Netz gefundenen Code
Der folgende Python-Code erzeugt 720 einzelne Bilder und legt diese im Dateisystem ab. Mittels magick -quality 100 *.png outputfile.mpeg
werden dann die Bilder zu einem MPEG-Video kombiniert. Hinweis: Nur unter Windows heißt der Befehl „magick“ da „convert“ auch ein Systemprogramm ist.
import matplotlib.pyplot as plt import pandas as pd import seaborn as sns from mpl_toolkits.mplot3d import Axes3D df = sns.load_dataset('iris') sns.set(style = "darkgrid") fig = plt.figure() fig.set_size_inches(16, 9) ax = fig.add_subplot(111, projection = '3d') x = df['sepal_width'] y = df['sepal_length'] z = df['petal_width'] ax.set_xlabel("sepal_width") ax.set_ylabel("sepal_lesngth") ax.set_zlabel("petal_width") c = {'setosa':'red', 'versicolor':'blue', 'virginica':'green'} ax.scatter(x, y, z,c=df['species'].apply(lambda x: c[x])) for angle in range(0, 720): ax.view_init((angle+1)/10, angle) plt.draw() plt.savefig('r:/'+str(angle).zfill(3)+'.png')
Eine kürzere Version der Animation habe ich unter https://www.youtube.com/watch?v=gdgvXpq4k1w abgelegt.
Hinweise zu anderen Konvertierungsprogrammen gibt es unter anderem hier: https://www.andrewnoske.com/wiki/Convert_an_image_sequence_to_a_movie