Syncfusion Blazor BarChart with LineChart

313 Views Asked by At

I am using Syncfusion Blazor Bar Chart. I got below requirement for clubbing a Bar chart with line. Is there a way to do this? Any leads?

enter image description here

1

There are 1 best solutions below

0
On BEST ANSWER

We can achieve your requirement (based on the screenshot) using column series and line series in the Chart component. We have also prepared a sample for your reference.

Sample Link: https://www.syncfusion.com/downloads/support/directtrac/general/ze/ColumnLineSeries1543449603.zip

Code Snippet:

<SfChart Title="Hyaat Place Cedar Park 17-4-006" >
    <ChartEvents OnAxisLabelRender="AxisLabelRender"></ChartEvents>
    <ChartPrimaryXAxis ValueType="Syncfusion.Blazor.Charts.ValueType.Category" Interval="1">
        <ChartAxisLabelStyle Color="transparent"></ChartAxisLabelStyle>
        <ChartAxisLineStyle Width="0"></ChartAxisLineStyle>
        <ChartAxisMajorTickLines Width="0"></ChartAxisMajorTickLines>
        <ChartAxisMajorGridLines Width="0"></ChartAxisMajorGridLines>
    </ChartPrimaryXAxis>
    <ChartPrimaryYAxis >
        <ChartAxisLineStyle Width="0"></ChartAxisLineStyle>
        <ChartAxisMajorTickLines Width="0"></ChartAxisMajorTickLines>
    </ChartPrimaryYAxis>
    <ChartSeriesCollection>
        <ChartSeries DataSource="@ChartPoints" Fill="#3864c6" XName="Country" YName="GoldMedal" Type="ChartSeriesType.Column">
        </ChartSeries>
        <ChartSeries DataSource="@ChartPoints"  Fill="#85dba0" XName="Country" YName="SilverMedal" Type="ChartSeriesType.Column">
        </ChartSeries>
        <ChartSeries DataSource="@ChartPoints" Fill="#837fca" Width="3" XName="Country" YName="BronzeMedal" Type="ChartSeriesType.Line">
            <ChartMarker Visible="true" Width="5" Height="5" Fill="#837fca">
            </ChartMarker>
        </ChartSeries>
    </ChartSeriesCollection>
    <ChartTooltipSettings Enable="true"></ChartTooltipSettings>
</SfChart>

// add your additional code here

public void AxisLabelRender(AxisLabelRenderEventArgs args)
    {
        if (args.Axis.Name == "PrimaryYAxis")
        {
            args.Text = "$"+ Convert.ToDouble(args.Text).ToString("N0");
        }
    }

Screenshot: enter image description here