Created
October 20, 2018 08:45
-
-
Save lschwetlick/b147cba45e0b463eaf27ab36af8b781b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "# Animating multiple aspects of a figure simultaneously\n", | |
| "\nFirst, load packages and generate some data to play with. Large parts of this are lifted out of [this](https://matplotlib.org/gallery/animation/dynamic_image2.html) matplotlib tutorial." | |
| ], | |
| "metadata": {} | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "import matplotlib.animation as animation\n", | |
| "\n", | |
| "def f(x, y):\n", | |
| " return np.sin(x) + np.cos(y)\n", | |
| "\n", | |
| "x = np.linspace(0, 2 * np.pi, 120)\n", | |
| "y = np.linspace(0, 2 * np.pi, 100).reshape(-1, 1)\n", | |
| "\n", | |
| "a=np.array([23,35,46,89,45,76,90])\n", | |
| "b=np.array([43,35,26,19,95,86,70])" | |
| ], | |
| "outputs": [], | |
| "execution_count": 4, | |
| "metadata": { | |
| "collapsed": false, | |
| "outputHidden": false, | |
| "inputHidden": false | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "We call plt.subplots() to get a figure and axes handle. ims is a list of *artists*. Now what is an *artist*? In this case it seems to be a list of handles to \"drawable\" objects. So not axes objects but one hierarchy down: lines, imshows, scatters... \n", | |
| "\nEach *artist*-list corresponds to a frame. The contents of that list are applied to the frame." | |
| ], | |
| "metadata": {} | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "fig, ax = plt.subplots()\n", | |
| "\n", | |
| "ims = []\n", | |
| "\n", | |
| "for i in range(7):\n", | |
| " x += np.pi / 1.\n", | |
| " y += np.pi / 2.\n", | |
| " \n", | |
| " im1 = ax.imshow(f(x, y), animated=True)\n", | |
| " im2, = ax.plot(a[range(0,i)],b[range(0,i)],c='r',animated=True)\n", | |
| " im3 = ax.scatter(a[range(0,i)],b[range(0,i)],c='r',animated=True)\n", | |
| " \n", | |
| " ims.append([im1, im2, im3])\n", | |
| "\n" | |
| ], | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x108a734e0>" | |
| ], | |
| "image/png": [ | |
| "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\n" | |
| ] | |
| }, | |
| "metadata": { | |
| "needs_background": "light" | |
| } | |
| } | |
| ], | |
| "execution_count": 5, | |
| "metadata": { | |
| "collapsed": false, | |
| "outputHidden": false, | |
| "inputHidden": false | |
| } | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "source": [ | |
| "Now just call animation.ArtistAnimation() on the list and save. On my Mac, this save function sometimes complains when relative paths are used. No idea why, but when in doubt, use absolute paths." | |
| ], | |
| "metadata": {} | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "\n", | |
| "ani = animation.ArtistAnimation(fig, ims, interval=50, blit=True,\n", | |
| " repeat_delay=1000)\n", | |
| "\n", | |
| "ani.save('dynamic_images.mp4', writer='ffmpeg')\n", | |
| "\n#plt.show()" | |
| ], | |
| "outputs": [], | |
| "execution_count": 6, | |
| "metadata": { | |
| "collapsed": false, | |
| "outputHidden": false, | |
| "inputHidden": false | |
| } | |
| } | |
| ], | |
| "metadata": { | |
| "kernel_info": { | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "name": "python", | |
| "version": "3.6.3", | |
| "mimetype": "text/x-python", | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "pygments_lexer": "ipython3", | |
| "nbconvert_exporter": "python", | |
| "file_extension": ".py" | |
| }, | |
| "kernelspec": { | |
| "name": "python3", | |
| "language": "python", | |
| "display_name": "Python 3" | |
| }, | |
| "nteract": { | |
| "version": "0.11.9" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 4 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment