Как поместить метку данных часов по оси Y на линейчатой ​​диаграмме диапазона - PullRequest
0 голосов

Изображение: Нажмите> Мой результат или результат желаний

Мне надоело менять метку данных оси Y со «даты» на «временную шкалу», но я не знаю, как это сделать. Предположим, что метка данных оси Y может быть изменена на временную шкалу, я также не знаю, как разместить код на оси XY при изменении диаграммы.

public Form1()
{
    InitializeComponent();

    DateTime currentData = DateTime.Now.Date;
    chart1.Series["RUN"].Points.AddXY(1, currentData, currentData.AddDays(5));     
    chart1.Series["WAIT"].Points.AddXY(1, currentData.AddDays(5), currentData.AddDays(10));
    chart1.Series["WAIT"].Points.AddXY(1, currentData.AddDays(10), currentData.AddDays(17));
    chart1.Series["OFF"].Points.AddXY(1, currentData.AddDays(17), currentData.AddDays(30));


    chart1.Series["RUN"].Points[0].AxisLabel = "Machine 1";
    chart1.Series["RUN"]["DrawSideBySide"] = "false";

    chart1.ChartAreas["Default"].AxisY.Minimum = currentData.AddDays(-1).ToOADate();
    chart1.ChartAreas["Default"].AxisY.Maximum = currentData.AddDays(28).ToOADate();

     ...
}

Итак, кто-нибудь может помочь мне выполнить приведенное ниже условие.

Я хочу сделать график на временной шкале, как на втором рисунке. Информация, которую я хочу показать на графике на временной шкале, выглядит следующим образом:

1.Y-AXIS: показывать метки как час после второго изображения.

начало: 08:00, конец 20:00

интервал: 1 час

  1. После Y-AXIS менялись как на часы. Гильдии мне код, как это должно быть ADDXY.

Пример

Серия ["RUN") поместила его в 08:35 - 10:45 в машине 1

Серия [«ПОДОЖДИТЕ»] поместила его в 10:45 - 12:45 на машине 1

Series [«OFF»] вставьте его в 12:45 - 20:00 на машине 1

Ответы [ 2 ]

0 голосов

на гуннероне,

Ваша информация дана для этой темы. Вы очень добры и полезны. СПАСИБО ТАКОЕ.

Извините за мой недавний ответ.

0 голосов
/ 18 января 2019

Это можно сделать, убедившись, что все добавленные вами даты и времени имеют одинаковую дату. А затем, установив несколько параметров на оси Y. Смотрите ниже:

public Form1()
{
  InitializeComponent();

  DateTime startTime = DateTime.MinValue.Add(new TimeSpan(8, 25, 0));
  DateTime endTime   = DateTime.MinValue.Add(new TimeSpan(10, 45, 0));
  chart1.Series["RUN"].Points.AddXY(
    1,
    startTime,
    endTime);

  startTime = DateTime.MinValue.Add(new TimeSpan(10, 45, 0));
  endTime = DateTime.MinValue.Add(new TimeSpan(12, 45, 0));
  chart1.Series["WAIT"].Points.AddXY(
    1,
    startTime,
    endTime);

  startTime = DateTime.MinValue.Add(new TimeSpan(12, 45, 0));
  endTime = DateTime.MinValue.Add(new TimeSpan(20, 0, 0));
  chart1.Series["OFF"].Points.AddXY(
    1,
    startTime,
    endTime);


  chart1.Series["RUN"].Points[0].AxisLabel = "Machine 1";
  chart1.Series["RUN"]["DrawSideBySide"] = "false";

  chart1.ChartAreas["Default"].AxisY.Interval = 60; // Show 1 hour intervals.
  chart1.ChartAreas["Default"].AxisY.IntervalType = DateTimeIntervalType.Minutes;
  chart1.ChartAreas["Default"].AxisY.LabelStyle.Format = "HH:mm"; // Set the format to show hours and minutes.
}

Example chart

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...