Skip to main content

MATLAB-like drawnow

Project description

drawnow for matplotlib

The scientific community often runs iterative code, often in the form of simulation. It's often useful to see the results after each iteration. Accordingly, MATLAB® has a nice feature that allows you to update the figure, drawnow. This repo brings the same feature to Python's matplotlib, with some extras.

Example:

image0

This is shown with imshow, but python-drawnow allows updates of any figure.

Usage:

# complete implementation of script found in test/test.py
from pylab import *
from drawnow import drawnow, figure
# if global namespace, import plt.figure before drawnow.figure

def approx(x, k):
    """Approximate x with k singular values"""
    ...

figure(figsize=(7, 7/2))
def draw_fig():
    subplot(1, 2, 1)
    imshow(x)

    subplot(1, 2, 2)
    imshow(x_hat)
    #show()

x = imread('test-data/mandrill.png').mean(axis=2)
k_values = around(logspace(0, 2, num=10))
for k in k_values:
    x_hat = approx(x, k)
    drawnow(draw_fig)

Documentation

If you want to wait for confirmation after update or the option to drop into a debugger, call drawnow(function_to_draw_figure, confirm=True).

If you only want to show the figure once, call drawnow(function_to_draw_figure, show_once=True). The full documentation is included in the doc strings. Use drawnow? or help(drawnow) to see these docs.

Jupyter/Spyder

Try running the folloowing code in a Jupyter input cell/in the console/etc:

%matplotlib

This will disable the Matplotlin inline mode and use the default plotting backend. For more detail, see the IPython plotting documentation.

Installation

Two options:

  1. Run pip install drawnow.
  2. Download this repository and run python setup.py install.

Option 2 assumes a working Python installation with pip. I suggest Anaconda's distribution: https://www.anaconda.com/distribution/ For other options, see https://realpython.com/installing-python/.

Changes to code

This does require small changes to your code. All it should really amount to is moving figure(); plot(...); show() inside a function; not much.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

drawnow-0.72.5.tar.gz (4.1 kB view details)

Uploaded Source

Built Distribution

drawnow-0.72.5-py3-none-any.whl (4.3 kB view details)

Uploaded Python 3

File details

Details for the file drawnow-0.72.5.tar.gz.

File metadata

  • Download URL: drawnow-0.72.5.tar.gz
  • Upload date:
  • Size: 4.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for drawnow-0.72.5.tar.gz
Algorithm Hash digest
SHA256 9d1855605b2ec6ebc4e8a95201a7a0068eb1e2a5d1695cb1b7c462d660f32593
MD5 fed5e712a3ce17bda082fdcc743d853e
BLAKE2b-256 3f177a46bface13dab4f70b113af9cef852bdbddd8be835ef9a1f78bc1ce718a

See more details on using hashes here.

File details

Details for the file drawnow-0.72.5-py3-none-any.whl.

File metadata

  • Download URL: drawnow-0.72.5-py3-none-any.whl
  • Upload date:
  • Size: 4.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for drawnow-0.72.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4ff83a8b15f61a781edaaa2a3e6b71e2c8fd948960f188b870def701afcfa0d5
MD5 b2508e37a69c2cd99b9eed9fb0c21194
BLAKE2b-256 6b8f97b431d9b3b8cd63c4d7da165fdd4b46779b2c1118158606272b9d3a706b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page