DateTime轴图表未显示任何数据

时间:2016-06-08 11:58:30

标签: c# datetime plot graph charts

我尝试使用以下参数初始化C#中的图表轴:

chart1.ChartAreas[0].AxisX.Maximum = 20;
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisX.Interval = 5;

System.DateTime x1 = new System.DateTime(2016, 6, 8, 12, 00, 00);
System.DateTime x2 = new System.DateTime(2016, 6, 8, 23, 00, 00);

chart1.ChartAreas[0].AxisY.Maximum = x2.ToOADate();
chart1.ChartAreas[0].AxisY.Minimum = x1.ToOADate();

运行上述代码后,我尝试使用以下方法向图表添加一些数据:

 DateTime x = DateTime.Now;
 chart1.Series[0].Points.AddXY(i,x.ToOADate());

(其中我在后续数据添加时增加)

但是,只要我初始化两个轴,图表就不会显示任何数据。

如果我没有设置Y轴最小值和最大值,那么它会成功显示以下图表。

demo plot

如何初始化两个轴并继续在图表中绘制数据?

谢谢!

-----更新1 -----

它现在正在工作。做出的改变: 在设计器视图中,对于图表的属性,Charting / Series / YValueType已更改为DateTime。之前只有时间。

谢谢!

1 个答案:

答案 0 :(得分:0)

我尝试了以下代码,    我将图表控件,按钮和计时器放在表格中。

DateTime minValue, maxValue;
    int i = 0;
    public Form6()
    {
        InitializeComponent();
    }


    private void button1_Click(object sender, EventArgs e)
    {
        chart1.ChartAreas[0].AxisY.LabelStyle.Format = "HH:mm:ss";

        minValue = DateTime.Now;       
        maxValue = minValue.AddSeconds(60);

        chart1.ChartAreas[0].AxisX.Maximum = 20;
        chart1.ChartAreas[0].AxisX.Minimum = 0;
        chart1.ChartAreas[0].AxisX.Interval = 5;

        System.DateTime x1 = new System.DateTime(2016, 6, 8, 12, 00, 00);
        System.DateTime x2 = new System.DateTime(2016, 6, 8, 23, 00, 00);

        chart1.ChartAreas[0].AxisY.Maximum = x2.ToOADate();
        chart1.ChartAreas[0].AxisY.Minimum = x1.ToOADate();

        timer1.Start();

    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        DateTime x = DateTime.Now;
        chart1.Series[0].Points.AddXY(i, x.ToOADate());
        i++;
    }