예제 #1
0
        private void InitGraph(
            string title, string xAxisTitle,
            string y1AxisTitle, string y2AxisTitle,
            SummaryDataSource[] dataSourceArray)
        {
            _graphPane            = zed.GraphPane;
            _graphPane.Title.Text = title;

            _graphPane.XAxis.Title.Text          = xAxisTitle;
            _graphPane.XAxis.MajorGrid.IsVisible = true;

            _graphPane.YAxis.Title.Text          = y1AxisTitle;
            _graphPane.YAxis.MajorGrid.IsVisible = true;

            _graphPane.Y2Axis.Title.Text          = y2AxisTitle;
            _graphPane.Y2Axis.MajorGrid.IsVisible = false;

            // Create point-pair lists and bind them to the graph control.
            int sourceCount = dataSourceArray.Length;

            _pointPlotArray = new PointPairList[sourceCount];

            for (int i = 0; i < sourceCount; i++)
            {
                SummaryDataSource ds = dataSourceArray[i];
                _pointPlotArray[i] = new PointPairList();

                Color   color   = _plotColorArr[i % 3];
                BarItem barItem = _graphPane.AddBar(ds.Name, _pointPlotArray[i], color);
                barItem.Bar.Fill = new Fill(color);
                _graphPane.BarSettings.MinClusterGap = 0;

                barItem.IsY2Axis = (ds.YAxis == 1);
            }
        }
예제 #2
0
        /// <summary>
        /// Refresh view.
        /// </summary>
        public void RefreshView()
        {
            if (this.InvokeRequired)
            {
                // Note. Must use Invoke(). BeginInvoke() will execute asynchronously and the evolution algorithm therefore
                // may have moved on and will be in an intermediate and indeterminate (between generations) state.
                this.Invoke(new MethodInvoker(delegate()
                {
                    RefreshView();
                }));
                return;
            }

            if (this.IsDisposed)
            {
                return;
            }

            // Update plot points for each series in turn.
            int sourceCount = _dataSourceArray.Length;

            for (int i = 0; i < sourceCount; i++)
            {
                SummaryDataSource ds       = _dataSourceArray[i];
                Point2DDouble[]   pointArr = ds.GetPointArray();
                PointPairList     ppl      = _pointPlotArray[i];
                EnsurePointPairListLength(ppl, pointArr.Length);

                for (int j = 0; j < pointArr.Length; j++)
                {
                    ppl[j].X = pointArr[j].X;
                    ppl[j].Y = pointArr[j].Y;
                }
            }

            // Trigger graph to redraw.
            zed.AxisChange();
            Refresh();
        }