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(); }//Очистить график - функция
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; }
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(); }
//Отображение нескольких графиков 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(); }
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); }
/// <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(); } }