예제 #1
0
        protected override void DrawCore(Painter painter, ChartData data)
        {
            base.DrawCore(painter, data);
            if (data != null)
            {
                int            start;
                PaintArguments paintArguments = new PaintArguments(painter, data, ChartMargin);

                try
                {
                    foreach (DataSeries dataSeries in data.Series)
                    {
                        float tmpY = painter.Height - paintArguments.AxisYLocation;
                        start = paintArguments.AxisXLocation + (data.Series.IndexOf(dataSeries)) * CalculateInterval(painter, data);
                        painter.DrawString(dataSeries.Name, Style, new ChartPoint(start, tmpY + 2));

                        foreach (DataPoint dataPoint in dataSeries.Point)
                        {
                            float y = dataPoint.Value / paintArguments.Ratio;
                            if (dataPoint.IsValid == true)
                            {
                                if (CalculateInterval(painter, data) > 10)
                                {
                                    painter.DrawString(dataPoint.Value.ToString(), Style, new ChartPoint(start - 7, tmpY - y - 15));
                                }
                            }
                        }
                    }
                    ChartPoint[][] point = ChangeDataToPoints(data, painter);
                    DrawCurveCore(painter, data, point);
                }
                catch
                {
                    //To do
                }
            }
        }
예제 #2
0
        protected override int CalculateInterval(Painter painter, ChartData data)
        {
            PaintArguments paintArguments = new PaintArguments(painter, null, ChartMargin);

            return(paintArguments.AxisWidth / ((data.CalculateColumnCount() + 1) * data.CalculateRowCount()));
        }