如何在范围条形图的y轴上放置小时数据标签

时间:2019-01-17 07:22:17

标签: c# winforms

Picture : Click > My execute vs desire result

我已经厌倦了将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();

     ...
}

所以,有人可以帮助我满足以下条件吗?

我要使时间表图表如图2所示。要在时间表图表中显示的信息如下;

1.Y-轴:在第二张图片之后的一个小时显示标签。

开始:08:00结束20:00

间隔:1小时

  1. 将Y轴更改为一个小时后。向我行会代码应如何添加到ADDXY。

示例

Series [“ RUN”]放入机器1的08:35-10:45

Series [“ WAIT”]将其放入机器1的10:45-12:45

Series [“ OFF”]在机器1中放入12:45-20:00

2 个答案:

答案 0 :(得分:0)

您可以通过确保所有添加的DateTime具有相同的日期来完成此操作。然后通过在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

答案 1 :(得分:0)

要加油,

您的信息将针对此主题得到解答。您非常友善,乐于助人。非常感谢。

对不起,我最近的答复。

相关问题