Bar Chart
The Blazor Bar chart displays data as horizontal bars whose lengths vary according to their value. You can use a Bar chart to show a comparison between several sets of data (for example, summaries of sales data for different time periods). Each series is automatically colored differently for easier reading.
The Bar Chart is similar to the Range Bar Chart, which allows the bar to move away from the category axis.
This article assumes you are familiar with the chart basics and data binding.
To create a bar chart:
- add a
ChartSeries
to theChartSeriesItems
collection - set its
Type
property toChartSeriesType.Bar
- provide a data collection to its
Data
property - optionally, provide data for the x-axis
Categories
Bar series
<TelerikChart>
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Bar" Name="Product 1" Data="@series1Data">
</ChartSeries>
<ChartSeries Type="ChartSeriesType.Bar"Name="Product 2" Data="@series2Data">
</ChartSeries>
</ChartSeriesItems>
<ChartCategoryAxes>
<ChartCategoryAxis Categories="@xAxisItems"></ChartCategoryAxis>
</ChartCategoryAxes>
<ChartTitle Text="Quarterly revenue per product"></ChartTitle>
<ChartLegend Position="ChartLegendPosition.Right">
</ChartLegend>
</TelerikChart>
@code {
public List<object> series1Data = new List<object>() { 10, 2, 5, 6 };
public List<object> series2Data = new List<object>() { 5, 8, 2, 7 };
public string[] xAxisItems = new string[] { "Q1", "Q2", "Q3", "Q4" };
}
Bar Chart Specific Appearance Settings
Color
The color of a series is controlled through the Color
property that can take any valid CSS color (for example, #abcdef
, #f00
, or blue
). The color control the fill color of the area.
Color Field
Bar and Column charts can take the color of the series item from the ColorField
of the data source. You can pass a valid CSS color (for example, #abcdef
, #f00
, or blue
).
Colors per series item
<TelerikChart>
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Bar" Data="@theData" ColorField="@nameof(MyChartDataModel.Color)"
Field="@nameof(MyChartDataModel.ItemValue)" CategoryField="@nameof(MyChartDataModel.Category)" />
</ChartSeriesItems>
<ChartTitle Text="Revenue per product" />
<ChartLegend Position="ChartLegendPosition.Right" />
</TelerikChart>
@code {
public class MyChartDataModel
{
public string Category { get; set; }
public double ItemValue { get; set; }
public string Color { get; set; }
}
public List<MyChartDataModel> theData = new List<MyChartDataModel>
{
new MyChartDataModel
{
Category = "Product 1",
ItemValue = 2,
Color = "red"
},
new MyChartDataModel
{
Category = "Product 2",
ItemValue = 3,
Color = "#00ff00"
},
new MyChartDataModel
{
Category = "Product 3",
ItemValue = 4,
Color = "#00f"
}
};
}
Gap and Spacing
You can control the distance between the categories that cluster a data point from each series. To do this, use the Gap
property of the series. It is the distance between categories expressed as a percentage of the bar width.
To set the distance between the bars of different series in the same category, use the Spacing
property. It is the space between the series items in one series category as a proportion of the width of a single series item.
To create overlap, set negative values.
You can configure the values of Gap
and Spacing
for the whole chart in the first series and they are applied for all categories and series items.
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 aChartSeriesLabels
tag that exposes configuration options and more child tags.
An example of this is the rotation the Labels of a categorical chart. You can use the
ChartCategoryAxes
> ChartCategoryAxis
> ChartCategoryAxisLabels
> ChartCategoryAxisLabelsRotation
tag
and set the Angle
property to the desired value in degrees (they might be negative or positive numbers). By using similar approach you can take control over ChartCategoryAxisLabelsMargin
(add margin for top, bottom, left and right), ChartCategoryAxisLabelsPadding
(add padding for top, bottom, left and right) and others.
This approach is not limited only to the Labels - it can be used with all tags that are applicable for the chart type, for example the Chart Title ChartTitle
> ChartTitleMargin
.
@* Add configuration settings for the Category and Value Axes *@
<TelerikChart>
<ChartTitle Text="Site Visitors Stats"></ChartTitle>
<ChartLegend Visible="false"></ChartLegend>
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Bar" Name="Total Visits" Data="@Series1Data">
</ChartSeries>
<ChartSeries Type="ChartSeriesType.Bar" Name="Unique visitors" Data="@Series2Data">
</ChartSeries>
</ChartSeriesItems>
<ChartValueAxes>
<ChartValueAxis Max="140000">
<ChartValueAxisLabels Template="#=value/1000#k"></ChartValueAxisLabels>
</ChartValueAxis>
</ChartValueAxes>
<ChartCategoryAxes>
<ChartCategoryAxis Categories="@Categories">
<ChartCategoryAxisLabels Font="bold 14px 'Times New Roman'" />
</ChartCategoryAxis>
</ChartCategoryAxes>
</TelerikChart>
@code {
public class ModelData
{
public int Value { get; set; }
}
public List<ModelData>
Data = new List<ModelData>()
{
new ModelData() { Value = 1 },
new ModelData() { Value = 3 },
new ModelData() { Value = 2 },
};
public List<object> Series1Data = new List<object>() { 56000, 63000, 74000, 91000, 117000, 138000 };
public List<object> Series2Data = new List<object>() { 52000, 34000, 23000, 48000, 67000, 83000 };
public string[] Categories = new string[] { "Jan", "Feb", "Mar", "Apr", "May", "Jun" };
}