This question is locked. New answers and comments are not allowed.
Hello:
I am considering using the ChartView control, and I have a requirement for dynamically generated series for a line chart. I have a query that returns an varying number of accounts that I want to chart. For example:
account amount
---------- -----------
rent $1000
auto $500
office expenses $400
...
So, my question is: does ChartView component allow you to specify the "account" field so as to dynamically create a series for each unique value?
Thanks,
Mark
I am considering using the ChartView control, and I have a requirement for dynamically generated series for a line chart. I have a query that returns an varying number of accounts that I want to chart. For example:
account amount
---------- -----------
rent $1000
auto $500
office expenses $400
...
So, my question is: does ChartView component allow you to specify the "account" field so as to dynamically create a series for each unique value?
Thanks,
Mark
6 Answers, 1 is accepted
0
Hello Mark,
The current version of RadChartView does not provide built-in grouping support (that would result in dynamic number of generated series) but you can perform the grouping on your own with QueryableCollectionView (part of Telerik.Windows.Data.dll) and create the chart series dynamically based on the created groups like this:
XAML
Kind regards,
Giuseppe
the Telerik team
The current version of RadChartView does not provide built-in grouping support (that would result in dynamic number of generated series) but you can perform the grouping on your own with QueryableCollectionView (part of Telerik.Windows.Data.dll) and create the chart series dynamically based on the created groups like this:
XAML
<UserControl x:Class="SilverlightApplication15.MainPage"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local="clr-namespace:SilverlightApplication15"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400">
<Grid>
<telerik:RadCartesianChart x:Name="RadChart1" Palette="Metro">
<telerik:RadCartesianChart.HorizontalAxis>
<telerik:DateTimeCategoricalAxis LabelFormat="yyyy/MM/dd" />
</telerik:RadCartesianChart.HorizontalAxis>
<telerik:RadCartesianChart.VerticalAxis>
<telerik:LinearAxis />
</telerik:RadCartesianChart.VerticalAxis>
<telerik:RadCartesianChart.Grid>
<telerik:CartesianChartGrid MajorLinesVisibility="Y" />
</telerik:RadCartesianChart.Grid>
</telerik:RadCartesianChart>
</Grid>
</UserControl>
C#using System;using System.Collections;using System.Collections.Generic;using System.Windows.Controls;using Telerik.Windows.Controls.ChartView;using Telerik.Windows.Data;namespace SilverlightApplication15{ public partial class MainPage : UserControl { public MainPage() { InitializeComponent(); List<BusinessObject> data = new List<BusinessObject>(); data.Add(new BusinessObject("Rent", 1000, DateTime.Today.AddDays(1))); data.Add(new BusinessObject("Auto", 5000, DateTime.Today.AddDays(1))); data.Add(new BusinessObject("Auto", 7000, DateTime.Today.AddDays(2))); data.Add(new BusinessObject("Auto", 900, DateTime.Today.AddDays(3))); data.Add(new BusinessObject("Auto", 900, DateTime.Today.AddDays(4))); data.Add(new BusinessObject("Office Expenses", 1000, DateTime.Today.AddDays(1))); data.Add(new BusinessObject("Office Expenses", 2000, DateTime.Today.AddDays(2))); data.Add(new BusinessObject("Office Expenses", 3000, DateTime.Today.AddDays(3))); data.Add(new BusinessObject("Office Expenses", 500, DateTime.Today.AddDays(4))); data.Add(new BusinessObject("Rent", 1000, DateTime.Today.AddDays(2))); data.Add(new BusinessObject("Rent", 2000, DateTime.Today.AddDays(3))); data.Add(new BusinessObject("Rent", 3000, DateTime.Today.AddDays(4))); data.Add(new BusinessObject("Rent", 1500, DateTime.Today.AddDays(5))); data.Add(new BusinessObject("Office Expenses", 1500, DateTime.Today.AddDays(5))); data.Add(new BusinessObject("Auto", 900, DateTime.Today.AddDays(5))); QueryableCollectionView qcv = new QueryableCollectionView(data); qcv.GroupDescriptors.Add(new GroupDescriptor() { Member = "Account" }); foreach (var group in qcv.Groups) { var lineSeries = new LineSeries(); lineSeries.ValueBinding = new PropertyNameDataPointBinding("Amount"); lineSeries.CategoryBinding = new PropertyNameDataPointBinding("Date"); lineSeries.ItemsSource = group as IEnumerable; RadChart1.Series.Add(lineSeries); } } } public class BusinessObject { public BusinessObject(string account, double amount, DateTime date) { this.Account = account; this.Amount = amount; this.Date = date; } public string Account { get; set; } public double Amount { get; set; } public DateTime Date { get; set; } }}Kind regards,
Giuseppe
the Telerik team
Sharpen your .NET Ninja skills! Attend Q1 webinar week and get a chance to win a license! Book your seat now >>
0
Barry
Top achievements
Rank 1
answered on 07 Oct 2015, 04:22 AM
How is this dynamic when you're adding every object explicitly. How does telerik not have the most obvious functionality with their controls. What are you guys doing?
0
Hi Barry,
I am afraid RadChartView still doesn't support grouping out of the box and we haven't include it in the planning for our next release. However, if you think this is a must-have feature you can submit a new feature request in our feedback portal. The more votes the item has the bigger priority will have its implementation.
Regards,
Martin
Telerik
I am afraid RadChartView still doesn't support grouping out of the box and we haven't include it in the planning for our next release. However, if you think this is a must-have feature you can submit a new feature request in our feedback portal. The more votes the item has the bigger priority will have its implementation.
Regards,
Martin
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items
0
Barry
Top achievements
Rank 1
answered on 09 Oct 2015, 04:39 PM
I got dynamic series to work with not too much extra effort. I also got those series lines in a spline series to either be drawn as a solid line or dashed line based on a simple flag in my object. I will post the solution when I have some extra time.
0
Hello Barry,
I am glad to hear that you managed to implement the desired functionality. As for posting your solution, I believe that this will be quite helpful resource for our community.
Regards,
Martin
Telerik
I am glad to hear that you managed to implement the desired functionality. As for posting your solution, I believe that this will be quite helpful resource for our community.
Regards,
Martin
Telerik
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Explore the
Telerik Feedback Portal
and vote to affect the priority of the items
0
Dmitry
Top achievements
Rank 1
answered on 26 Jul 2016, 01:44 PM
Hello, Barry. Please put here your resulting project with dynamically plotted chart. If this is possible of course.
