Document 1.22.0: series that share one colour, Raincloud, Horizon
Home, Roadmap (table + per-row sections) and the sidebar now name
1.22.0 as current; three roadmap rows move from Later to Done. The
Examples page gets a 1.22.0 section with real rendered charts for the
Kaplan-Meier confidence band, Raincloud and Horizon, plus three images
the 1.21.0 section never had (treemap, streaming line, 3-D scatter),
closing a gap where that section proved its JSON round-trips with
console output alone.
xkqg
committed
Oct 24, 2026
docs: 1.21.0 - Home, Examples and the sidebar name it the current release
Home.md names 1.21.0 current and demotes the 1.20.0 paragraph to the slot after it.
Examples.md gets a new section with three compiled round-trip examples (a treemap's
tree, a streaming line's points, an axes' Z axis, pane colours and tooltip switch)
and a table row; the sidebar version follows.
xkqg
committed
Oct 23, 2026
docs: 1.20.0 - Examples for the one-call charts and the fixes, the Roadmap rows this release measured, pages that say what the code does
Examples opens with the 1.20.0 section (every new verb with a compiling example and the result in words); Chart-Types, Fluent-Cheatsheet, Home, Styling, Package-Map and MCP-Server say what the verbs, the JSON, dpi, log axes, category ticks and the missing-value rule do now; Roadmap lists what is done and every gap the release measured as a row still to come; Home states what the gate measured.
xkqg
committed
Oct 22, 2026
docs: every C# block compiles against the packages as built; Examples and Roadmap pages for 1.19.0; direct labels and axis colours; stale claims corrected
The wiki suite compiles the pages: 195 programs compile, 190 of 192 did not before. Unclosed fences in Styling are closed.
Examples.md opens with 1.19.0 and its pictures; Roadmap.md lists what is done and what is still to come, with the reason
for each; the pages say what WithDpi, SaveOptions, the MAUI view and the 3-D light do today.
xkqg
committed
Oct 21, 2026
docs: 1.18.2 — timeline gestures, pan on auto-scaled axes, shared X, and the WPF timeline example
Home and sidebar name 1.18.2 and keep the three newest releases; Interactive-Controls says what a drag and the wheel do on a timeline and on axes linked by ShareX; the Fluent cheatsheet notes that a reference line can be moved.
xkqg
committed
Oct 18, 2026
Home and sidebar name 1.18.1, and the narrative keeps the three newest
xkqg
committed
Oct 12, 2026
The wiki has a Verso page, and Notebooks points at it
Verso is the open-source notebook that replaces Polyglot Notebooks, and
MatPlotLibNet.Verso is the extension that draws this library's charts in one of
its cells. The new page says what a cell looks like, what happens to a chart
taller than the cell, what a failed render shows, and why the package carries the
extension and nothing else.
Notebooks now names Verso as the replacement for notebook work and
MatPlotLibNet.Interactive for a chart outside one, and says the package is frozen
rather than merely unmaintained. The Package Map gains its section, the sidebar
its entry, and the front page announces 1.18.0.
xkqg
committed
Sep 23, 2026
The wiki announces 1.17.1 as the current release
The banner and the sidebar still said 1.17.0 while the packages carry 1.17.1.
The opening paragraph now says what the patch brought.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
xkqg
committed
Sep 13, 2026
Both entry pages point at the matplotlib translation table
Someone who knows pyplot lands on Home or the cheatsheet; from there the page
that maps their calls one for one was not reachable.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
xkqg
committed
Sep 13, 2026
The dashboard has a topology panel, and the click reaches the server
AddTopology is on the control-room page and on the front page: a service
map beside the tiles, between the timelines and the trend.
The bidirectional SignalR page carries the third handler. A chart whose
figure lives on the server now reports a clicked data point to
OnDataCursor, opted into with EnableDataCursor on the figure. It is the
brush-select shape: the handler is told, nothing is re-rendered and
nothing is broadcast, because a click asks about the data rather than
changing it. A click from the browser names the series exactly, read off
the group the marker is drawn in; a native control reports the exact
data point instead, because it runs the nearest-point search itself.
The cheatsheet has GroupedBar and DensityScatter.
Measured again at the gate: 706 classes at 99.6 % line and 97.5 %
branch, across 11,757 tests.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
xkqg
committed
Sep 12, 2026
Bring the wiki up to date with 1.17.1
The clicked data point is on the interactive controls page, in the
gesture table and with its own section: the WPF, Avalonia and Uno
controls raise DataPointClicked with the point the reader clicked.
The MCP page carries the two changes to that server: what each tool
tells a host it does to the machine, and the structured values
chart_data_table now returns beside its markdown.
The styling page has the three Petroff accessible colour sequences in a
family of their own, and the count they change: 74 base maps, 148
registered names. The accessibility page points at them for a chart with
more than eight things on it.
The package map warns about MatPlotLibNet.Notebooks the way the
Notebooks page already did.
Corrected while passing: the interactive controls page said thirteen
NuGet packages where there are fourteen, and the front page said 53
indicators where the assembly ships 58. The quality bar is measured
again: 705 classes at 99.6 % line and 97.5 % branch, across 11,700
tests.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
xkqg
committed
Sep 12, 2026
Rewrite every page in plain language, and add the International Text page
The wiki now says what the library does in short sentences instead of
aphorisms. Every identifier, number, link and code block is preserved; each
page was checked against its previous version.
International Text is new: how Arabic and Hebrew draw with the bundled font,
how SkiaFonts.Register adds a font file for other scripts, and what changed
for Latin text now that it is kerned.
Two pages, Advanced and MatplotlibThemes, ended with literal </content> and
</invoke> lines left behind by an old tool run. Those are gone.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
xkqg
committed
Sep 12, 2026
Set the wiki version banner to 1.16.0
Home.md and _Sidebar.md still announced 1.15.1 while every content page had
already been updated for the data table, so the wiki named the wrong current
release. Home now leads with 1.16.0 (ToDataTables across the four hosts, plus
the streaming-snapshot fix) and demotes the MCP server to "1.15 before it".
xkqg
committed
Sep 12, 2026
A chart can be read, not only seen
The Accessibility page led with ARIA and ended with contrast, and it said the aria-label on each series group
names that series to a screen reader. It does not: the root carries role="img", and WAI-ARIA's
children-presentational rule makes the whole SVG one node, so those labels are never announced. The page now
says so, and leads with what does carry the information — figure.ToDataTables(), the data table beside the
picture, with what is in it, where to put it in each host, and where it stops.
MCP-Server and Package-Map gained the fifth tool, chart_data_table, and Package-Map's GraphQL rows now name
the fields the schema actually has (chartSvg / chartDataTable / chartJson, onChartSvgUpdated) instead of a
shape that never existed.
xkqg
committed
Sep 12, 2026
1.15.1 is the current release, and the server is in the registry
xkqg
committed
Sep 12, 2026
1.15.0 is the current release
xkqg
committed
Sep 11, 2026
Newest version first: 1.15.0 leads, 1.14.4 follows as the current release
xkqg
committed
Sep 11, 2026
The wiki says what is released and what is coming
xkqg
committed
Sep 11, 2026
The install table, the package count and the publish note learn about the MCP server
xkqg
committed
Sep 11, 2026
MCP server: the wiki gets its page, the map gets its package
xkqg
committed
Sep 11, 2026
The count is 83, and a test now keeps it honest
Every page said 82 series types; the assembly ships 83. SeriesCountContractTests reads the number off the
assembly by reflection and pins it, so a new series turns a test red instead of leaving this line quietly wrong.
The old phrasing also counted Streaming twice -- 82 across 14 categories PLUS 4 streaming, while Streaming IS
one of the 14. It now reads 83 across 14 categories, four of them streaming.
xkqg
committed
Sep 2, 2026
Wiki: the gaps the links and the series list actually showed
Measured rather than guessed, on three surfaces. Every [[link]] against the pages that exist: one broken, and it
was broken for a reason worth remembering -- GitHub drops the dot, so "## MatPlotLibNet.Interactive" anchors as
#matplotlibnetinteractive and never as #matplotlibnet-interactive. Every page against the sidebar: MatPlotLibNet
(the core-package overview) was reachable from nowhere, and now sits under Package Map. Every series type the
library ships against the text: exactly one chart had no page at all.
Added: Tree grid. Indented rows with right-aligned numeric columns, and the reason it stands BESIDE the treemap
rather than instead of it -- a treemap answers who is big and stops there, and two lanes of twenty-three carrying
every message is two rectangles and twenty-one slivers as area, but a column of numbers you can compare exactly
as rows. Composition in the map, comparison in the grid. The caller owns the flattening, a row's Url makes
expanding a subtree a URL rather than a script, and Depth becomes aria-level so the grid is navigable and not
merely visible.
Added: the runnable control room. The section described the API and never said how to see it move; it now names
MatPlotLibNet.Samples.ControlRoom and the descent -- fleet to bus to process to lanes, the rail that keeps the
level you left, the two gestures (a block drills DOWN, the strip's max drills THROUGH to the member that produced
it), one fixed block size at every level, lanes as rows because they answer a different question, and the whole
state in the URL.
Version 1.14.3 to 1.14.4 in the sidebar and on Home, with what 1.14.4 brought.
Left alone deliberately: the "82 series types" claim. Counting concrete non-abstract series classes across Src
gives 84, of which 4 are streaming and 1 is Geo -- the two counts use different rules, and I am not going to
publish a number whose definition I would be inventing.
Checks after: every link resolves, every anchor resolves, no orphan pages, no dates.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
xkqg
committed
Sep 2, 2026
Wiki: shorter, current, and the control room gets its place
The pages were walls of text and a release behind. Front page rebuilt around
"where do I find what"; Roadmap collapsed from 903 lines of release archive to
the current cadence plus a pointer to the CHANGELOG; Benchmarks reduced to the
numbers that still hold. Every calendar date removed - the version numbers are
the timeline; dates that are example DATA stay.
Facts corrected against the source: 82 series types, 30 themes, 142 colormaps
(71 base maps, each auto-reversed), 10,025 tests, 659 classes at >=90/90.
The control room is documented for the first time: a rendered screen, the code
that produced it, what each tile property does (Target, Caption, Trend, Hatch,
Format's zero section for "no signal"), thresholds on a chart, and the alarm
palette + operator themes in Styling. The 1.14 line is named for what it is -
work around that screen.
Sidebar now lists every page.
xkqg
committed
Aug 30, 2026
v1.11.2: RRG overlay docs + version bump (encoding fixed)
- Home.md: v1.11.2 banner, 79 series, 53 indicators, pair-selection category
- Chart-Types.md: v1.11.2 header, 79/14 categories, new RRG section
- Fluent-Cheatsheet.md: Pair-selection row
- RelativeRotationSeries.md: AbsorptionRatioPerBar + EnbPerBar overlay docs
- All files: correct UTF-8 encoding (no BOM, no CP1252 corruption)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
xkqg
committed
May 16, 2026
v1.11.2: RRG overlay docs + version bump throughout wiki
- RelativeRotationSeries.md: AbsorptionRatioPerBar + EnbPerBar properties,
overlay mode section with visual encoding table and code example
- Chart-Types.md: new RRG section, version header 1.11.2, 79 series / 14 categories
- Fluent-Cheatsheet.md: Pair-selection row in series family table
- Home.md: v1.11.2 banner, series count 79, indicator count 53
- All pages: 1.11.1 → 1.11.2 throughout
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
xkqg
committed
May 16, 2026
v1.10.0: chart pack phases 1-5 + NetworkGraphSeries (deterministic + ForceDirected layouts)
xkqg
committed
May 4, 2026
v1.9.0 indicator expansion: 12 new indicators (Volume / Trend+Transform / Advanced), total 52; strict 90/90 per class via [ExcludeFromCodeCoverage] migration
xkqg
committed
Apr 23, 2026
Docs: strict-90 refactor (2026-04-20) — coverage 97.26L/90.50B, 32 extracted SOLID subclasses at 100/100
Updated Home + Contributing + Roadmap with post-refactor figures:
- 7 325 main-project tests (was 7 510 stale from Phase Ω)
- 97.26L/90.50B (was ~96/~88) — branch rate above 90 % aggregate floor for the first time
- Strict-90 refactor bullet added under v1.7.2 Roadmap section: 3 god-classes (AxesRenderer.RenderColorBar, CartesianAxesRenderer.Render, SankeySeriesRenderer) decomposed into 32 extracted SOLID subclasses, each at 100L/100B via direct TDD. No behavioural change — byte-level SVG output identical to shipped v1.7.2 (verified by 10 033-case equivalence fuzz).
Version stays 1.7.2 (non-behavioural refactor).
xkqg
committed
Apr 20, 2026
v1.7.2 Phase \u03a9 stats refresh: 7 345 \u2192 7 510 tests, ~95.7L/87.4B coverage, strict-mode flip blocked pending production refactors
xkqg
committed
Apr 20, 2026
v1.7.2 Phase Z stats refresh: 7 203 → 7 345 tests, 50 → ~40 sub-90, ~95/~86 → ~96/~88 line/branch coverage
xkqg
committed
Apr 19, 2026