Exemple #1
0
        private void DrawAxis(Graphics g, bool drawHorizontalMarkers)
        {
            g.DrawLine(new Pen(Color.Black, 1.0f), MarginLeft, Height - MarginBottomDiagram, Width - MarginRight, Height - MarginBottomDiagram);

            if (drawHorizontalMarkers)
            {
                var xData          = PlotDataSeries.First().XCoordData.ToArray();
                var fontForMarkers = new Font("Arial", 8f);
                var markerPen      = new Pen(Color.Black, 1.0f);

                var   countMarkers       = 3;
                float markerInterval     = (float)(Width - MarginRight - MarginLeft) / ((float)countMarkers - 1f);
                float markerDataInterval = (float)(xData.Length) / ((float)countMarkers - 1f);

                for (var i = 0; i < countMarkers; i++)
                {
                    g.DrawLine(markerPen, MarginLeft + i * markerInterval, Height - MarginBottomDiagram + 3, MarginLeft + i * markerInterval, Height - MarginBottomDiagram);
                }
            }
            g.DrawLine(new Pen(Color.Black, 1.0f), MarginLeft, Height - MarginBottomDiagram, MarginLeft, MarginTop);
        }
Exemple #2
0
        public void DrawTo(string file)
        {
            using (Bitmap bitmap = new Bitmap(Width, Height))
            {
                using (Graphics g = Graphics.FromImage(bitmap))
                {
                    g.Clear(Color.White);

                    DrawHorLines(g, 10);

                    foreach (var item in PlotDataSeries.OrderBy(x => x.Order))
                    {
                        DrawOneCurve(g, item.Pen, item.DataRow);
                    }

                    DrawAxis(g, drawHorizontalMarkers: true);

                    DrawingLegend(g);
                }
                bitmap.Save(file, ImageFormat.Png);
            }
        }