I am trying to chart data with around 20k - 40k records, however I have noticed the data shown on the chart is incorrect. Below is a simple example which replicates the issue and I've also attached a screenshot.
There are two problems:
There are two problems:
- Even though the values are integers, the chart displays them as floating point numbers.
- When one value or a small set is a much different range then the rest, the chart displays a completely wrong value.
<
Grid
>
<
Grid.RowDefinitions
>
<
RowDefinition
/>
<
RowDefinition
/>
</
Grid.RowDefinitions
>
<
telerik:RadGridView
x:Name
=
"GridData"
Grid.Row
=
"0"
/>
<
telerik:RadChart
x:Name
=
"ChartData"
Grid.Row
=
"1"
>
<
telerik:RadChart.SeriesMappings
>
<
telerik:SeriesMapping
>
<
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:LineSeriesDefinition
ShowPointMarks
=
"False"
/>
</
telerik:SeriesMapping.SeriesDefinition
>
<
telerik:SeriesMapping.ItemMappings
>
<
telerik:ItemMapping
DataPointMember
=
"XValue"
FieldName
=
"Row"
/>
<
telerik:ItemMapping
DataPointMember
=
"YValue"
FieldName
=
"Value"
/>
</
telerik:SeriesMapping.ItemMappings
>
</
telerik:SeriesMapping
>
</
telerik:RadChart.SeriesMappings
>
</
telerik:RadChart
>
</
Grid
>
public
class
Data
{
public
int
Row {
get
;
set
; }
public
int
Value {
get
;
set
; }
}
public
partial
class
MainPage : UserControl
{
private
Random _rand =
new
Random();
public
MainPage()
{
InitializeComponent();
List<Data> data = GenerateData().ToList();
for
(
int
i = 5000; i < 5100; ++i)
{
data[i].Value = 100;
}
GridData.ItemsSource = data;
ChartData.ItemsSource = data;
}
private
IEnumerable<Data> GenerateData()
{
for
(
int
i = 1; i < 25000; ++i)
{
yield
return
new
Data()
{
Row = i,
Value = RandomNumber()
};
}
}
private
int
RandomNumber()
{
return
_rand.Next(400, 450);
}
}