Blazor Chart Overview

The Blazor Chart component allows you to visualize data to your users in a meaningful way so they can draw conclusions. You can use a variety of chart types and control all aspects of the chart's appearance - from colors and fonts, to paddings, margins and templates.

Telerik UI for Blazor Ninja image

The Chart component is part of Telerik UI for Blazor, a professional grade UI library with 100 native components for building modern and feature-rich applications. To try it out sign up for a free 30-day trial.

Creating Blazor Chart

  1. Add the <TelerikChart> tag to your razor page.
  2. Define Chart series and bind them to data.
  3. Configure the category axis (X axis). Either set a CategoryField for each <ChartSeries>, or provide all Categories in bulk in a <ChartCategoryAxis> tag.
  4. Set a <ChartTitle> and the Position of the <ChartLegend>. To make the legend appear, define a Name for each <ChartSeries>.

Basic chart

Basic chart and common settings/elements

        <ChartSeries Type="ChartSeriesType.Line" Name="Product 1 (bound to simple data)" Data="@simpleData">
        <ChartSeries Type="ChartSeriesType.Line" Name="Product 2 (bound to model)" Data="@modelData" Field="@nameof(MyDataModel.SecondSeriesValue)">
            <ChartSeriesLabels Template="#=value# in #=dataItem.ExtraData# quarter" Visible="true"></ChartSeriesLabels>

        <ChartValueAxis Color="red"></ChartValueAxis>

        <ChartCategoryAxis Categories="@xAxisItems"></ChartCategoryAxis>

    <ChartTitle Text="Quarterly sales trend"></ChartTitle>

    <ChartLegend Position="Telerik.Blazor.ChartLegendPosition.Bottom">

@code {
    public class MyDataModel
        public int SecondSeriesValue { get; set; }
        public string ExtraData { get; set; }

    public List<MyDataModel> modelData = new List<MyDataModel>()
        new MyDataModel() { SecondSeriesValue = 1, ExtraData = "first" },
        new MyDataModel() { SecondSeriesValue = 5, ExtraData = "second" },
        new MyDataModel() { SecondSeriesValue = 3, ExtraData = "third" },
        new MyDataModel() { SecondSeriesValue = 2, ExtraData = "fourth" },

    public List<object> simpleData = new List<object>() { 10, 2, 7, 5 };

    public string[] xAxisItems = new string[] { "Q1", "Q2", "Q3", "Q4" };

Chart Elements

Customize Chart Elements - Nested Tags Settings

When configuring nested properties and child elements in your chart, the inner tags will contain their parent tag name and add specifics to its end. In general the structure of such nested tags will be <Chart*Category**Specifics*> where the Category can be one of the following:

  • CategoryAxis
  • ChartArea
  • Legend
  • PlotArea
  • SeriesItems
  • Title
  • Tooltip
  • ValueAxis
  • XAxes
  • YAxes
  • and others

To customize the chart, look for nested tags and their properties - the inner tags will contain their parent tag name and add specifics to its end. For example, the ChartSeries tag has a ChartSeriesLabels tag that exposes configuration options and more child tags.

Chart Size

To control the chart size, use its Width and Height properties. You can read more on how they work in the Dimensions article.

You can also set the chart size in percentage values so it occupies its container when it renderes. If the parent container size changes, you must call the chart's Refresh() C# method after the DOM has been redrawn and the new container dimensions are rendered. You can do this when you explicitly change container sizes (like in the example below), or from code that gets called by events like window.resize. You can find an example of making charts redraw on window.resize in the Responsive Chart sample.

Change the 100% chart size dynamically to have a responsive chart

You can make a responsive chart

<TelerikButton OnClick="@ResizeChart">Resize the container and redraw the chart</TelerikButton>

<div style="border: 1px solid red;width:@ContainerWidth; height: @ContainerHeight">

    <TelerikChart Width ="100%" Height="100%" @ref="theChart">

            <ChartSeries Type="ChartSeriesType.Column" Name="Product 1" Data="@someData">
            <ChartCategoryAxis Categories="@xAxisItems"></ChartCategoryAxis>
        <ChartTitle Text="Quarterly sales trend"></ChartTitle>



@code {
    string ContainerWidth { get; set; } = "400px";
    string ContainerHeight { get; set; } = "300px";
    Telerik.Blazor.Components.TelerikChart theChart { get; set; }

    async Task ResizeChart()
        //resize the container
        ContainerHeight = "500px";
        ContainerWidth = "800px";

        //give time to the framework and browser to resize the actual DOM so the chart can use the expected size
        await Task.Delay(20);

        //redraw the chart

    public List<object> someData = new List<object>() { 10, 2, 7, 5 };

    public string[] xAxisItems = new string[] { "Q1", "Q2", "Q3", "Q4" };

Chart Parameters

The following table lists Chart parameters, which are not discussed elsewhere in the component documentation.

Parameter Type and Default value Description
Width string Controls the width of the StockChart.
Height string Controls the height of the StockChart.
Class string Renders a custom CSS class on the <div class="k-chart"> element.
Transitions bool? Controls if the Chart renders animations.

Chart Reference and Methods

To execute Chart methods, obtain reference to the component instance via @ref.

Method Description
Refresh Use the method to programmatically re-render the Chart.
@using Telerik.Blazor.Components

<TelerikButton OnClick="@RefreshTheChart">Refresh the Chart</TelerikButton>

<TelerikChart @ref="myChartRef">

@code {
    public TelerikChart myChartRef;

    private void RefreshTheChart()

Next Steps

See Also

In this article