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

TwColumnChart

TwColumnChart is a Blazor column chart that compares categories with vertical columns. Supports grouped, stacked, 100% stacked and diverging layouts.

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

TwColumnChart draws vertical columns whose length shows the value of each category. Columns suit short category labels and a handful of categories, and read naturally for values over time. Pass the category labels as Categories and one or more ChartSeries as Series. For the other direction use TwBarChart; the parameters are identical.
Revenue by regionThousands of pounds
0100200300400500
0100200300400500
NorthRevenue 420
SouthRevenue 310
EastRevenue 275
WestRevenue 380
NorthSouthEastWest
RAZOR
<TwChart Title="Revenue by region" Description="Thousands of pounds">
    <TwColumnChart Categories="@_regions" Series="@_revenue" />
</TwChart>
CSHARP
@code {
    private readonly string[] _regions = ["North", "South", "East", "West"];
    
    private readonly ChartSeries[] _revenue = [new("Revenue", [420, 310, 275, 380])];
    
    private readonly ChartSeries[] _yearly =
    [
        new("2024", [360, 290, 240, 330]),
        new("2025", [420, 310, 275, 380])
    ];
}

Value labels

Set ShowValues to label each bar with its value. It works best with few bars; with many, the axis and tooltips carry the values more cleanly.
Revenue by region
0100200300400500
0100200300400500
420
310
275
380
NorthRevenue 420
SouthRevenue 310
EastRevenue 275
WestRevenue 380
NorthSouthEastWest
RAZOR
<TwChart Title="Revenue by region">
    <TwColumnChart Categories="@_regions" Series="@_revenue" ShowValues="true" />
</TwChart>

Grouped

Pass more than one series and each category shows its series side by side. A legend appears automatically, and clicking an entry hides that series.
Revenue by region and year
0100200300400500
0100200300400500
North2024 3602025 420
South2024 2902025 310
East2024 2402025 275
West2024 3302025 380
NorthSouthEastWest
RAZOR
<TwChart Title="Revenue by region and year">
    <TwColumnChart Categories="@_regions" Series="@_yearly" />
</TwChart>

Stacked

Set Stacking to ChartStacking.Stacked to pile the series on top of each other, so each bar shows the category total as well as its parts.
Revenue by region and year
0200400600800
0200400600800
North2024 3602025 420
South2024 2902025 310
East2024 2402025 275
West2024 3302025 380
NorthSouthEastWest
RAZOR
<TwChart Title="Revenue by region and year">
    <TwColumnChart Categories="@_regions" Series="@_yearly" Stacking="ChartStacking.Stacked" />
</TwChart>

100% stacked

ChartStacking.Percent scales every bar to the same length, so the chart compares shares instead of totals. Tooltips and the table view still show the original values.
Share of revenue by year
0%20%40%60%80%100%
0%20%40%60%80%100%
North2024 3602025 420
South2024 2902025 310
East2024 2402025 275
West2024 3302025 380
NorthSouthEastWest
RAZOR
<TwChart Title="Share of revenue by year">
    <TwColumnChart Categories="@_regions" Series="@_yearly" Stacking="ChartStacking.Percent" />
</TwChart>

Diverging

Negative values grow the other way from the baseline. Stack a positive and a negative series to make a diverging chart, for example agreement against disagreement.
The new layout is easier to usePercent of responses
-50050100
-50050100
DesignAgree 62Disagree -18
EngineeringAgree 48Disagree -30
SalesAgree 35Disagree -41
SupportAgree 54Disagree -22
DesignEngineeringSalesSupport
RAZOR
<TwChart Title="The new layout is easier to use" Description="Percent of responses">
    <TwColumnChart Categories="@_teams" Series="@_sentiment" Stacking="ChartStacking.Stacked" />
</TwChart>
CSHARP
@code {
    private readonly string[] _teams = ["Design", "Engineering", "Sales", "Support"];
    
    private readonly ChartSeries[] _sentiment =
    [
        new("Agree", [62, 48, 35, 54]),
        new("Disagree", [-18, -30, -41, -22])
    ];
}

Summary

Tooltips and the table view give the value of every series for each category.

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
  • Value labels
  • Grouped
  • Stacked
  • 100% stacked
  • Diverging
  • 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