Repository navigation
Releases
SlintPlot 0.5.1
Added
integer-tickson line, bar, horizontal bar, scatter, bubble and time
series charts: the value axes step by at least 1. For values that are
counted, such as people or items, where a short range otherwise gets
ticks at 0.5 or 0.2: a largest value of 3 gives 0, 1, 2, 3. Off by
default; a scale that already steps by 1 or more is unchanged.
Fixed
- Stacked bars with a
bar-radiusare rounded at the ends of the whole
stack only, so a stack reads as one bar: every segment used to be rounded
on all four corners, which left notches between them. A zero value or a
hidden dataset at the end of a stack passes the rounding on to the
segment next to it, and stacks above and below zero are square where they
meet. Bars side by side are rounded as before. - The legend's swatches are filled with the chart's own
fill-opacity, on
bar, line, horizontal bar, candlestick and waterfall charts: they used the
theme's, so a chart with solid bars had pale swatches.
Website
- The blog's front page shows the picture of each post.
Example apps
- Gallery: the segmented ring and tile grid samples with four charts show
one at a time, picked above the chart, on phones and small windows, where
four were too small to read. The code button shows the code of the chart
shown.
Gallery and stress apps 0.5.1
The example apps for SlintPlot 0.5.1, built with the new library:
- slintplot-gallery: a sample browser with every chart type, a theme picker, dark mode, and buttons to randomize, add and remove data. New: the segmented ring and tile grid samples with four charts show one at a time, picked above the chart, on phones and in small windows, where four were too small to read; the code button shows the code of the chart shown. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is.
slintplot-gallery --snapshot <dir>renders every sample to PNG. - slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with zoom and live frame times.
slintplot-stress --benchprints headless timings with the software renderer, and--bench-gputimes the same charts with Skia on the GPU.
Both apps draw with Slint's FemtoVG renderer by default; start them with SLINT_BACKEND=winit-software for the software renderer. Built with --features skia, they also run with SLINT_BACKEND=winit-skia. See Choosing a renderer.
What's new in the library: see the 0.5.1 release. Stacked bars with a bar-radius are rounded at the ends of each stack only, the legend's swatches have the chart's own fill-opacity, and integer-ticks keeps the value axis in whole numbers for counted values.
Download
Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html). They include the FemtoVG and software renderers, not Skia.
- macOS: the apps aren't signed. After unpacking, run
xattr -d com.apple.quarantine slintplot-gallery slintplot-stressin the folder, or right-click the app and choose Open. - Linux: needs fontconfig and xkbcommon, which most desktops already have.
Install with Cargo
cargo install slintplot-gallery
cargo install slintplot-stress
cargo install slintplot-gallery --features skia # with Slint's Skia rendererLicense
SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.
SlintPlot 0.5.0
Added
legend-attachedon pie, doughnut, polar area, radar, radial bar,
sunburst, segmented ring and tile grid charts, on by default: the legend
stays next to the chart instead of at the edge of its area, which was far
away when the area was much taller or wider than the round or square
chart in it.falsekeeps it at the edge, as before.
Changed
- The focus ring round a chart shows only when the keyboard brought the
focus (Tab) or has been used since, not after a click, as:focus-visible
on the web. Clicking still gives the chart the arrow keys.
Example apps
- Gallery: the line chart with and without points, the pie chart with
and without data labels, and the radar chart with lines and filled are one
sidebar entry each, with a tab per variant; the filled radar chart moves
from Area charts to the radar chart. - Stress test:
--bench-gpu [dir]times the same charts as--bench
with a GPU renderer, Skia on macOS, drawing each frame with
Window::take_snapshotso that the GPU's work is included; with a folder,
it saves every frame as a PNG. - Both apps: a
skiafeature builds them with Slint's Skia renderer, to
run withSLINT_BACKEND=winit-skia.
Tested
- Skia: every gallery sample draws correctly with Slint's Skia renderer on
macOS, Linux and Windows, as with FemtoVG and the software renderer.
Documentation
- A compatibility box next to Getting started: Rust only, the Slint and
Rust versions, the platforms and renderers tested, and no live preview. - Performance: how many points or items each chart can show at 60 fps,
30 fps and within a second, with the software renderer and with Skia, and
why the numbers look as they do. The full results moved to a new
benchmarks page, measured again with SlintPlot 0.5.0 and Slint 1.18.1, with
Skia's numbers and how to repeat them. - How to choose a renderer for the example apps.
- "Request a commercial license" until checkout opens.
Website
- A library release (
v*) no longer cancels the deploy of the apps
release that follows it.
Gallery and stress apps 0.5.0
The example apps for SlintPlot 0.5.0, built with the new library:
- slintplot-gallery: a sample browser with every chart type, a theme picker, dark mode, and buttons to randomize, add and remove data. Line charts with and without points, pie charts with and without data labels, and radar charts with lines and filled are now one entry each, with a tab per variant. The legend of round and square charts stays next to the chart in a tall or wide window, and the focus ring shows only after keyboard use. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is.
slintplot-gallery --snapshot <dir>renders every sample to PNG. - slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with zoom and live frame times.
slintplot-stress --benchprints headless timings with the software renderer; new,--bench-gputimes the same charts with Skia on the GPU.
Both apps draw with Slint's FemtoVG renderer by default; start them with SLINT_BACKEND=winit-software for the software renderer. Built with --features skia, they also run with SLINT_BACKEND=winit-skia. See Choosing a renderer.
What's new in the library: see the 0.5.0 release. The website has a new benchmarks page, and Performance shows how many points or items each chart can show at 60 fps, 30 fps and within a second.
Download
Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html). They include the FemtoVG and software renderers, not Skia.
- macOS: the apps aren't signed. After unpacking, run
xattr -d com.apple.quarantine slintplot-gallery slintplot-stressin the folder, or right-click the app and choose Open. - Linux: needs fontconfig and xkbcommon, which most desktops already have.
Install with Cargo
cargo install slintplot-gallery
cargo install slintplot-stress
cargo install slintplot-gallery --features skia # with Slint's Skia rendererLicense
SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.
SlintPlot 0.4.3
Fixed
FunnelChart: on Linux, Windows and in browsers, where Slint draws with
femtovg, every stage was drawn a pixel larger all round, so the gap
between stages was about half ofgap, with a stray line at its ends.
The stages are now drawn counterclockwise and back to their start, as the
other charts' shapes since 0.4.2, and a test checks that Slint takes them
as solid.
SlintPlot 0.4.2
Fixed
SegmentedRingChart,TileGridChart, and the slices and rings of pie,
doughnut, polar area, radial bar, gauge and sunburst charts: on Linux,
Windows and in browsers, where Slint draws with femtovg, some cells merged
into solid bands and gaps closed, on one half of a segmented ring chart and
in every tile grid. Slint's femtovg renderer works out from a shape's
points whether it is solid or a hole, leaving out the closing edge, so the
answer depended on where the shape was; it draws a hole's smoothed edge a
pixel outside it. Every shape is now drawn counterclockwise and back to its
start, which Slint takes as solid wherever it is.
SlintPlot 0.4.1
Fixed
SegmentedRingChart: the gaps between segments are as wide in every ring,
with parallel sides, and at least 2px. They were a share of each segment's
angle, so they widened outwards and, on screens of 1 pixel per point such
as most Linux desktops and browsers, looked uneven where they were under 2
pixels.segment-gapis now a share of a segment of the inner ring.
SlintPlot 0.4.0
Added
-
SegmentedRingChart: a heatmap bent into concentric rings.valuesis a
matrix ([[float]]), one row per ring, the first outermost, and one
segment per column, going round fromstart-angle, either way. The matrix
sets the size: as many rings as rows and as many segments as the longest
row, so data of any shape fits without settings; shorter rows and missing
values (NaN) are left as a faint track. Cells are colored on a scale, as in
HeatmapChart(color,diverging,fixed-range), with a color scale
legend, or by category: withclassesset, each value is a category index,
and the categories make a legend that hides them.x-labelsgo round the
outside, thinned where they don't fit, andy-labelsname the rings in the
tooltip.center-textandcenter-labelare written in the middle, and
hovering a cell shows it there instead. A dot can mark the start, and
glowadds a soft light in the middle. The cells sweep in when the chart
appears; the arrow keys go round and between the rings, and
cell-clicked(row, column)reports clicks. -
TileGridChart: a matrix as rows of rounded squares, one per value, like
an activity grid. It takes its data asSegmentedRingChartdoes:values
is a matrix ([[float]]), one row of tiles per row, and the matrix sets the
size, the tiles staying square, as large as fit, and centered. Cells are
colored on a scale or by category (classes), with the same properties; missing
values are empty tiles, a faint track.y-labelsgo at the left and
x-labelsbelow, thinned where they don't fit;tile-gapand
tile-radiusshape the tiles. The tiles sweep in from the left; hovering
outlines a tile with a tooltip, the arrow keys move from tile to tile, and
cell-clicked(row, column)reports clicks.
Example apps
- Gallery: builds without Slint's binding loop warnings. The window
shrinks to phone width, so a browser window made narrower switches to the
phone layout instead of cutting off the page; the layout switches at 900px
instead of 720px, where the sample list and header no longer fit beside the
chart.
Samples of the two new charts under Heatmaps, each one sidebar entry with
two tabs, by category and on a scale, of four charts of different sizes and
uses. They follow the theme, with their own colors only where the colors
carry meaning, such as green, amber and red for a service's status; on the
segmented ring category page and both tile grid pages, a second dropdown
under the theme picker switches between the theme's colors and these. The heatmap sample shows
the visits in each cell, in two-hour blocks so that the numbers fit. - Stress test: segmented ring and tile grid charts, on a scale and by
category, from 100 to 1,000,000 cells. - Fuzz test: the two new charts, for 25 chart types.
Gallery and stress apps 0.4.3
The example apps for SlintPlot 0.4.3, built with the new library:
- slintplot-gallery: a sample browser with every chart type, including the new segmented ring and tile grid charts, in tabs by category and on a scale; a theme picker, dark mode, and buttons to randomize, add and remove data. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is, in tabs:
ui/app.slintwith the chart's data,src/main.rs,build.rs,Cargo.tomland how to run it. In the Gantt sample, clicking a task opens a dialog that edits it.slintplot-gallery --snapshot <dir>renders every sample to PNG. - slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with line, bar, time series and scatter charts and more, with zoom and live frame times.
slintplot-stress --benchprints headless timings.
What's new in the library: funnel stages keep their gaps on Linux, Windows and in the browser, as the segmented ring, tile grid and radial charts do since 0.4.2. See the 0.4.3 release; the 0.4.0 release added the segmented ring and tile grid charts.
Download
Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html).
- macOS: the apps aren't signed. After unpacking, run
xattr -d com.apple.quarantine slintplot-gallery slintplot-stressin the folder, or right-click the app and choose Open. - Linux: needs fontconfig and xkbcommon, which most desktops already have.
Install with Cargo
cargo install slintplot-gallery
cargo install slintplot-stressLicense
SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.
Gallery and stress apps 0.4.2
The example apps for SlintPlot 0.4.2, built with the new library:
- slintplot-gallery: a sample browser with every chart type, including the new segmented ring and tile grid charts, in tabs by category and on a scale; a theme picker, dark mode, and buttons to randomize, add and remove data. Clicking a chart shows what was clicked. The code button opens each sample as a small app that runs as it is, in tabs:
ui/app.slintwith the chart's data,src/main.rs,build.rs,Cargo.tomland how to run it. In the Gantt sample, clicking a task opens a dialog that edits it.slintplot-gallery --snapshot <dir>renders every sample to PNG. - slintplot-stress: streams up to 8 datasets at 10 to 100,000 samples a second into a window of 1,000 to 10,000,000 values or everything received, with line, bar, time series and scatter charts and more, with zoom and live frame times.
slintplot-stress --benchprints headless timings.
What's new in the library: segmented ring and tile grid charts, and the slices and rings of the radial charts, draw their gaps correctly on Linux, Windows and in the browser, where some cells merged before. See the 0.4.2 release; the 0.4.0 release added the segmented ring and tile grid charts.
Download
Ready-built apps for macOS (Apple silicon and Intel), Windows and Linux are attached below. Each archive holds both apps, SlintPlot's licenses, Slint's license (LICENSE-SLINT.md) and the licenses of the open-source crates they are built from (THIRD-PARTY-LICENSES.html).
- macOS: the apps aren't signed. After unpacking, run
xattr -d com.apple.quarantine slintplot-gallery slintplot-stressin the folder, or right-click the app and choose Open. - Linux: needs fontconfig and xkbcommon, which most desktops already have.
Install with Cargo
cargo install slintplot-gallery
cargo install slintplot-stressLicense
SlintPlot is free to try: download it, experiment and build prototypes, at home or at work. It is available under the GPLv3, the PolyForm Noncommercial License 1.0.0, or a commercial license for closed-source products: see Pricing.
