예제 #1
0
        private static NPlot.Gtk.PlotSurface2D CreatePlotSurface(IEnumerable <IEnumerable <double> > data, IEnumerable <double> t, IEnumerable <string> labels)
        {
            var plotSurface = new NPlot.Gtk.PlotSurface2D();

            plotSurface.Clear();

            plotSurface.Padding = 40;
            plotSurface.Add(new Grid {
                HorizontalGridType = Grid.GridType.Fine, VerticalGridType = Grid.GridType.Fine
            });

            plotSurface.Legend = new Legend
            {
                YOffset = 16,
                HorizontalEdgePlacement = Legend.Placement.Outside,
                VerticalEdgePlacement   = Legend.Placement.Inside
            };
            plotSurface.Legend.AttachTo(PlotSurface2D.XAxisPosition.Bottom, PlotSurface2D.YAxisPosition.Right);

            for (int i = 0; i < data.Count(); i++)
            {
                plotSurface.Add(new LinePlot
                {
                    AbscissaData = t.ToArray(),
                    OrdinateData = data.ElementAt(i).ToArray(),
                    Label        = labels.ElementAt(i),
                    Pen          = new Pen(GetRandomColor(), 2)
                });
            }

            plotSurface.Refresh();
            plotSurface.Show();

            return(plotSurface);
        }
예제 #2
0
        private static NPlot.Gtk.PlotSurface2D CreatePlotSurface(IEnumerable <double> y)
        {
            var plotSurface = new NPlot.Gtk.PlotSurface2D();

            plotSurface.Clear();

            plotSurface.Padding = 40;
            plotSurface.Add(new Grid {
                HorizontalGridType = Grid.GridType.Fine, VerticalGridType = Grid.GridType.Fine
            });
            plotSurface.Add(new LinePlot {
                DataSource = y.ToArray()
            });
            plotSurface.Refresh();
            plotSurface.Show();

            return(plotSurface);
        }