RadCartesianChart visualizes each data point from the BarSeries as a rectangle. These rectangles (or bars) can be displayed either horizontally, or vertically, depending on whether the CategoricalAxis is the vertical axis or the horizontal. When the horizontal axis is categorical, the rectangles are displayed vertically. This means that they have equal width while their height represents the numerical value of each of the data points. On the other hand, when the vertical axis is categorical, the rectangles have equal height, while their width represents the value of the data point.

The BarSeries inherits from CategoricalSeries and requires one CategoricalAxis and one NumericalAxis.

You could check the common CategoricalSeries features that are also applicable to BarSeries at the following link: Series Features.


Here is an example of how to create a basic RadCartesianChart with BarSeries in xaml:

    <telerikChart:BarSeries ItemsSource="{Binding CategoricalData}">
        <telerikChart:PropertyNameDataPointBinding PropertyName="Value"/>
        <telerikChart:PropertyNameDataPointBinding PropertyName="Category"/>



Here is an example of how to create a RadCartesianChart with BarSeries in code:

var chart = new RadCartesianChart
    HorizontalAxis = new CategoricalAxis(),
    VerticalAxis = new NumericalAxis(),
    BindingContext = new CategoricalViewModel()

var series = new BarSeries();
series.SetBinding(BarSeries.ItemsSourceProperty, new Binding("CategoricalData"));   
series.ValueBinding = new PropertyNameDataPointBinding("Value");
series.CategoryBinding = new PropertyNameDataPointBinding("Category");


Here is the sample data:

public class CategoricalData
    public object Category { get; set; }
    public double Value { get; set; }

public class CategoricalViewModel
    private static Random random = new Random();
    private static string[] categories = new string[] { "Greenings", "Perfecto", "NearBy", "Family", "Fresh" };

    public CategoricalViewModel()
        this.CategoricalData = GetCategoricalData();

    public ObservableCollection<CategoricalData> CategoricalData { get; set; }

    public static ObservableCollection<CategoricalData> GetCategoricalData()
        var data = new ObservableCollection<CategoricalData>();
        for (int i = 0; i < categories.Length; i++)
            data.Add(new CategoricalData() { Value = random.Next(50, 100), Category = categories[i] });

        return data;

And here is the result:

Basic BarSeries

See Also

Is this article helpful? Yes / No
Thank you for your feedback!

Give article feedback

Tell us how we can improve this article