Построение всех значений даты по оси X в подсвечнике C#
Необходимо найти решение для построения всех значений даты на графике свечей в C#. Иметь структуру, которая содержит дату в виде строки вместе со значениями open, high, low и close. Чтение значений из CSV-файла с данными о запасах. В настоящее время он правильно отображает все точки, но только несколько значений даты в зависимости от количества нанесенных значений. Смотрите прикрепленное изображение.
Я хотел бы, чтобы он отображал все даты, которые применимы к значениям на графике. Так что в этом случае даты, которые должны отображаться, следующие:
- 2/25/2015
- 2/24/2015
- 2/23/2015
- 2/20/2015
- 2/19/2015
- 2/18/2015
- 2/17/2015
- 2/13/2015
- 2/12/2015
- 2/11/2015
- 2/10/2015
- 2/9/2015
- 2/6/2015
- 2/5/2015
- 2/4/2015
- 2/3/2015
- 2/2/2015
Отображаются только даты 02.02.2015, 09.02.2015, 17.02.2015 и 24.02.2015. Ниже приведен код, связанный с текущим состоянием диаграммы.
chart1.Series["stock"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Candlestick;
/*set the maximum y value axis*/
chart1.ChartAreas[0].AxisY.Maximum = System.Convert.ToDouble(maxX);
/*set the minimum y value axis*/
chart1.ChartAreas[0].AxisY.Minimum = System.Convert.ToDouble(minY);
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = System.Drawing.Color.LightGray;
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = System.Drawing.Color.LightGray;
chart1.ChartAreas[0].AxisX.MinorGrid.LineColor = System.Drawing.Color.LightGray;
chart1.ChartAreas[0].AxisX.LabelStyle.Angle = 45;
foreach (candleStick stock in chartData)
{
int currentIndex = chart1.Series["stock"].Points.Count;
chart1.Series["stock"].Points.AddXY(stock.date, stock.high);
chart1.Series["stock"].Points[currentIndex].YValues[0] = System.Convert.ToDouble(stock.high);
chart1.Series["stock"].Points[currentIndex].YValues[1] = System.Convert.ToDouble(stock.low);
chart1.Series["stock"].Points[currentIndex].YValues[2] = System.Convert.ToDouble(stock.open);
chart1.Series["stock"].Points[currentIndex].YValues[3] = System.Convert.ToDouble(stock.close);
chart1.Series["stock"].Points[currentIndex].AxisLabel = stock.date;
chart1.Series["stock"].Points[currentIndex].Color = Color.Black;
}
Любая помощь по этому вопросу будет принята с благодарностью. Спасибо!
1 ответ
Это может помочь,
chart1.ChartAreas[0].AxisX.IntervalType = DateTimeIntervalType.NotSet;
chart1.ChartAreas[0].AxisX.Interval=1;