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.
- [#245] Change Contours size to be
f64
instead ofusize
- [#243] Made
plotly_embed_js
embed all JS scripts when enabled. Renameduse_cdn_plotly
touse_cdn_js
. - [#239] Add Categorical Axis Ordering and Axis Category Array.
- [#231] Added new
plotly_embed_js
feature to reduce binary sizes by not embeddingplotly.min.js
in the library unless explicitly enabled via the feature flag. Deprecatesuse_local_plotly
in favor of explicit opt-in via the feature flag and introduce methoduse_cdn_plotly
to allow users to use CDN version even behind theplotly_embed_js
feature flag.
- [#230] Make Bar chart
width
andoffset
usef64
values.
- [#217] Added show_html(filename) method to bypass situations where accessing default
/tmp
is not possible, e.g., with in SNAP Firefox - [#227] Switch from HTML template render from
askama
torinja
- [#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
Title
andLegendGroupTitle
structs:new
method 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 thatimpl
sInto<Title>
, viz.String
,&String
,&str
andTitle
. - [#157] Fix
HeatMap
's setters for correctly settingzmin
,zmax
andzmin
independent ofZ
input type. - [#159] Make
heat_map
module public to exposeSmoothing enum
. - [#161] Added
Axis
scaleanchor
settter. - [#163] Added
DensityMapbox
. - [#166] Added subplot example with multiple titles.
- [#178] Fix setter for
Axis::matches
to take string arg. - [#180] Add setter for
Mapbox::domain
. - [#181] Fix compilation error when mixing the crate with
askama/with-axum
by addingwith-axum
feature. - [#207] Add
Table
trace. - [#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 notebook
example.
- [#122] Compilation error for the
wasm
feature. - [#123] Compilation error for the
plotly_kaleido
feature.
- [#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) contibuted by @sreenathkrishnan. Details and examples in this well written PR #99.
- Internally, there is now a
plotly-derive
crate which defines aFieldSetter
procedural 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
,Serialize
andPartialEq
forPlot
- impl
Clone
+/-Copy
for 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
Sankey
diagrams - Support for
Plot3D
- 3D plots for scatter, line and surface data
- Improve implementation of
private::NumOrString
to support more primitive types (Issue #47) - Remove
private::TruthyEnum
in favour of a more robust way of serializing toString
orbool
- Refactor
Color
module - 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 theImageFormat
enumPlot::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)
ndarray
to0.15.4
.serde
to1.0.132
.serde_json
to1.0.73
.askama
to0.11.0
.rand
to0.8
.rand_distr
to0.4
.plotly.js
to2.12.1
ScatterPolar
contributed 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_kaleido
to 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
. ndarray
support (documentation).- Jupyter lab and notebook support (documentation).
- Removed
num
dependence. - Removed
plotly_orca
and theorca
feature. Use thekaleido
feature for static image generation. - Updated Kaleido version in
plotly_kaleido
to 0.0.1.
- From<&str> implementation for
Title
.
- Optimised dependencies.
- Clearer deprecation message for
orca
related 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_plotly
method. - Plot rasterization to
png
,jpg
,eps
,pdf
,webp
andsvg
using plotly/Kaleido, enabled using thekaleido
feature. - 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.
Layout
complete.- Updated
plotly
version to1.54.6
. plotly_orca
and theorca
feature are deprecated; usekaleido
instead.- 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 enablesPlot
conversion to the following output formats: png, jpeg, webp, svg, pdf and eps- This optional feature is implemented in the
plotly_orca
crate
- 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_layout
changed toPlot::set_layout
as there is only one layout perPlot
TraceSerialize
renamed toTrace
Plot::show_jpg
renamed toPlot::show_jpeg
for consistency- Removed HexColor type. Hex color input is still supported using
String
s or string slices - Refactored project structure:
- All plots
Trace
s are now accessible from the main namespaceplotly::
. - Enums and structs common to more than 1 plot type and/or the
Layout
now 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.