Я работаю с диаграммой C# и ссылкой. в C# - How do you make a chart object start at 0 on the X axis?C# chart Как установить начальные точки оси X
Вот мой пример данных:
X Value (From _LOWER)
======================
0 0
0.5 100
1.0 200
1.5 300
2.0 400
2.5 500
4.0 600
5.0 700
7.5 800
10.0 900
12.5 1000
Я использую следующий код:
chart1.Series.Clear();
chart1.ChartAreas[0].AxisY.Interval = 200;
chart1.ChartAreas[0].AxisX.Interval = 0.5;
chart1.ChartAreas[0].AxisX.IntervalAutoMode = IntervalAutoMode.VariableCount ;
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.Number;
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.IsStartedFromZero = true;
chart1.ChartAreas[0].AxisY.Minimum = 0;
chart1.Series.Add("Trial 1");
chart1.Series["Trial 1"].ChartType = SeriesChartType.Line;
chart1.Series["Trial 1"].BorderWidth = 2;
chart1.Series["Trial 1"].XValueType = ChartValueType.String;
chart1.Series["Trial 1"].IsValueShownAsLabel = true;
this.chart1.ChartAreas[0].AxisX.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.DashDotDot;
this.chart1.ChartAreas[0].AxisY.MajorGrid.LineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.DashDotDot;
this.chart1.ChartAreas[0].IsSameFontSizeForAllAxes = true;
DataRowCollection _dr = _CObjectsofClasses._obj_CDatabase._MGetDataRows("select _LOWER from tblCHART ORDER BY [_CHARTID]");
foreach (DataRow _drRow in _dr)
{
chart1.Series["Trial 1"].Points.AddY(_drRow[0]);
}
А вот это выход
Как вы видите диаграмма значений начинается с 1, но это shoul d начинается с 0, как показано на диаграмме 100, отображается на 2 вместо 0,5, 200 отображается на 3 вместо 1 и т. д.
, пожалуйста, предложите мне, где я ошибаюсь.
Обновление
Если я использую код (добавление оси XY)
DataRowCollection _dr = _CObjectsofClasses._obj_CDatabase._MGetDataRows("select _SNAME, _LOWER from tblCHART ORDER BY [_CHARTID]");
foreach (DataRow _drRow in _dr)
{
chart1.Series["Trial 1"].Points.AddXY(_drRow[0], _drRow[1]);
}
затем я получаю выходной
не получают 0,5 интервалов и нулю, показывающие 2 раза
Используйте Points.AddXY, чтобы явно задавать значения x вместо Points.AddY! – TaW
@Taw также попытался, но изменил эти метки X-оси, как в моих образцовых данных, значит 2.0, 4.0, 5.0 и т. Д., А не в 0,5 интервалах, как показано на диаграмме. –
См. Мой обновленный ответ! – TaW