All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- [#387] Fix HeatMap hovertext/text dimensions
- [#385] Add
{x,y}gapparameter to heatmaps - [#381] Make
Plot::default()behave likePlot::new()
- [#359] Expand plotly_derive to support ergonomic 1D and 2D color arrays setters
- [#350] Add
plotly_staticasyncAPI - [#355] Add LayoutPolar layout
- [#356] Add downsample example based on minmax-lttb layout
- [#346] Remove usage of
getrandomforranddependency and for this crate - [#345] Re-export
ImageFormatfromplotly_staticintoplotly
- [#341] Fix documentation related to
wasmsupport
- [#339] Replace default Windows app with
explorer
- [#335] Add minimal animation support
- [#326] Fix book badges
- [#277] Removed
wasmfeature flag and put everything behind target specific dependencies. Added.cargo/config.tomlfor configuration flags needed bygetrandomversion 0.3 onwasmtargets. - [#281] Update to askama 0.13.0
- [#287] Added functionality for callbacks (using wasm)
- [#289] Fixes Kaleido static export for MacOS targets by removing
--disable-gpuflag for MacOS - [#291] Remove
--disable-gpuflag for Kaleido static-image generation for all targets. - [#299] Added customdata field to HeatMap
- [#303] Split layout mod.rs into modules
- [#304] Refactored examples to allow for generation of full html files
- [#320] Make offline_js_sources function
pub - [#321] Make 'online_cdn_js' function also
pubfor consistenccy
- [#311] Add extra themes
- [#312] Add rangebreak to axis
- [#313] Add example of subplots with multiple traces
- [#314] Add axis range bounds support
- [#317] Show rangebreak usage with ints
- [#318] Add slider support
- [#319] Introduce
plotly_staticpackage for static export of plots using WebDriver driven browsers
- [#284] Allow plotly package to be compiled for android
- [#298] Added support for layout axis scaleratio
- [#301] Added ScatterGeo trace and LayoutGeo support
- [#269] Fix publishing to crates.io issue
- [#265] Add Pie Chart trace
- [#264] Derive Deserialize on NamedColor, Rgb and Rgba
- [#216] Opt out of downloading Kaleido binaries and allow users to set Kaleido path via environment variable
- [#259] Mesh3d::new() has wrong signature
- [#175] Put multiple subplots in the same html - added an example using
build_htmlcrate. - [#228] Redraw function seems to be broken - added example on generating responsive plots.
- [#251] Expose image data as String with
to_base64andto_svgusing Kaleido - [#245] Change Contours size to be
f64instead ofusize - [#243] Made
plotly_embed_jsembed all JS scripts when enabled. Renameduse_cdn_plotlytouse_cdn_js.
- [#248] Book recipes do not render graphs
- [#247] Add function to export image (with Kaleido) as a b64 string
- [#246] Expose pattern fill api for histograms and bar charts
- [#244] Fix swapped x and y in the examples.
- [#242] Disable request for tex-svg.js file
- [#237] Add Categorical Axis ordering.
- [#231] Added new
plotly_embed_jsfeature to reduce binary sizes by not embeddingplotly.min.jsin the library unless explicitly enabled via the feature flag. Deprecatesuse_local_plotlyin favor of explicit opt-in via the feature flag and introduce methoduse_cdn_plotlyto allow users to use CDN version even behind theplotly_embed_jsfeature flag.
- [#230] Make Bar chart
widthandoffsetusef64values.
- [#217] Added show_html(filename) method to bypass situations where accessing default
/tmpis not possible, e.g., with in SNAP Firefox - [#227] Switch from HTML template render from
askamatorinja
- [#232] Generalize OS detection in the context of opening HTML pages with default app via
xdg-open - [#233] Fix mdBook code examples
- [#153] Added
LayoutScene. - [#154] Improve ergonomics of
TitleandLegendGroupTitlestructs:newmethod now takes no arguments as per other structs, whilst a newwith_text()constructor is added for convenience. Where other structs contain aTitle(andLegendGroupTitle), users can now call thetitle()(andlegend_group_title()) method with anything thatimplsInto<Title>, viz.String,&String,&strandTitle. - [#157] Fix
HeatMap's setters for correctly settingzmin,zmaxandzminindependent ofZinput type. - [#159] Make
heat_mapmodule public to exposeSmoothing enum. - [#161] Added
Axisscaleanchorsetter. - [#163] Added
DensityMapbox. - [#166] Added subplot example with multiple titles.
- [#178] Fix setter for
Axis::matchesto take string arg. - [#180] Add setter for
Mapbox::domain. - [#181] Fix compilation error when mixing the crate with
askama/with-axumby addingwith-axumfeature. - [#207] Add
Tabletrace. - [#212] Update LICENSE
- [#143] Widen version range of
askama.
- [#129] Fix issue for plots not showing in browser in Windows. Thanks to @juanespj and @M-NK-Y for the PRs.
- [#147] Update documentation for
jupyter notebookexample.
- [#122] Compilation error for the
wasmfeature. - [#123] Compilation error for the
plotly_kaleidofeature.
- [#113] Refactored the structure of the examples to make them more accessible, whilst adding more examples e.g. for
wasm. - [#115] Simplify the function signature of Plot.to_inline_html() so that it just takes
Option<&str>as an argument.
- Button support (i.e. updatemenus) contributed by @sreenathkrishnan. Details and examples in this well written PR #99.
- Internally, there is now a
plotly-derivecrate which defines aFieldSetterprocedural macro. This massively cuts down the amount of code duplication by generating the setter methods based on the struct fields. Again thanks to @sreenathkrishnan for this effort.
Version 0.8.0 represents a significant release which refactors a lot of the codebase and tries to provide a cleaner API: there are several breaking changes listed below. On the whole, if migrating from v0.7.0, start by following any new compiler errors and, if you're still stuck, open an issue on the issue tracker and we can help out.
- impl
Clone,SerializeandPartialEqforPlot - impl
Clone+/-Copyfor color types - Support for configuration options
- Support for layout templates and pre-defined themes
- Support for WASM environments
- A much enhanced test suite
- Support for
Sankeydiagrams - Support for
Plot3D- 3D plots for scatter, line and surface data
- Improve implementation of
private::NumOrStringto support more primitive types (Issue #47) - Remove
private::TruthyEnumin favour of a more robust way of serializing toStringorbool - Refactor
Colormodule - Refactored HTML templates with cleaner Javascript code
Plot::save()is renamed toPlot::write_image()Plot::show_{png | jpeg}is now made generic via the newPlot::show_image()across static image formats with theImageFormatenumPlot::write_html()now takes a filepath and saves the plot to that locationPlot::to_html()now has similar behaviour toPlot::to_inline_html()and just returns aString
- Typos in
CONTRIBUTING.md - Serialization of
plotly_kaleido::PlotData(Issue #50)
ndarrayto0.15.4.serdeto1.0.132.serde_jsonto1.0.73.askamato0.11.0.randto0.8.rand_distrto0.4.plotly.jsto2.12.1
ScatterPolarcontributed by @samlich.- Add a method to render the plot to anything implementing Write, contributed by @foresterre.
- Using plotly version 2.2.1
- Updated Kaleido version in
plotly_kaleidoto 0.2.1.
- Axis ticks text has the wrong parameter name (Issue #45).
- tag matches for struct Axis : allow for synchronisation between subplots on x-axis
- fn matches in impl of Axis
- Shapes support (documentation).
- Annotations support.
- Docstrings to
Scatter. ndarraysupport (documentation).- Jupyter lab and notebook support (documentation).
- Removed
numdependence. - Removed
plotly_orcaand theorcafeature. Use thekaleidofeature for static image generation. - Updated Kaleido version in
plotly_kaleidoto 0.0.1.
- From<&str> implementation for
Title.
- Optimised dependencies.
- Clearer deprecation message for
orcarelated methods. - Wider use of
Default.
- Plotly.rs Book.
- Using plotly.js from the official CDN is now the default. To use the local version use the
Plot::use_local_plotlymethod. - Plot rasterization to
png,jpg,eps,pdf,webpandsvgusing plotly/Kaleido, enabled using thekaleidofeature. - Multi-axis support and examples.
- Subplot support and examples.
- Colors can now be floating values within the color-scale range.
- OpenGL support for scatter plots (
Scatter::open_gl_mode); useful for displaying large data-sets.
Layoutcomplete.- Updated
plotlyversion to1.54.6. plotly_orcaand theorcafeature are deprecated; usekaleidoinstead.- All examples have been grouped to mirror the Plotly.rs book.
- Added error message to capture the scenario when there is no default browser (or no browser at all) on a machine. The message suggests a few alternatives.
- Documentation for
Plot - A feature (
orca) that enablesPlotconversion to the following output formats: png, jpeg, webp, svg, pdf and eps- This optional feature is implemented in the
plotly_orcacrate
- This optional feature is implemented in the
- Box plot support
- Heat map support
- Contour plot support
- More histogram examples
- Filled lines example
- Using specific Plotly.js version: https://cdn.plot.ly/plotly-1.52.2.js
Plot::add_layoutchanged toPlot::set_layoutas there is only one layout perPlotTraceSerializerenamed toTracePlot::show_jpgrenamed toPlot::show_jpegfor consistency- Removed HexColor type. Hex color input is still supported using
Strings or string slices - Refactored project structure:
- All plots
Traces are now accessible from the main namespaceplotly::. - Enums and structs common to more than 1 plot type and/or the
Layoutnow live inplotly::common:: - Internal methods and structs that are not considered part of the public API are now in
plotly::private::
- All plots
- Color serialization was operating correctly only on Rgb, Rgba and Hex colors ignoring the named colors
- Surface plot
- More examples for scatter and line plots
- Completed implementation of the following:
- Scatter plot
- Box plot
- Scatter and Box plot with error bars
- Candlestick plot
- OHLC plot
- Extended README.md with a few basic examples
- The API is now based on the builder pattern
- Extended color set
Plot::show()now correctly opens the plot in the default browser as is the case for MacOSX and Linux
- The following plot types are incomplete but fairly functional:
- Scatter plot
- Box plot
- Scatter and Box plot with error bars
- Candlestick plot
- OHLC plot
- Basic support for plot Layout
- Default template data for Layout
- Examples (See example_plots.rs)
- Line and scatter plot
- Data labels hover
- Data labels on the plot
- Geometric Brownian motion plot (scatter + line plot)
- Basic bar chart
- Grouped bar chart
- Stacked bar chart
- Basic symmetric error bars
- Bar chart with error bars
- Simple candlestick chart
- Geometric Brownian motion candlestick plot
- Simple OHLC chart
- Geometric Brownian motion OHLC plot
- Placeholder repository.
- Proof of concept implementation of a scatter plot.