Exemple #1
0
        void Clear_list_zed()
        {
            ZedGraph.MasterPane masterPane = zedGraph1.MasterPane;

            masterPane.PaneList.Clear();
            GraphPane pane = new GraphPane();

            pane.CurveList.Clear();

            // Добавим новый график в MasterPane
            masterPane.Add(pane);

            // Установим масштаб по умолчанию для оси X
            pane.XAxis.Scale.MinAuto = true;
            pane.XAxis.Scale.MaxAuto = true;
            // Установим масштаб по умолчанию для оси Y
            pane.YAxis.Scale.MinAuto = true;
            pane.YAxis.Scale.MaxAuto = true;

            using (Graphics g = CreateGraphics())
            {
                masterPane.SetLayout(g, PaneLayout.SingleColumn);
            }

            zedGraph1.AxisChange();
            zedGraph1.Invalidate();
        }//Очистить график - функция
Exemple #2
0
        private void Form2_Load(object sender, EventArgs e)
        {
            ZedGraph.MasterPane masterPane = ZDC_ColorMap.MasterPane;
            ZDC_ColorMap.IsSynchronizeXAxes = true;
            ZDC_ColorMap.IsSynchronizeYAxes = false;


            //masterPane.PaneList.Clear();
            masterPane.Add(ZDC_OpticalPlot.GraphPane);

            using (Graphics g = CreateGraphics())
            {
                // Графики будут размещены в один столбец друг под другом
                masterPane.SetLayout(g, PaneLayout.SingleColumn);
            }

            int   topMargin    = 0;
            int   leftMargin   = 25;
            int   bottomMargin = 25;
            int   rightMargin  = 25;
            int   spacingY     = 1;
            float labelGapY    = 1;
            float labelGapX    = 1;


            //masterPane[0].Chart.Rect = new RectangleF(leftMargin, topMargin, ZDC_ColorMap.Width - leftMargin - rightMargin, ZDC_ColorMap.Height / 2 - topMargin - spacingY);
            //masterPane[1].Chart.Rect = new RectangleF(leftMargin, ZDC_ColorMap.Height / 2 + spacingY, ZDC_ColorMap.Width - leftMargin - rightMargin, ZDC_ColorMap.Height / 2 - spacingY - bottomMargin);

            masterPane[0].Margin.Top    = 0.0f;
            masterPane[0].Margin.Left   = 0.0f;
            masterPane[0].Margin.Right  = 20.0f; //20
            masterPane[0].Margin.Bottom = 0.0f;

            masterPane[1].Margin.Top    = 10.0f; //10
            masterPane[1].Margin.Left   = 0.0f;
            masterPane[1].Margin.Right  = 0.0f;
            masterPane[1].Margin.Bottom = 0.0f;

            masterPane[0].XAxis.Title.IsVisible = false;
            masterPane[0].YAxis.Title.IsVisible = false;
            masterPane[0].Title.IsVisible       = false;
            masterPane[0].XAxis.Scale.IsVisible = false;
            masterPane[0].XAxis.Scale.LabelGap  = labelGapY;
            masterPane.InnerPaneGap             = 0.0f;
            masterPane[1].XAxis.Title.IsVisible = false;
            masterPane[1].YAxis.Title.IsVisible = false;
            masterPane[1].Title.IsVisible       = false;
            masterPane[1].XAxis.Scale.LabelGap  = labelGapX;
            masterPane[1].YAxis.Scale.LabelGap  = labelGapY;
            ZDC_ColorMap.AxisChange();
            ZDC_ColorMap.Invalidate();

            //masterPane.Margin.Bottom = 5;
            int        rr   = (int)masterPane[0].Chart.Rect.Width;
            RectangleF rect = masterPane.Rect;

            ZDC_OpticalPlot.GraphPane.AxisChangeEvent += GraphPane_AxisChangeEvent;
        }
Exemple #3
0
        private void DrawGraph()
        {
            // —оздаем экземпл¤р класса MasterPane, который представл¤ет собой область,
            // на которйо "лежат" все графики (экземпл¤ры класса GraphPane)
            ZedGraph.MasterPane masterPane = zedGraph.MasterPane;

            // ѕо умолчанию в MasterPane содержитс¤ один экземпл¤р класса GraphPane
            // (который можно получить из свойства zedGraph.GraphPane)
            // ќчистим этот список, так как потом мы будем создавать графики вручную
            masterPane.PaneList.Clear();

            // ƒобавим три графика
            for (int i = 0; i < 3; i++)
            {
                // —оздаем экземпл¤р класса GraphPane, представл¤ющий собой один график
                GraphPane pane = new GraphPane();

                // «аполнение графика данными не изменилось,
                // поэтому вынесем заполнение точек в отдельный метод DrawSingleGraph()
                DrawSingleGraph(pane);

                // ƒобавим новый график в MasterPane
                masterPane.Add(pane);
            }

            // Ѕудем размещать добавленные графики в MasterPane
            using (Graphics g = CreateGraphics())
            {
                // «акомментарены разные варианты (не все) размещени¤ графиков.

                // √рафики будут размещены в один столбец друг под другом
                //masterPane.SetLayout (g, PaneLayout.SingleColumn);

                //√рафики будут размещены в одну строку друг за другом
                //masterPane.SetLayout (g, PaneLayout.SingleRow);

                // √рафики будут размещены в две строки,
                // в первой будет один столбец, а во второй - две
                masterPane.SetLayout(g, PaneLayout.ExplicitCol12);
            }

            // ќбновим оси и перерисуем график
            zedGraph.AxisChange();
            zedGraph.Invalidate();
        }
Exemple #4
0
        //Отображение нескольких графиков
        public void displayGraph(Dictionary <PointPairList, String> listOfLists)
        {
            ZedGraph.MasterPane masterPane = zedGraph.MasterPane;
            masterPane.PaneList.Clear();

            foreach (KeyValuePair <PointPairList, String> points in listOfLists)
            {
                GraphPane pane = createPane(points.Key, points.Value);
                masterPane.Add(pane);
            }

            using (Graphics g = CreateGraphics())
            {
                masterPane.SetLayout(g, PaneLayout.ForceSquare);
            }

            zedGraph.AxisChange();
            zedGraph.Invalidate();
        }
Exemple #5
0
        private void DrawGraph()
        {
            // Создаем экземпляр класса MasterPane, который представляет собой область,
            // на которйо "лежат" все графики (экземпляры класса GraphPane)
            ZedGraph.MasterPane masterPane = zedGraph.MasterPane;

            // По умолчанию в MasterPane содержится один экземпляр класса GraphPane
            // (который можно получить из свойства zedGraph.GraphPane)
            // Очистим этот список, так как потом мы будем создавать графики вручную
            masterPane.PaneList.Clear();

            // Добавим три графика
            for (int i = 0; i < 9; i++)
            {
                // Создаем экземпляр класса GraphPane, представляющий собой один график
                GraphPane pane = new GraphPane();

                // Заполнение графика данными не изменилось,
                // поэтому вынесем заполнение точек в отдельный метод DrawSingleGraph()
                DrawSingleGraph(pane);

                // Добавим новый график в MasterPane
                masterPane.Add(pane);
            }

            // Будем размещать добавленные графики в MasterPane
            using (Graphics g = CreateGraphics())
            {
                // Графики будут размещены в три строки.
                // В первой будет 4 столбца,
                // Во второй - 2
                // В третей - 3
                // Если бы второй аргумент был равен false, то массив из третьего аргумента
                // задавал бы не количество столбцов в каждой строке,
                // а количество строк в каждом столбце
                masterPane.SetLayout(g, true, new int[] { 4, 2, 3 });
            }

            // Обновим оси и перерисуем график
            zedGraph.AxisChange();
            zedGraph.Invalidate();
        }
        public static MasterPane InitMasterPanel(this ZedGraphControl zgcGraph, Graphics g, int graphCount, string title, PaneLayout pl = PaneLayout.SingleColumn)
        {
            MasterPane myMaster = zgcGraph.MasterPane;

            myMaster.PaneList.Clear();

            myMaster.Margin.All   = 10;
            myMaster.InnerPaneGap = 10;

            // Set the master pane title
            myMaster.Title.Text       = title;
            myMaster.Title.IsVisible  = true;
            myMaster.Legend.IsVisible = false;

            for (int i = 0; i < graphCount; i++)
            {
                myMaster.Add(new GraphPane());
            }
            myMaster.SetLayout(g, pl);
            zgcGraph.AxisChange();
            return(myMaster);
        }
Exemple #7
0
        /// <summary>
        /// Creates a new plot in the zedGraph Control
        /// </summary>
        /// <param name="peptide"></param>
        /// <param name="scanNumber"></param>
        /// <param name="unmatchedPointsList"></param>
        /// <param name="matchedPointsList"></param>
        public void PlotGraph(string peptide, string scanNumber, PointPairList unmatchedPointsList, PointPairList matchedPointsList)
        {
            //save the data
            m_currentPeptide    = peptide;
            m_currentScanNumber = scanNumber;
            m_unmatchedPoints   = unmatchedPointsList;
            m_matchedPoints     = matchedPointsList;

            //clear the masterPane
            ZedGraph.MasterPane master = this.MasterPane;
            master.GraphObjList.Clear();
            master.PaneList.Clear();

            // split the points into groups
            List <PointPairList> unmatchedPointsSection;
            List <PointPairList> matchedPointsSection;

            // Divides the points into sections, this is used when we create more than one plot
            DividePointsIntoSections(m_options.numberOfPlots, m_matchedPoints, m_unmatchedPoints, out matchedPointsSection, out unmatchedPointsSection);

            // Show the masterpane title
            master.Title.IsVisible = true;
            master.Title.Text      = "Peptide: " + peptide + " Scan: " + scanNumber;

            // Leave a margin around the masterpane, but only a small gap between panes
            master.Margin.All   = 10;
            master.InnerPaneGap = 5;

            for (int j = 0; j < m_options.numberOfPlots; j++)
            {
                // Create a new graph -- dimensions to be set later by MasterPane Layout
                GraphPane myPaneT = new GraphPane(new Rectangle(10, 10, 10, 10),
                                                  "",
                                                  "m/z",
                                                  "Relative Intensity");

                // Set the BaseDimension, so fonts are scale a little bigger
                myPaneT.BaseDimension = m_standardBaseDemension / m_options.numberOfPlots;

                // Hide the XAxis scale and title
                myPaneT.XAxis.Title.IsVisible = false;
                myPaneT.XAxis.Scale.IsVisible = false;
                // Hide the legend, border, and GraphPane title
                myPaneT.Legend.IsVisible = false;
                myPaneT.Border.IsVisible = false;
                myPaneT.Title.IsVisible  = false;

                // Restrict the scale to go right up to the last data point
                double matchedMax   = 0;
                double unmatchedMax = 0;
                double matchedMin   = double.MaxValue;
                double unmatchedMin = double.MaxValue;

                if (matchedPointsSection[j].Count > 0)
                {
                    matchedMax = matchedPointsSection[j][matchedPointsSection[j].Count - 1].X;
                    matchedMin = matchedPointsSection[j][0].X;
                }
                if (unmatchedPointsSection[j].Count > 0)
                {
                    unmatchedMax = unmatchedPointsSection[j][unmatchedPointsSection[j].Count - 1].X;
                    unmatchedMin = unmatchedPointsSection[j][0].X;
                }

                myPaneT.XAxis.Scale.Max = (matchedMax > unmatchedMax) ? matchedMax : unmatchedMax;
                myPaneT.XAxis.Scale.Min = (matchedMin < unmatchedMin) ? matchedMin : unmatchedMin;

                // Remove all margins
                myPaneT.Margin.All = 0;
                // Except, leave some top margin on the first GraphPane
                if (j == 0)
                {
                    myPaneT.XAxis.Scale.Min = myPaneT.XAxis.Scale.Min - 100;
                    myPaneT.Margin.Top      = 20;
                }
                // And some bottom margin on the last GraphPane
                // Also, show the X title and scale on the last GraphPane only
                if (j == m_options.numberOfPlots - 1)
                {
                    myPaneT.XAxis.Scale.Max       = myPaneT.XAxis.Scale.Max + 100;
                    myPaneT.XAxis.Title.IsVisible = true;
                    myPaneT.Legend.IsVisible      = m_options.showLegend;
                    myPaneT.Legend.Position       = LegendPos.BottomCenter;
                }
                myPaneT.XAxis.Scale.IsVisible = true;
                //myPaneT.Margin.Bottom = 10;
                if (j > 0)
                {
                    myPaneT.YAxis.Scale.IsSkipLastLabel = true;
                }
                // This sets the minimum amount of space for the left and right side, respectively
                // The reason for this is so that the ChartRect's all end up being the same size.
                myPaneT.YAxis.MinSpace  = 80;
                myPaneT.Y2Axis.MinSpace = 20;


                // generate the lines
                // Keep the matched points in front by drawing them first.
                OHLCBarItem matchedCurve = myPaneT.AddOHLCBar(matchedCurveName, matchedPointsSection[j], m_options.matchedColor);
                matchedCurve.Bar.Width = 2;
                AddAnnotations(matchedCurve.Points, myPaneT);
                if (!m_options.hideUnmatched)
                {
                    OHLCBarItem unmatchedCurve = myPaneT.AddOHLCBar(unmatchedCurveName, unmatchedPointsSection[j], m_options.unmatchedColor);
                    AddAnnotations(unmatchedCurve.Points, myPaneT);
                }

                // Add the GraphPane to the MasterPane.PaneList
                master.Add(myPaneT);
            }

            //Tell ZedGraph to refigure the axes since the data has changed
            using (Graphics g = this.CreateGraphics())
            {
                // Align the GraphPanes vertically
                if (m_options.numberOfPlots >= 4)
                {
                    master.SetLayout(g, PaneLayout.SquareColPreferred);
                }
                else
                {
                    master.SetLayout(g, PaneLayout.SingleColumn);
                }
                master.AxisChange(g);
                this.PerformAutoScale();
            }
        }