Charticulator Visual Community: A New Chapter in Custom Visual Design
- Ilfat Galiev
- Dec 18, 2024
- 6 min read
Updated: Mar 28
Charticulator Visual Community: Tracing Its History and Evolution
A Brief History of Charticulator
Charticulator, initially developed by Donghao Ren, Bongshin Lee, and Matthew Brehmer, emerged as a groundbreaking tool for bespoke chart designs without requiring programming expertise. While its origins date back to 2017-2018, the project gained traction when integrated into Power BI. For those curious, the original Charticulator can still be explored at donghaoren.org/charticulator
The Evolution of Charticulator
The journey of Charticulator in Power BI officially began with its first visual published in April 2021. However, my involvement with the project started even earlier, in January 2020. With a background in data visualization and Power BI visuals development since 2017 at Akvelon Inc., I was drawn to the potential of Charticulator to redefine how users approach custom chart creation.
The early days were marked by focused community engagement. One key milestone was introducing the links table feature in the Power BI Visual Extension of Charticulator. This and other enhancements were shaped by invaluable user feedback, including contributions from Nick Snapp, who pushed the tool's boundaries during its formative stages.
Charticulator in Power BI: From Concept to Reality
The idea of "universal" Power BI visuals originated as an internal initiative at Akvelon Inc. We explored different visualization engines, including Plotly.js or Vega (Vega-Lite). Ultimately, Plotly.js was chosen, and Akvelon's team published the integration of Plotly.js into Power BI as a visual.
Over time, Charticulator’s application in Power BI gained momentum. The creativity and ingenuity of the Power BI community—reflected in the innovative visualizations and learning materials they produced—never ceased to amaze me. The contributions of users like Ruth Pozuelo Martinez, who actively tested features and provided ideas for improvement, were instrumental in Charticulator’s growth.
A New Era: Charticulator Visual Community
In December 2023, the original Charticulator visual was retired from the Power BI visuals store. Although the code remains available on GitHub, it has not been actively maintained since 2022. Recognizing the importance of this tool, I took the reins to give Charticulator a fresh lease on life: Charticulator Visual Community.
Under my stewardship, Charticulator has evolved into two distinct visuals:
1. Charticulator Visual (Edit and Display): This is a non-certified version that allows users to edit and display their custom charts within Power BI.
2. Charticulator Display-Only Visual: A certified version tailored for secure and streamlined use in production environments.
Additionally, I launched an online web application that provides users with an accessible platform to create and edit Charticulator templates.
What is new in Charticulator (Community)
Dataset editor
The new application has a built-in table editor that allows you to easily fix outlines in data or create mock data for prototyping charts.
Quick overview of the feature:
Click on "+New" button to create an empty table with one sample column and row.

Use the context menu to add/remove columns and rows.
Or import existing data and edit the data before using it in the application.

Public datasets
Another feature is the list of publicly available datasets that can be imported with one click.

On the list, you can find dataset samples used in most demos of Charticulator and also dataset samples from the Vega repository. The list can be filtered by typing the dataset name in the textbox on top of the view.
The feature allows newcomers to start playing with Charticulator without worrying about data samples.
Public charts
The next feature is a list of public and private charts and templates built by using the Charticulator App.

The chart list can be filtered by using two buttons (Public and Private) and the name of the chart by typing the chart name in the textbox.
The private list is user charts saved in the local browser DB (IndexedDB), that the user had before.
Public list is publicly available charts and templates that can be imported by one click.
On importing the template (the file doesn't contain the dataset in the file) the Charticulator requires mapping current data to template columns or importing new data for tables.

The public chart list works in the app and visual too.
On importing a chart in the visual, the Editor replaces the dataset given by Power BI, but after saving the chart, Editor Visual requires mapping template columns to visual columns.

Gradient fill
Marks objects have gradient fill attributes with two colors.

To set the gradient need to clear the Fill attribute of the mark then three attributes Gradient start, Gradient stop, and Gradient rotation are available for editing. The feature works for Shape mark. Gradient for Links will be add in the first version of 2025.
In the future, the feature can be extended to use the entire capabilities of SVG gradient (offsets, spreads, more than 2 colors e.t.c.)
Treemap
Another new feature is Treemap layout powered by D3.js library. Introduced by Ben Shneiderman in 1991, a treemap recursively subdivides area into rectangles according to each node’s associated value.

The Charticulator uses D3.js library for positioning and sizing glyphs on Plot Segments.
For example, above a glyph contains one Rectangle mark to build a classic treemap visualization.

Sub-layout properties has Data Expressions for build hierarchical structure and Measure Expression for values.
The Add grouping expression button adds more expression input fields for nested hierarchy.
Inner padding and Outer paddings are responsible for the
gap between glyphs.
GeoJSON support
The next sub-layout is Geo which allows to import GeoJSON data to draw maps. It is also powered by the D3.js library.
Latitude Expression and Longitude Expression define columns for coordinate values and use those values to map glyphs on Plot Segment with a map.

The properties allow to configure (set projections, rotate, translate, scale) rendering of GeoJSON.
Read more in the D3.js documentation and Making maps with D3 article for more context.
Future development idea is allow to bind GeoJSON features to glyphs. It brings interactions with map shapes and figures.
Image opacity changes on selections
Visuals in Power BI change the opacity of other selected elements (bar, circle e.t.c.) on selection by mouse or keyboard to highlight the user selection. There was an issue when the Charticulator template had embedded images.

The charticulator changes the opacity of the image to get a similar effect on images too.
Packing marks inside the glyph
The packing layout positions marks by Force simulations of D3.js library, which implements a velocity Verlet numerical integrator for simulating physical forces on particles (nodes).

The new properties of Packing into a container (Packing X and Packing Y) allow to set borders by glyph size for marks in simulation.
In the above example centers of all circles are inside the glyph area when Packing X is enabled (There is enough space vertically, and enabling Packing Y doesn't give effect).
Several Nested Charts in Editor visual
The new Editor visual supports several levels of nested chart (The original version supported only one level of nested chart).

Now, users can work with all nested charts in the editor and not need to use Charticulator App to edit several nested charts.
Polygon marks
The new mark Polygon brings the tool to create any figure on glyphs and charts. Currently, the marks are in the preview feature and not final and have some limitations.

To create a polygon, select the Polygon mark in the marks dropdown, then click several times on the chart or glyph editor area to set the vertexes of the polygon. Use double-click by mouse to finish creating the polygon. By default, the Charticulator creates a closed polygon.
On attributes editor you can uncheck the Closed property to remove the last edge.
Lock text rotation on the Polar plot segment
Text marks have the property that blocks rotating the text depending on the angle of the glyph on polar coordinates.

Checking of Ignore polar coordinate rotation on Attributes panel of text mark orients all text by X axis of cartesian coordinates instead polar coordinates.
Scale editor (Preview)
Scales are the next core item of the Charticulator after constraints. Old Charticulator creates scales implicitly on binding data to mark attributes or to plot axes.

The new scale editor allows to explicitly create scale and set parameters. Then scale can be bound to mark attributes in the current chart or nested chart. It helps to solve the problem of scaling the domain of scale in nested charts, because nested charts work with a subset of data and nested chart scale values aren't unique due to using the same ranges. This is very noticeable when binding data to the color of an object.
In the example below Ruth Pozuelo Martinez shows that the scale applies to the Y-axis of the plot segment in the nested chart, and objects in some nested chart instances aren't visible.

In the final version, the lines in nested charts are on the same level, but the values are significantly different

Constraints editor
The Constraint solver is a core feature of the Charticulator that is responsible for positioning all objects on canvas.

Snapping marks by mouse does not always allow users to bind one mark to another properly. Especially when several other objects are close to each other.

To bind the text mark to the center of the Rectangle mark we need to use the constraints editor by specifying equality equations between mark attribute values.
Looking Ahead
As Charticulator embarks on this new chapter, the goal remains clear: to empower users to create unique, data-driven visualizations that tell compelling stories. If you have resources, tutorials, or use cases related to Charticulator, I invite you to share them with me. Let’s continue building a vibrant community around this powerful tool.
Special thanks to all who have supported and contributed to Charticulator’s journey. Your creativity and feedback fuel its ongoing evolution.
Best regards,
Ilfat Galiev
Comments