Handling series with missing items

Thread is closed for posting
6 posts, 0 answers
  1. Simon
    Simon avatar
    16 posts
    Member since:
    Jul 2008

    Posted 20 Feb 2009 Link to this post

    I have a data set that I want to present as a line chart.

    I've specified the x axis labels as one of the columns, a 2nd column is the datagroupcolumn and the 3rd is the value.

    The issue arises because the xaxis appears to be the distinct values from the xaxis column however for some of the groups these rows don't exist and aren't plotted this results in some series the plots don't line up with the x axis correctly.

    imagine this data set

    x axis    Group    Value
    1            1            1
    2            1            2     
    3            1            2     
    4            1            2     
    3            2            10     
    4            2            11     


    You will note that the group 2 doesn't have any values for x values 1 and 2. The chart however seems to plot by index value and not by x axis value. i.e. at the nth position of the axis it plots group[i].value[n], so in the data above for xaxis 1 we get Group 1 =1 and Group2 = 10.

    Apart from filling in all the gaps in the dataset what can be done.
  2. Ves
    Admin
    Ves avatar
    2926 posts

    Posted 23 Feb 2009 Link to this post

    Hi Simon,

    Indeed, by default RadChart plots its items by index value. You can force an item to a certain X position by setting its XValue. For databound chart you need to set the DataXColumn property of the ChartSeries. However, when grouping is applied you cannot have pre-defined series. In this case you need to use the DataManager. You can set its ValuesXColumn, so that the auto-created series will use this column/field name to populate the XValue property of their items. Here is an example:

            DataTable tbl = new DataTable(); 
            DataColumn col = new DataColumn("XValue"); 
            col.DataType = typeof(double); 
            tbl.Columns.Add(col); 
            col = new DataColumn("Group"); 
            col.DataType = typeof(double); 
            tbl.Columns.Add(col); 
            col = new DataColumn("YValue"); 
            col.DataType = typeof(double); 
            tbl.Columns.Add(col); 
     
            tbl.Rows.Add(new object[] { 1, 1, 1 }); 
            tbl.Rows.Add(new object[] { 2, 1, 2 }); 
            tbl.Rows.Add(new object[] { 3, 1, 2 }); 
            tbl.Rows.Add(new object[] { 4, 1, 2}); 
            tbl.Rows.Add(new object[] { 3, 2, 10 }); 
            tbl.Rows.Add(new object[] { 4, 2, 11 }); 
     
            RadChart1.DataSource = tbl; 
            RadChart1.DataGroupColumn = "Group"
            RadChart1.DataManager.ValuesXColumn = "XValue"
            RadChart1.DataBind(); 

    Hope this helps.

    Regards,
    Ves
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Check out the tips for optimizing your support resource searches.
  3. Simon
    Simon avatar
    16 posts
    Member since:
    Jul 2008

    Posted 24 Feb 2009 Link to this post

    I've tried your suggestion and I get "The type of column with name  DaysTil is not numeric"

    The datasource is an array of type 

    class

     

    RegRate { public int ConferenceId { get; set; } public double DaysTil { get; set; } public int Count { get; set; } public int Attended { get; set; } public double AttendedRate { get; set; } }

    I've tried double, int and decimal and all the same.

     

  4. Ves
    Admin
    Ves avatar
    2926 posts

    Posted 27 Feb 2009 Link to this post

    Hello Simon,

    I am afraid you have hit a bug in RadChart. There should not be any difference between binding to an array or to another datasource. Unfortunately, this is not the case at the moment, so this type of binding is not available for arrays. Still, if you use a List you will be able to apply this approach.

    Sincerely,
    Ves
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Check out the tips for optimizing your support resource searches.
  5. Simon
    Simon avatar
    16 posts
    Member since:
    Jul 2008

    Posted 27 Feb 2009 Link to this post

    If I use a datatable I can still get the same error. This is the scenario I get

    My data set needs to be order by the grouping value in order to be able to generate running totals.

    If I then use that in the chart, the x values aren't sorted.

    If I then order the data by the x value  I get the same column is not a numeric value error.
  6. Ves
    Admin
    Ves avatar
    2926 posts

    Posted 02 Mar 2009 Link to this post

    Hello Simon,

    We are not currently aware of such issues. Can you please open a formal support ticket and attach a small runnable page, showing this behavior. Please, include the details about the desired scenario and the expected result, so we can debug it locally and provide further assistance.

    All the best,
    Ves
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Check out the tips for optimizing your support resource searches.
Back to Top