Skip to main content
twblazor
Home
  • Get started
  • Tailwind with Blazor
  • Why twblazor?
  • Theme
  • Class Merge
    • Configuring localization
    • RTL Provider
  • Breadcrumb
  • Card
  • Carousel
  • Collapse
  • Footer
  • MenuNew
  • Navbar
  • On This PageNew
  • Sidebar
  • Stepper
  • Tabs
  • Tree List
  • Button
  • Checkbox
  • Color Picker
    • Date
    • Date Range
    • Datetime
    • Datetime Range
    • Time
    • Time Range
  • File Upload
  • NumericNew
  • Radio Button
  • RatingNew
  • Select
  • Slider
  • Switch
  • Textfield
  • Alert
  • Avatar
  • Chip
  • Icon
  • Progress
  • Skeleton
  • Spinner
  • TooltipNew
  • Data Table
  • Pagination
  • Pick List
  • BarcodeNew
  • QR CodeNew
  • CalendarNew
  • Table
  • Overview
  • Area
  • Bar
  • Box Plot
  • Bullet
  • Bump
  • Candlestick
  • Column
  • Dot Plot
  • Dumbbell
  • Funnel
  • Gantt
  • Gauge
  • Heatmap
  • Histogram
  • Icon
  • Line
  • Lollipop
  • Matrix
  • Nightingale
  • Parallel Coordinates
  • Pie
  • Quadrant
  • Radar
  • Radial Bar
  • Range
  • Scatter
  • Slope
  • Small Multiples
  • Strip Plot
  • Treemap
  • Waffle
  • Waterfall
  • Arc Diagram
  • Barcode
  • Beeswarm
  • Bump Area
  • Categorical Scatter
  • Chord Diagram
  • Circular Treemap
  • Contour
  • Convex Treemap
  • Density Plot
  • Dendrogram
  • Euler Diagram
  • Flowchart
  • Hexagonal Binning
  • Horizon
  • Marimekko
  • Network Diagram
  • Radial Histogram
  • Ridgeline
  • Sankey
  • Stream Graph
  • Sunburst
  • Venn Diagram
  • Violin Plot
  • Word Cloud
  • Dialog Service
  • Toast Service
API DocumentationAI Agents & Skills
Home Get Started

Charts

TwMarimekkoChart

TwMarimekkoChart is a Blazor Marimekko chart: columns whose widths show each category's total and whose segments show each series' share of it.

Last updated 18 October 2026

Please be aware this component is new, may have bugs and/or be subject to change. Please report any bugs at https://github.com/twblazor/twblazor/issues.

Basic usage

TwMarimekkoChart takes the same Categories and Series as a column chart. Each column is as wide as its category's total and is split into segments by each series' share, so the area of a segment is its value.
Sales by region and productThousands of pounds
0%25%50%75%100%
0%25%50%75%100%
55.6%
27.8%
16.7%
25%
33.3%
41.7%
30.8%
53.8%
15.4%
NorthCore 50Plus 25Pro 15Total 90Share 32.7%
SouthCore 30Plus 40Pro 50Total 120Share 43.6%
WestCore 20Plus 35Pro 10Total 65Share 23.6%
NorthSouthWest
RAZOR
<TwChart Title="Sales by region and product" Description="Thousands of pounds">
    <TwMarimekkoChart Categories="@_regions" Series="@_products" />
</TwChart>
CSHARP
@code {
    private readonly string[] _regions = ["North", "South", "West"];
    
    private readonly ChartSeries[] _products =
    [
        new("Core", [50, 30, 20]),
        new("Plus", [25, 40, 35]),
        new("Pro", [15, 50, 10])
    ];
}

A market map

The classic use is a market map: segments of a market across the bottom, sized by how big they are, and competitors up the side. A large block is a big prize; a tall segment in a narrow column is a strong position in a small market.
Cloud spend by industry and providerMillions of pounds per year
0%25%50%75%100%
0%25%50%75%100%
46.7%
28.9%
15.6%
30%
40%
20%
10%
33.3%
20%
35.6%
11.1%
FinanceNorthwind ¤420Contoso ¤260Fabrikam ¤140Others ¤80Total ¤900Share 37.3%
RetailNorthwind ¤180Contoso ¤240Fabrikam ¤120Others ¤60Total ¤600Share 24.9%
HealthcareNorthwind ¤150Contoso ¤90Fabrikam ¤160Others ¤50Total ¤450Share 18.7%
MediaNorthwind ¤60Contoso ¤110Fabrikam ¤30Others ¤40Total ¤240Share 10%
Public sectorNorthwind ¤90Contoso ¤40Fabrikam ¤70Others ¤20Total ¤220Share 9.1%
FinanceRetailHealthcareMediaPublic sector
RAZOR
<TwChart Title="Cloud spend by industry and provider" Description="Millions of pounds per year">
    <TwMarimekkoChart Categories="@_industries" Series="@_providers" CategoryHeader="Industry" ValueFormat="C0" Height="ChartHeight.Large" />
</TwChart>
CSHARP
@code {
    private readonly string[] _industries = ["Finance", "Retail", "Healthcare", "Media", "Public sector"];
    
    private readonly ChartSeries[] _providers =
    [
        new("Northwind", [420, 180, 150, 60, 90]),
        new("Contoso", [260, 240, 90, 110, 40]),
        new("Fabrikam", [140, 120, 160, 30, 70]),
        new("Others", [80, 60, 50, 40, 20])
    ];
}

Uneven categories

A column too narrow for its name loses the label under it but keeps its tooltip and its row in the table view. Segments with room show their share.
Support tickets by channel and outcome
0%25%50%75%100%
0%25%50%75%100%
64%
28%
73.2%
21.4%
47.5%
30%
22.5%
EmailSolved first time 640Solved later 280Escalated 80Total 1,000Share 56.2%
ChatSolved first time 410Solved later 120Escalated 30Total 560Share 31.5%
PhoneSolved first time 95Solved later 60Escalated 45Total 200Share 11.2%
PostSolved first time 4Solved later 9Escalated 7Total 20Share 1.1%
EmailChatPhone
RAZOR
<TwChart Title="Support tickets by channel and outcome">
    <TwMarimekkoChart Categories="@_channels" Series="@_outcomes" CategoryHeader="Channel" />
</TwChart>
CSHARP
@code {
    private readonly string[] _channels = ["Email", "Chat", "Phone", "Post"];
    
    private readonly ChartSeries[] _outcomes =
    [
        new("Solved first time", [640, 410, 95, 4]),
        new("Solved later", [280, 120, 60, 9]),
        new("Escalated", [80, 30, 45, 7])
    ];
}

When to use

Use a Marimekko chart when both the size of each category and its make-up matter. Missing and negative values count as zero. When the categories are similar in size, a 100% stacked TwColumnChart is easier to read.

Summary

Tooltips and the table view give the value of every series for each category. Tooltips also give the total of each category and its share of the whole.

Shared features

The legend, tooltips, keyboard navigation, table view, value formatting, height and empty state work the same on every chart. See TwChart for those options.

Keyboard navigation

The plot is a single Tab stop. Each data point is announced with its series and value as focus reaches it, and the table view presents the same data without the plot.
Key What it does
Tab Moves focus into the plot, onto the data point last visited.
Arrow Right or Arrow Down Moves to the next data point.
Arrow Left or Arrow Up Moves to the previous data point.
Home or End Moves to the first or last data point.
Escape Hides the tooltip of the focused data point.
Enter or Space On a legend item: shows or hides that series. On the table button: switches between the chart and its data table.

On this page

  • Basic usage
  • A market map
  • Uneven categories
  • When to use
  • Summary
  • Shared features
  • Keyboard navigation
Discord (opens in a new tab) • GitHub (opens in a new tab) • Documentation (opens in a new tab) • MIT License (opens in a new tab) • llms.txt (opens in a new tab)

twblazor is and always will be free and open source.

An unhandled error has occurred. Reload