Skip to content

A Julia package to make interactive javascript plots and pivottables that can be used in the browser.

License

Notifications You must be signed in to change notification settings

s-baumann/JSPlots.jl

Repository files navigation

JSPlots.jl

Build Coverage Documentation
Build status codecov docs-latest-img

Interactive JavaScript-based visualizations built in Julia

JSPlots.jl creates interactive, standalone HTML visualizations that work in any browser. Build line charts, scatter plots, 3D visualizations, pivot tables, and more - all from Julia without any coding in JavaScript needed.

The closest comparison to what I am trying to build is probably Pluto notebooks or jupyter notebooks. The key difference is that the pages that you generate with JSPlots runnable anywhere with interactive plotting - you do not need Julia or anything else installed except for a webbrowser. This means too that the documents that are generated by JSPlots are intended to be immutable documents to present your data rather than something you develop with (as you get with the notebooks).

You can see in the page here an example page with all of the types of charts that you can make here For the Julia code that generated this see here

Plot Types

The plot types are below. For each you can click on the name of the chart and see a page that demonstrates the different ways the plot can be used.

Text

  • TextBlock - Rich text and HTML content for annotations
  • Notes - A block of text that is populated from a textfile, useful for embedding comments in JSPlots documents.
  • CodeBlock - Display code in a nice format. There is proper syntax highlighting for several languages (Julia, Python, R, C++, C, Java, JavaScript, Rust, SQL, PostgreSQL) without others in black.
  • LinkList - Styled lists of hyperlinks for multi-page navigation with optional subheadings
  • ReportIndex - A sortable list of hyperlinks for multi-page navigation. Populated by an external manifest file.

Tabular Data

  • Table - Data tables
  • PivotTable - Interactive drag-and-drop pivot tables (via PivotTable.js)

Multimedia

  • Picture - Display static images or plots from VegaLite.jl, Plots.jl or Makie.jl
  • Slides - Slideshows and animations from sequences of images or generated plots

2D Plotting

  • LineChart - Time series and trend visualization with faceting
  • AreaChart - This does both Area Charts as well as Bar Charts
  • ScatterPlot - 2D scatter plots with marginal distributions
  • Path - Trajectory visualization showing ordered paths through 2D space with direction arrows
  • CumPlot - Show cumulative line charts that are renormalised to the visible area

Distributional Plots

  • DistPlot - Distribution visualization combining histogram, box plot, and rug plot
  • KernelDensity - Smooth kernel density estimation for distributions
  • PieChart - Makes Piecharts.
  • BoxAndWhiskers - box and whiskers chart representing the distribution of each entity.

Three-Dimensional Plots

Variable Relationship Plots

  • CorrPlot - Make Correlation matrices and hierarchical clustering dendrograms representing connections between variables.
  • Graph - Make graphs that show the connections between variables in a correlation matrix.
  • TSNEPlot - Use t-sne to cluster similar points together in a 2 dimensional space.
  • LocalGaussianCorrelationPlot - Visualize how correlation between two variables changes across their joint distribution using Local Gaussian Correlation.

Financial Time Series

  • CandlestickChart - CandleStick charts (Open/High/Low/Close/Volume). for financial time series.
  • ExecutionChart - A chart showing fills relative to bid and ask over the course of trading a security.
  • DrawdownPlot - Drawdown visualization from peak cumulative performance.

Geographical Plots

  • GeoPlot - Plot points or areas on a map.

Situational Plots

  • Waterfall - Make Waterfall plots showing how positive and negative elements add up to an aggregate.
  • SanKey - Make SanKey plots showing how observations change affiliation over multiple waves.
  • RadarChart - Make RadarCharts showing how a single entity performs on various metrics.
  • BumpChart - BumpChart showing rankings over time.

The examples above for each plottype (together with a few others) can be found in the examples/ folder.

About

The pivot table functionality wraps PivotTable.js, similar to the Python pivottablejs module. Plotly visualizations use Plotly.js. Credit to Claude code for doing all of the testing and a couple of the chart types. Pull Requests welcome.

About

A Julia package to make interactive javascript plots and pivottables that can be used in the browser.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages