График реального времени ZedGraph в C # - PullRequest
0 голосов
/ 16 октября 2019

Добро пожаловать, у меня проблема с созданием стиля представления ZedGraph в Windows Forms. Единственная проблема заключается в том, что метки не отображаются в одном и том же месте, но всегда движутся по оси. На оси Y это значение меры, а на оси X будет время ЧЧ: мм: сс, это фактическое время из XDate и DateTime.Now. Можешь посмотреть и поправить меня. Я новичок в ZedGraph, поэтому я не знаю, как его использовать. Это график обновления

                if (Data.Probes.Count() > 10)
                {
                    plot.Invoke(new Action(() =>
                    {
                            plot.GraphPane.XAxis.Scale.Min = Data.Probes.ElementAt(0).X;
                            plot.GraphPane.XAxis.Scale.Max = Date.ScaleMax;
                            plot.AxisChange();

                        plot.AxisChange();
                        plot.Refresh();
                    }));
                }

, и это инициализация графика

                var pane = plot.GraphPane;

                plot.GraphPane.YAxis.Title.FontSpec.Size = 15;
                plot.GraphPane.XAxis.Title.FontSpec.Size = 15;

                pane.CurveList.Clear();
                pane.GraphObjList.Clear();

                pane.XAxis.MinorGrid.IsVisible = true;
                pane.YAxis.MinorGrid.IsVisible = true;

                pane.XAxis.Scale.Min = new XDate(DateTime.Now);
                pane.XAxis.Type = AxisType.Date;
                pane.XAxis.Scale.Format = "HH:mm:ss";

                pane.XAxis.Scale.MinorUnit = DateUnit.Second;
                pane.XAxis.Scale.MajorUnit = DateUnit.Second;

                pane.YAxis.Scale.MinorStep = 0.1;
                pane.YAxis.Scale.MajorStep = 1.0;

                pane.YAxis.Type = AxisType.Linear;
                pane.YAxis.Scale.Format = "0.0";
                pane.XAxis.Scale.IsSkipLastLabel = false;
                pane.XAxis.Scale.IsSkipFirstLabel = false;

                plot.GraphPane.IsFontsScaled = false;


                LineItem pointsCurve = pane.AddCurve("", Data.Probes, Color.Red);
                pointsCurve.Line.IsVisible = true;
                pointsCurve.Line.Width = 2.0F;

                pointsCurve.Symbol.Fill = new Fill(new Color[] { Color.Blue, Color.Green, Color.Red });
                pointsCurve.Symbol.Fill.Type = FillType.Solid;
                pointsCurve.Symbol.Type = SymbolType.None;
                pointsCurve.Symbol.Border.IsVisible = true;

                pointsCurve.Symbol.Border.IsVisible = true;

                pane.AxisChange();
                plot.Refresh();
...