I would like to be able to stack series on a range chart. Currently the best hack recommended by Telerik is to show two charts on top of one another, with no interactivity or legends, https://blazorrepl.telerik.com/wHPclTFm28WuoSOp57.
Source: Is it possible to 'stack' series in a Range Column Chart? in UI for Blazor | Telerik Forums
Thank you
Hi Mark,
Could you share if you have seen such "drill-down" functionality that matches your needs somewhere else so we can use it as a reference to better understand the idea? Additionally, if you could provide a screenshot illustrating the desired result, it would be helpful.
I look forward to hearing from you.
Regards,
Hristian Stefanov
Progress Telerik
Hi Hristian
Regarding 'drill-down', we do not want to click and navigate to a different view. We just wanted it to be visualised on the series. We have used 'drill-down' in other scenarios but it does not fit our requirements for the use-case which prompted this feature request.
Thanks
Hi Mark,
Your feedback on this item is highly appreciated. Thank you.
Regarding the ability to "breakdown" a series into sections, this describes a drill-down functionality that our Charts already offer: DrillDown Charts. I have also prepared an example for you to demonstrate:
<TelerikChart Width="100%"
Height="400px">
<ChartTitle Text="Cash Flow"></ChartTitle>
<ChartSeriesItems>
<ChartSeries Type="ChartSeriesType.Waterfall"
Data="@ChartData"
ColorField="@nameof(CashFlowData.Color)"
Field="@nameof(CashFlowData.Amount)"
CategoryField="@nameof(CashFlowData.Period)"
SummaryField="@nameof(CashFlowData.Summary)"
DrilldownField="@nameof(CashFlowData.Details)">
<ChartSeriesLabels Visible="true"
Format="C0"
Position="@ChartSeriesLabelsPosition.InsideEnd" />
</ChartSeries>
</ChartSeriesItems>
<ChartValueAxes>
<ChartValueAxis Type="ChartValueAxisType.Numeric">
<ChartValueAxisLabels Format="C0" />
</ChartValueAxis>
</ChartValueAxes>
</TelerikChart>
@code {
private CashFlowData[] ChartData { get; set; }
protected override Task OnInitializedAsync()
{
ChartData = GetWaterfallData();
return base.OnInitializedAsync();
}
private CashFlowData[] GetWaterfallData()
{
return new CashFlowData[] {
new CashFlowData
{
Period = "Beginning\nBalance",
Amount = 50000,
Color = "green",
Details = new ChartSeriesDescriptor()
{
Name = "First Details",
Type = ChartSeriesType.Column,
Field = nameof(CashFlowDataInner.Sales),
CategoryField = nameof(CashFlowDataInner.Name),
Data = new List<CashFlowDataInner>()
{
new CashFlowDataInner() { Name = "Name 1", Sales = 30M },
new CashFlowDataInner() { Name = "Name 2", Sales = 20M }
}
}
},
new CashFlowData
{
Period = "Jan",
Amount = 17000,
Color = "green",
Details = new ChartSeriesDescriptor()
{
Name = "Second Details",
Type = ChartSeriesType.Column,
Field = nameof(CashFlowDataInner.Sales),
CategoryField = nameof(CashFlowDataInner.Name),
Data = new List<CashFlowDataInner>()
{
new CashFlowDataInner() { Name = "Name 3", Sales = 50M },
new CashFlowDataInner() { Name = "Name 4", Sales = 40M }
}
}
},
new CashFlowData
{
Period = "Feb",
Amount = 14000,
Color = "green",
Details = new ChartSeriesDescriptor()
{
Name = "Third Details",
Type = ChartSeriesType.Column,
Field = nameof(CashFlowDataInner.Sales),
CategoryField = nameof(CashFlowDataInner.Name),
Data = new List<CashFlowDataInner>()
{
new CashFlowDataInner() { Name = "Name 5", Sales = 70M },
new CashFlowDataInner() { Name = "Name 6", Sales = 60M }
}
}
}
};
}
private class CashFlowData
{
public string Period { get; set; }
public decimal? Amount { get; set; }
public string Summary { get; set; }
public string Color { get; set; }
public ChartSeriesDescriptor Details { get; set; }
}
public class CashFlowDataInner
{
public string Name { get; set; }
public decimal Sales { get; set; }
}
}
I hope this is what you are looking for.
Regards,
Hristian Stefanov
Progress Telerik
Hi Hristian
Thank you for the update and declining our feature request. The latest Telerik workaround is better than the hack suggested previously. Once again, it is unfortunate that Telerik UI for Blazor does not provide the charting functionality we hoped. We understand that the chart series has "To" and "From" values used for plotting. Have you considered the ability to 'breakdown' a series into sections? Which we also hoped might be a feature of a waterfall series. Nonetheless, we will continue to wait for all the other unplanned charting feature requests to mature.
Thanks again
Mark
Hi Mark,
The evaluation process is now complete, and I'm ready to provide you with an update.
Upon careful consideration of the potential problems inherent in implementing such a built-in feature, I regret to share that fulfilling the request is not deemed feasible. This decision stems from this type of chart being designed to display ranges between "from" and "to" values, where complications arise when dealing with visualizing overlapping range values.
Within the context of our Telerik Charts, we've found a new workaround tailored for stacked charts. Setting the "Spacing" of the series to "-1" allows interactivity. You can explore and test the solution using this REPL link to assess whether the results now align with your specific requirements.
Regards,
Hristian Stefanov
Progress Telerik
Thanks, Hristian.
We hope you agree that the feature is appropriate & that you find it feasible. We found an example in the js charting library HighCharts which we have used before: Highchart Stacked Column Range - JSFiddle - Code Playground. In this example we see that HighCharts configure this with 'grouping', set to false:
```javascript
plotOptions: {
columnrange: {
grouping: false
}
},
```
We have various work arounds, e.g. using an 'invisible' base series to manually position column series into the correct location. We tend to struggle with charts that range from positive to negative.
Thanks again,
Mark
Hi Mark,
At present, we are reviewing the feasibility of implementing this requested feature.
Upon completion of our evaluation, the status of this item will be updated accordingly.
Regards,
Hristian Stefanov
Progress Telerik