ZedGraph横轴显示时间

初始化zedgraph控件

            myPane = zedGraphControl1.GraphPane;
            myPane.XAxis.Scale.IsVisible = true;
            myPane.XAxis.Scale.MajorStepAuto = true;
            myPane.XAxis.Scale.MinorStepAuto = true;
            myPane.XAxis.Type = AxisType.Date;
            myPane.XAxis.Scale.Format = "yyyy-MM-dd hh:mm:ss";
            myPane.XAxis.Scale.Format = "yyyy-MM-dd hh:mm:ss";
            myPane.XAxis.Title.Text = "时间数据";
            myPane.YAxis.Title.Text = "压力数据(mbr)";
            myPane.Title.Text = "压力传感器数据";

数据显示

            zgc.GraphPane.CurveList.Clear();//清除第一次画的点集
            zgc.Refresh();
            myPane.XAxis.Scale.IsVisible = true;
            myPane.XAxis.Scale.MajorStepAuto = true;
            myPane.XAxis.Scale.MinorStepAuto = true;
            myPane.XAxis.Type = AxisType.Date;

 

 

             //获取点集数据

             xData = (double)new XDate(Convert.ToDateTime(dt.Rows[i][0]));//获得x轴时间的点
                dtime1 = Convert.ToDateTime(dt.Rows[i][0]);
                ts = Convert.ToDateTime(dt.Rows[i + 1][0]) -dtime1 ;
                ss = ts.TotalSeconds / 10;
                for (int j = 0; j < 10; j++)
                {
                    dtime2=dtime1.AddSeconds(j * ss);
                    xData = (double)new XDate(dtime2);
                    YPress = Convert.ToDouble (Convert.ToDouble (dt.Rows[i][1 + j]).ToString ("##.#")); //确认小数的文书                    PressList.Add(xData, YPress);
                }

             //加载点集到画布上,设置显示

              myPane.XAxis.Scale.IsVisible = true;
           // myPane.XAxis.Scale.MajorStepAuto = true;
           // myPane.XAxis.Scale.MinorStepAuto = true;
            myPane.XAxis.Scale.Format = "yyyy-MM-dd hh:mm:ss";//横轴格式
            myPane.XAxis.Scale.MajorUnit = DateUnit.Millisecond ;
            myPane.XAxis.Type = AxisType.Date;
            myPane.XAxis.MajorGrid.IsVisible = true;
            myPane.XAxis.MajorGrid.Color = Color.Green;
            myPane.XAxis.MinorGrid.IsVisible = true;
            myPane.XAxis.MinorGrid.Color = Color.Green;

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在ZedGraph中实时显示游标,您可以使用以下步骤: 1. 创建一个ZedGraph控件,并设置其属性,如图像大小,标题和坐标轴。 2. 创建一个LineItem对象,它将表示您要跟踪的数据线。然后将其添加到ZedGraph的GraphPane对象中。 3. 创建一个TextObj对象,用于显示游标值。将其添加到ZedGraph的GraphPane对象中。 4. 创建一个MouseMove事件处理程序,以响应鼠标移动事件。在事件处理程序中,使用MouseEventArgs对象获取鼠标位置,并使用GraphPane对象的ReverseTransform方法将其转换为坐标系值。 5. 使用LineItem对象和TextObj对象更新游标位置和值。 6. 调用ZedGraph控件的Invalidate方法以刷新图像。 下面是一个示例代码片段,它演示了如何实现这些步骤: ```csharp private LineItem _cursorLine; private TextObj _cursorText; private void InitializeGraph() { // 创建ZedGraph控件并设置属性 zedGraphControl1.GraphPane.Title.Text = "Real-time Graph"; zedGraphControl1.GraphPane.XAxis.Title.Text = "Time"; zedGraphControl1.GraphPane.YAxis.Title.Text = "Value"; // 创建数据线 _cursorLine = zedGraphControl1.GraphPane.AddCurve("", new PointPairList(), Color.Red, SymbolType.None); // 创建游标文本 _cursorText = new TextObj("", 0, 0, CoordType.AxisXYScale, AlignH.Left, AlignV.Top); zedGraphControl1.GraphPane.GraphObjList.Add(_cursorText); // 注册MouseMove事件处理程序 zedGraphControl1.MouseMoveEvent += zedGraphControl1_MouseMoveEvent; } private void zedGraphControl1_MouseMoveEvent(object sender, MouseEventArgs e) { // 获取鼠标位置 double x, y; zedGraphControl1.GraphPane.ReverseTransform(e.Location, out x, out y); // 更新游标位置 _cursorLine.Points.Clear(); _cursorLine.Points.Add(new PointPair(x, zedGraphControl1.GraphPane.YAxis.Scale.Min)); _cursorLine.Points.Add(new PointPair(x, zedGraphControl1.GraphPane.YAxis.Scale.Max)); // 更新游标文本 _cursorText.Text = string.Format("X={0:F2}, Y={1:F2}", x, y); _cursorText.Location = new Location(x, y, CoordType.AxisXYScale, AlignH.Left, AlignV.Top); // 刷新图像 zedGraphControl1.Invalidate(); } ``` 请注意,这只是一个简单的示例代码片段,您可能需要根据您的具体需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值