All Projects → williamjsdavis → SmoothLivePlot.jl

williamjsdavis / SmoothLivePlot.jl

Licence: MIT license
A Julia package for creating live-style plots during calculations.

Programming Languages

julia
2034 projects

Projects that are alternatives of or similar to SmoothLivePlot.jl

Oscar.jl
A comprehensive open source computer algebra system for computations in algebra, geometry, and number theory.
Stars: ✭ 182 (+658.33%)
Mutual labels:  julia-package
labplot
LabPlot is a FREE, open source and cross-platform Data Visualization and Analysis software accessible to everyone.
Stars: ✭ 107 (+345.83%)
Mutual labels:  plotting
ArgMacros.jl
Fast, flexible, macro-based, Julia package for parsing command line arguments.
Stars: ✭ 29 (+20.83%)
Mutual labels:  julia-package
Chia-Plot-Status
GUI Tool for beginners and experts to Monitor and Analyse Chia Plotting log files, show health and progress of running plots and estimated time to completion. No setup, configuration or installation of python or whatever required. Just install and enjoy.
Stars: ✭ 187 (+679.17%)
Mutual labels:  plotting
texfig
Utility to generate PGF vector files from Python's Matplotlib plots to use in LaTeX documents.
Stars: ✭ 58 (+141.67%)
Mutual labels:  plotting
plottr
A flexible plotting and data analysis tool.
Stars: ✭ 32 (+33.33%)
Mutual labels:  plotting
tmap
A very fast visualization library for large, high-dimensional data sets.
Stars: ✭ 146 (+508.33%)
Mutual labels:  plotting
observable-jupyter
Embed visualizations and code from Observable notebooks in Jupyter
Stars: ✭ 27 (+12.5%)
Mutual labels:  plotting
machinaris
An easy-to-use WebUI for crypto plotting and farming. Offers Plotman, MadMax, Chiadog, Bladebit, Farmr, and Forktools in a Docker container. Supports Chia, MMX, Chives, Flax, HDDCoin, and BPX among others.
Stars: ✭ 324 (+1250%)
Mutual labels:  plotting
Interactive-3D-Plotting-in-Seurat-3.0.0
This repository contains R code, with which you can create 3D UMAP and tSNE plots of Seurat analyzed scRNAseq data
Stars: ✭ 80 (+233.33%)
Mutual labels:  plotting
Introduction-to-Python-Numerical-Analysis-for-Engineers-and-Scientist
Introduction to Python: Numerical Analysis for Engineers and Scientist. In 2017, Python became the world's most popular programming language. This course covers the basic syntax, linear algebra, plotting, and more to prepare students for solving numerical problems with Python.
Stars: ✭ 110 (+358.33%)
Mutual labels:  plotting
plotex
Elixir plotting utilities library
Stars: ✭ 74 (+208.33%)
Mutual labels:  plotting
ElectricPy
Electrical Engineering Python Module
Stars: ✭ 35 (+45.83%)
Mutual labels:  plotting
pyMeteo
Meteorological routines
Stars: ✭ 59 (+145.83%)
Mutual labels:  plotting
vioplot
Development version of vioplot R package (CRAN maintainer)
Stars: ✭ 25 (+4.17%)
Mutual labels:  plotting
OMJulia.jl
Julia scripting OpenModelica interface
Stars: ✭ 31 (+29.17%)
Mutual labels:  julia-package
biggles
simple, elegant python plotting
Stars: ✭ 19 (-20.83%)
Mutual labels:  plotting
btplotting
btplotting provides plotting for backtests, optimization results and live data from backtrader.
Stars: ✭ 159 (+562.5%)
Mutual labels:  plotting
GMT.jl
Generic Mapping Tools Library Wrapper for Julia
Stars: ✭ 148 (+516.67%)
Mutual labels:  plotting
Fezzik
Brute force sysimg building for Julia
Stars: ✭ 63 (+162.5%)
Mutual labels:  julia-package

SmoothLivePlot.jl

SmoothLivePlot.jl is a Julia package for creating live-style plots during calculations.

Motivation

Updating the Juno plot plane during calculations creates new plots on top of the old ones. This produces a flickering effect e.g.:

To smoothly update of plots, I generalised a solution found by user ckneale. It uses Observables.jl and WebIO.jl so that the plot can listen to changes in its elements.

Currently, I have tested the following capabilities:

  • Modifying values in X and/or Y array(s) in scatter and plot
  • Modifying colours in scatter and plot
  • Modifying text elements (e.g. titles, xlabels, etc...)
  • Modifying matricies in contour plots
  • Adding new elements to X,Y arrays in 2d line and scatter plots
  • Adding new elements to X,Y,Z in 3d line and scatter plots

Note: this package is designed to work with the plot plane in Juno. If you force it to plot in a gui it will look really weird.

Using the package

  1. Import the module using using SmoothLivePlot.
  2. Create a live plot with macro outPlotObject = @makeLivePlot myPlotFunction(argument1, argument2, ...).
    • Function myPlotFunction(argument1, argument2, ...) is a user defined plotting function.
    • Output outPlotObject is a mutable output array of plot features. Its elements are the input aruments of myPlotFunction().
  3. Modify plot elements with function modifyPlotObject!(outPlotObject, arg2 = newArg2, arg1 = newArg1, ...).
    • The first argment of modifyPlotObject!() must be the mutable output array.
    • The following argments are optional and named. The name/value pair must be arg<x> = newArg1, where <x> in the name is an integer that indicates the position of the argument in the original plotting function myPlotFunction().
    • E.g. to modify argument2 to newArgument2, use modifyPlotObject!(outPlotObject, arg2 = newArgument2).
    • The modified arguments do not have to be in any specific order, and are updated at the same time.

Short example

Here's a video showing an output live-plot from some magnetohydrodynamic calculations:

exampleSmoothPlot

TODOs

  • Add capability to add additional elements to plots.
  • Benchmark performance.

Changelog

  • Version 0.1.0 - Introduced original version.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].