Пример #1
0
 private void RennderDiscrete(GraphSurface surface, Histogram histo)
 {
     foreach (var bin in histo.Bins)
     {
         var leader = Data.FirstOrDefault(i => bin.Contains(YFunc(i)));
         surface.Rectangle(new ScaledValue(bin.Range.Min) + 1.0, new ScaledValue(0), new ScaledValue(bin.Range.Max) - 1.0,
                           new ScaledValue(bin.Value),
                           Pen(leader), Brush(leader));
     }
 }
Пример #2
0
        public override void Render(GraphSurface surface)
        {
            var pos = 0.1;

            foreach (var datum in Data)
            {
                surface.Rectangle(new ScaledValue(pos), new ScaledValue(0), new ScaledValue(pos + 0.9),
                                  new ScaledValue(YFunc(datum)),
                                  Pen(datum), Brush(datum));
                AddLabel(surface, datum, new ScaledValue(pos + 0.5));
                pos += 1;
            }
        }
Пример #3
0
            public void DrawBox(GraphSurface surface, ScaledValue left, ScaledValue midline, ScaledValue right,
                                Func <T, Pen> pen, Func <T, Brush> brush, Func <T, Brush> backgroundBrush)
            {
                surface.Rectangle(left, c75.Position, right, c25.Position, pen(c75.Item), backgroundBrush(c50.Item));
                void InnerLine(SingleBoxValue value, Pen usePen = null) => surface.Line(left, value.Position, right, value.Position,
                                                                                        usePen ?? pen(value.Item));

                InnerLine(min);
                var lightPen = pen(c50.Item);

                InnerLine(c50, new Pen(lightPen.Brush, lightPen.Thickness * 2));
                InnerLine(max);
                surface.Line(midline, c75.Position, midline, max.Position, pen(max.Item));
                surface.Line(midline, min.Position, midline, c25.Position, pen(min.Item));
                var separator = surface.GetGlyphSeparator();

                foreach (var outlier in outliers)
                {
                    separator.DrawGlyph((outlier.Value <highOutlier && outlier.Value> lowOutlier)?null:brush(outlier.Item), pen(outlier.Item), 3, midline, outlier.Position,
                                        Glyphs.Circle);
                }
            }