I am creating RadHTMLChart programmatically to generate a single line chart with date on the x-axis and integers on the Y axis.. Everything seems to be working correctly but when I look closer to the data points the graph does not seem to be drawing every singles data point from the source. I am attaching an screenshot of the generated chart . I know that between the firs tool tip ("58") and the second tool tip ("31) . I have some data points that fluctuate to 59 then back to 58 and then 59 again but I do not see this reflected on my graph. Does HtmlChart takes an avarage to draw the graph or how does it work? Please any help would be appreciate it.
The data source of the graph is obtained of a filtered CSV file.
Here is my code:
RadHtmlChart PowerChart =
new
RadHtmlChart();
PowerChart.ID =
"PowerChart"
;
PowerChart.Width = Unit.Pixel(1200);
PowerChart.Height = Unit.Pixel(500);
PowerChart.Transitions =
true
;
PowerChart.Skin =
"Silk"
;
PowerChart.Appearance.FillStyle.BackgroundColor = System.Drawing.Color.White;
PowerChart.ChartTitle.Appearance.Align = Telerik.Web.UI.HtmlChart.ChartTitleAlign.Center;
PowerChart.ChartTitle.Appearance.BackgroundColor = System.Drawing.Color.Transparent;
PowerChart.ChartTitle.Appearance.Position = Telerik.Web.UI.HtmlChart.ChartTitlePosition.Top;
LineSeries PowerChartLineSeries =
new
LineSeries();
//PowerChartLineSeries.DataFieldY = "BatteryCapacity"; // ??? mayb non global
PowerChart.PlotArea.XAxis.DataLabelsField =
"DateandTime"
;
PowerChart.PlotArea.XAxis.Type = Telerik.Web.UI.HtmlChart.AxisType.Date;
PowerChart.PlotArea.XAxis.TitleAppearance.Text =
"Date"
;
PowerChart.PlotArea.XAxis.MajorGridLines.Color = System.Drawing.ColorTranslator.FromHtml(
"#EFEFEF"
);
PowerChart.PlotArea.XAxis.MajorGridLines.Width = 1;
PowerChart.PlotArea.XAxis.MinorGridLines.Color = System.Drawing.ColorTranslator.FromHtml(
"#F7F7F7"
);
PowerChart.PlotArea.XAxis.MinorGridLines.Width = 1;
PlotBand yAxisPlotBandDanger =
new
PlotBand();
yAxisPlotBandDanger.Color = System.Drawing.ColorTranslator.FromHtml(
"#CC0000"
);
yAxisPlotBandDanger.Alpha = 190;
PlotBand yAxisPlotBandDanger2 =
new
PlotBand();
yAxisPlotBandDanger2.Color = System.Drawing.ColorTranslator.FromHtml(
"#CC0000"
);
yAxisPlotBandDanger2.Alpha = 190;
PlotBand yAxisPlotBandWarning =
new
PlotBand();
yAxisPlotBandWarning.Color = System.Drawing.Color.Yellow;
yAxisPlotBandWarning.Alpha = 190;
PlotBand yAxisPlotBandWarning2 =
new
PlotBand();
yAxisPlotBandWarning2.Color = System.Drawing.Color.Yellow;
yAxisPlotBandWarning2.Alpha = 190;
PowerChart.ChartTitle.Text =
"Batttery Capacity in the last month"
;
PowerChart.PlotArea.XAxis.BaseUnit = Telerik.Web.UI.HtmlChart.DateTimeBaseUnit.Days;
PowerChart.PlotArea.YAxis.Step = 10;
PowerChart.PlotArea.YAxis.MinValue = 0;
PowerChart.PlotArea.YAxis.MaxValue = 120;
yAxisPlotBandDanger.From = 0;
yAxisPlotBandDanger.To = 5;
yAxisPlotBandWarning.From = 5;
yAxisPlotBandWarning.To = 10;
PowerChart.PlotArea.YAxis.TitleAppearance.Text =
"Battery Capacity"
;
PowerChart.PlotArea.YAxis.LabelsAppearance.DataFormatString =
"{0}%"
;
PowerChart.PlotArea.YAxis.PlotBands.Add(yAxisPlotBandDanger);
PowerChart.PlotArea.YAxis.PlotBands.Add(yAxisPlotBandWarning);
PowerChartLineSeries.DataFieldY =
"BatteryCapacity"
;
PowerChart.PlotArea.Series.Add(PowerChartLineSeries);
HtmlChartHolder.Controls.Add(PowerChart);
PowerChart.DataSource = GetDataTableToGraph(4,
"BatteryCapacity"
);
PowerChart.DataBind();
public
DataTable GetDataTableToGraph(
int
option,
string
powerVariable)
{
DateTime olddate;
DataTable sourceTable =
new
DataTable();
sourceTable.Columns.AddRange(
new
DataColumn[] {
new
DataColumn(
"DateandTime"
,
typeof
(DateTime)),
new
DataColumn(
"BatteryCapacity"
,
typeof
(
int
)),
new
DataColumn(
"BatteryChargeState"
,
typeof
(
string
)),
new
DataColumn(
"BatteryStatus"
,
typeof
(
string
)),
new
DataColumn(
"BatteryVoltage"
,
typeof
(
double
)),
new
DataColumn(
"Temperature"
,
typeof
(
double
)),
new
DataColumn(
"InputVoltage"
,
typeof
(
double
)),
new
DataColumn(
"InputFrequency"
,
typeof
(
double
)),
new
DataColumn(
"OutputCurrent"
,
typeof
(
double
)),
new
DataColumn(
"OutputLoad"
,
typeof
(
int
)),
new
DataColumn(
"OutputSource"
,
typeof
(
string
)),
new
DataColumn(
"OutputVoltage"
,
typeof
(
double
)),
new
DataColumn(
"LRTLB"
,
typeof
(
string
))
});
try
{
string
directory = ReadPowerDisplayRegistry(
"Dir"
) +
"Service\\PWRDATA.csv"
;
string
[] fileContent = File.ReadAllLines(directory);
for
(
int
i = 2; i < fileContent.Count(); i++)
{
string
[] rowData = fileContent[i].Split(
','
);
sourceTable.Rows.Add(rowData);
}
string
[] selectedColumns =
new
[] {
"DateandTime"
, powerVariable };
DataTable newDt =
new
DataView(sourceTable).ToTable(
false
, selectedColumns);
if
(option == 0)
{
olddate = DateTime.Now.AddMinutes(-30);
}
else
if
(option == 1)
{
olddate = DateTime.Now.AddMinutes(-60);
}
else
if
(option == 2)
{
olddate = DateTime.Now.AddDays(-1);
}
else
if
(option == 3)
{
olddate = DateTime.Now.AddDays(-7);
}
else
{
olddate = DateTime.Now.AddMonths(-1);
}
newDt.DefaultView.RowFilter = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,
"[DateandTime] >#{0}#"
, olddate);
//newDt.DefaultView.RowFilter = string.Format
return
newDt;
}
catch
{
return
null
;
}
}