Feature support
Feature support
Which Theme flags and Plot settings each mark honors. A blank cell means the mark ignores the flag today, or the call does not compile or raises; the column’s small print says which. Generated from each mark type’s supports_* constants (dataviz/marks.mojo) by pixi run docs, and checked against every mark’s rendered output by tests/test_feature_support.mojo, so the page and the code cannot disagree.
| Mark | Theme.tooltips, Plot.tooltips() |
Theme.show_data_labels |
horizontal=True |
annotate_line(), annotate_area() |
annotate_vline() |
annotate_band(), point, arrow, best_fit |
scale_x_log() |
scale_y_log() |
encode(color=, size=) |
|---|---|---|---|---|---|---|---|---|---|
Mark.POINT |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Mark.LINE |
✓ | ✓ | ✓ | ✓ | ✓ | ||||
Mark.BAR |
✓ | ✓ | ✓ | ✓ | |||||
Mark.AREA |
✓ | ✓ | ✓ | ✓ | |||||
Mark.ARC |
✓ | ✓ | |||||||
Mark.LOLLIPOP |
✓ | ✓ | ✓ | ✓ | |||||
Mark.WATERFALL |
✓ | ✓ | ✓ | ✓ | |||||
Mark.BOX |
✓ | ✓ | ✓ | ||||||
Mark.CANDLESTICK |
✓ | ✓ | ✓ | ||||||
Mark.BULLET |
✓ | ✓ | ✓ | ✓ | |||||
Mark.GANTT |
✓ | ✓ | ✓ | ||||||
Mark.GROUPED_BAR |
✓ | ✓ | ✓ | ✓ | |||||
Mark.STACKED_BAR |
✓ | ✓ | ✓ | ✓ | |||||
Mark.POPULATION_PYRAMID |
✓ | ✓ | ✓ | ||||||
Mark.HEATMAP |
✓ | ||||||||
Mark.CHORD |
✓ | ||||||||
Mark.SINGLE_AXIS |
✓ | ✓ | |||||||
Mark.EFFECT_SCATTER |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Mark.FUNNEL |
✓ | ✓ | |||||||
Mark.BUMP |
✓ | ||||||||
Mark.STREAMGRAPH |
✓ | ✓ | |||||||
Mark.BEESWARM |
✓ | ✓ | ✓ | ||||||
Mark.VIOLIN |
✓ | ✓ | ✓ | ||||||
Mark.RIDGELINE |
✓ | ✓ | |||||||
Mark.NIGHTINGALE |
✓ | ✓ | |||||||
Mark.POLAR_BAR |
✓ | ✓ | |||||||
Mark.POLAR |
✓ | ||||||||
Mark.RADAR |
✓ | ||||||||
Mark.GAUGE |
✓ | ||||||||
Mark.PARALLEL |
|||||||||
Mark.SPAN_CHART |
✓ | ✓ | ✓ | ||||||
Mark.CALENDAR_HEATMAP |
✓ | ||||||||
Mark.CORRPLOT |
✓ | ||||||||
Mark.PUNCHCARD |
✓ | ||||||||
Mark.MARIMEKKO |
✓ | ||||||||
Mark.SUNBURST |
✓ | ||||||||
Mark.TREE |
✓ | ||||||||
Mark.TREEMAP |
✓ | ||||||||
Mark.ARC_DIAGRAM |
✓ | ||||||||
Mark.GRAPH |
✓ | ||||||||
Mark.SANKEY |
✓ | ||||||||
Mark.RADIALBAR |
✓ | ✓ | |||||||
Mark.BARBS |
✓ | ✓ | ✓ | ||||||
Mark.CONTOUR |
✓ | ✓ | ✓ | ||||||
Mark.CONTOURF |
✓ | ✓ | ✓ | ||||||
Mark.TRICONTOUR |
✓ | ✓ | ✓ | ||||||
Mark.TRICONTOURF |
✓ | ✓ | ✓ | ||||||
Mark.KDE |
✓ | ✓ | ✓ | ✓ | |||||
Mark.RUG |
✓ | ✓ | |||||||
Mark.TRIPLOT |
✓ | ✓ | ✓ | ||||||
Mark.TRIPCOLOR |
✓ | ✓ | ✓ | ||||||
Mark.ECDF |
✓ | ✓ | ✓ | ✓ | |||||
Mark.IMSHOW |
✓ | ✓ | ✓ | ||||||
Mark.PCOLORMESH |
✓ | ✓ | ✓ | ✓ | ✓ | ||||
Mark.EVENTPLOT |
✓ | ✓ | |||||||
Mark.POINTPLOT |
✓ | ✓ | ✓ | ||||||
Mark.BOXENPLOT |
✓ | ✓ | ✓ | ||||||
Mark.HIST2D |
✓ | ✓ | ✓ | ✓ | ✓ | ||||
Mark.HEXBIN |
✓ | ✓ | ✓ | ✓ | ✓ | ||||
Mark.QUIVER |
✓ | ✓ | ✓ | ||||||
Mark.HISTOGRAM |
✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
Mark.STREAMPLOT |
✓ | ✓ | ✓ | ||||||
Mark.DENDROGRAM |
✓ | ✓ | ✓ | ||||||
Mark.SCATTER3D |
✓ | ||||||||
Mark.PLOT3D |
|||||||||
Mark.SURFACE3D |
|||||||||
Mark.WIRE3D |
|||||||||
Mark.TRISURF3D |
|||||||||
Mark.BAR3D |
|||||||||
Mark.VOXELS |
|||||||||
Mark.STEM3D |
|||||||||
Mark.QUIVER3D |
|||||||||
Mark.FILL_BETWEEN3D |
Notes
Theme.tooltips,Plot.tooltips(): each datum gets an SVG<title>, shown as a hover tooltip.Tooltips.AUTO, the default, draws them only when a plot has at mostTheme.auto_tooltip_limit(1,000) of them;Tooltips.ONon another mark raises.Theme.show_data_labels: each value is drawn as text; other marks ignore the flag.horizontal=True: the axes swap; other marks ignore the flag. GANTT, SPAN_CHART and EVENTPLOT are horizontal by construction and take no flag.annotate_line(),annotate_area(): a reference line or shaded band across a continuous y axis; on a typed chart the call does not compile for other marks, and raises at render time otherwise.annotate_vline(): a reference line across a continuous x axis; the call does not compile for other marks.annotate_band(),point,arrow,best_fit: overlays placed on continuous x and y axes; the call does not compile for other marks.scale_x_log(): a logarithmic x axis; the call does not compile for other marks.scale_y_log(): a logarithmic y axis; the call does not compile for other marks. AREA and HISTOGRAM force their y domain through zero, which has no logarithm.encode(color=, size=): a value or category per point drives its color or size; the call raises on other marks.
The same table from code: each mark type’s supports_* constants.