代码之家  ›  专栏  ›  技术社区  ›  Kevin

将数据绘制到Winforms图表xy(时间,int)

  •  1
  • Kevin  · 技术社区  · 7 年前

    我是Winforms的新手,希望在绘制数据点方面寻求帮助。

    我有一个图,用以下代码初始化它:

    public form1()。
    {
    初始化组件();
    var ChartArea=chrtaamHistory.ChartAreaces[0];
    var ChartSeries=chrtaamHistory.series[0];
    var _currdetime=datetime.now;
    
    //设置X轴属性
    _ chartrarea.axisx.labelstyle.format=“hh:mm”;
    _ chartrarea.axisx.intervaltype=datetimeintervaltype.minutes;
    _ chartArea.axisx.interval=30;
    _图表区.axisx.最小值=
    新的日期时间(_currdetime.year,_currdetime.month,_currdetime.day,0,0,0).tooadate();
    _图表区.axisx.最大值=
    新的日期时间(_currdetime.year,_currdetime.month,_currdetime.day,_currdetime.hour,
    _ currdetime.minute,_currdetime.second).tooadate();
    
    //设置Y轴属性
    _ ChartArea.axisy.最小值=0;
    _ ChartArea.axisy.max=500;
    _ ChartArea.axisy.interval=50;
    
    //设置序列属性
    _ chartSeries.chartType=seriesChartType.spline;
    _ chartSeries.xValueType=chartValueType.Time;
    _ chartSeries.yValueType=chartValueType.Int32;
    }
    

    图表将如下所示:

    现在我被困在这里了。我不知道当x轴是一个time>有人能告诉我怎么做或给我指出正确的方向吗?public Form1() { InitializeComponent(); var _chartArea = chrtAdamHistory.ChartAreas[0]; var _chartSeries = chrtAdamHistory.Series[0]; var _currDateTime = DateTime.Now; //Set X Axis Properties _chartArea.AxisX.LabelStyle.Format = "HH:mm"; _chartArea.AxisX.IntervalType = DateTimeIntervalType.Minutes; _chartArea.AxisX.Interval = 30; _chartArea.AxisX.Minimum = new DateTime(_currDateTime.Year, _currDateTime.Month, _currDateTime.Day, 0, 0, 0).ToOADate(); _chartArea.AxisX.Maximum = new DateTime(_currDateTime.Year, _currDateTime.Month, _currDateTime.Day, _currDateTime.Hour, _currDateTime.Minute, _currDateTime.Second).ToOADate(); //Set Y Axis Properties _chartArea.AxisY.Minimum = 0; _chartArea.AxisY.Maximum = 500; _chartArea.AxisY.Interval = 50; //Set Series Properties _chartSeries.ChartType = SeriesChartType.Spline; _chartSeries.XValueType = ChartValueType.Time; _chartSeries.YValueType = ChartValueType.Int32; }

    图表如下:

    enter image description here

    现在我被困在这里了。我不知道如何添加数据点X Axis是一个Time. 有人能告诉我怎么做或给我指出正确的方向吗?

    3 回复  |  直到 7 年前
        1
  •  1
  •   TaW    7 年前

    Chart Auto

    Minimun Maximum

    double Date DateTime

    ToOADate Time

    DataPoints

    chrtAdamHistory.Series[0].Points.AddXY(timeValue.AddHours(-2).ToOADate(), intValue);   
    chrtAdamHistory.Series[0].Points.AddXY(timeValue.AddHours(-1).ToOADate(), intValue + 12);
    chrtAdamHistory.Series[0].Points.AddXY(timeValue.ToOADate(), intValue + 17);
    

     _chartSeries.XValueType = ChartValueType.Auto;      // either that or..
     _chartSeries.XValueType = ChartValueType.DateTime;  // ..that will work 
    

    DateTime.Now.ToOADate() 43291.412605081

        2
  •  0
  •   Kamil    7 年前

    DateTime timeValue = DateTime.Now; // for example
    Int32 intValue = 324;
    
    chrtAdamHistory.Series[0].Points.AddXY(timeValue, int32value);
    
        3
  •  -1
  •   PaulEdison    7 年前


        for (int i=0; i < 1440; i++)
        {
            _chartSeries.Points.AddXY(i, f(i));
        }
        chrtAdamHistory.Invalidate();
    
    推荐文章