Ellipse
Ellipses can be added to plots
ScottPlot.Plot myPlot = new();
Random rand = new(0);
for (int i = 0; i < 5; i++)
{
myPlot.Add.Ellipse(
xCenter: rand.Next(-10, 10),
yCenter: rand.Next(-10, 10),
radiusX: rand.Next(1, 7),
radiusY: rand.Next(1, 7));
}
myPlot.SavePng("demo.png", 400, 300);
Circles can be added to plots. Circles are really Ellipses with the same X and Y radius. Note that circles appear as ellipses unless the plot has a square coordinate system.
ScottPlot.Plot myPlot = new();
Random rand = new(0);
for (int i = 0; i < 5; i++)
{
myPlot.Add.Circle(
xCenter: rand.Next(-10, 10),
yCenter: rand.Next(-10, 10),
radius: rand.Next(1, 7));
}
myPlot.SavePng("demo.png", 400, 300);
For circles to always appear circular, the coordinate system must be forced to always display square-shaped pixels. This can be achieved by enabling the axis scale lock.
ScottPlot.Plot myPlot = new();
Random rand = new(0);
for (int i = 0; i < 5; i++)
{
myPlot.Add.Circle(
xCenter: rand.Next(-10, 10),
yCenter: rand.Next(-10, 10),
radius: rand.Next(1, 7));
}
// force pixels to have a 1:1 scale ratio
myPlot.Axes.SquareUnits();
myPlot.SavePng("demo.png", 400, 300);
Ellipses styles can be extensively customized
ScottPlot.Plot myPlot = new();
var circle = myPlot.Add.Circle(center: Coordinates.Origin, radius: 5);
circle.LineStyle.Width = 5;
circle.LineStyle.Pattern = LinePattern.Dashed;
circle.LineStyle.Color = Colors.Green;
circle.FillStyle.Color = Colors.Navy;
circle.FillStyle.HatchColor = Colors.Red;
circle.FillStyle.Hatch = new ScottPlot.Hatches.Striped();
myPlot.Axes.SetLimits(-10, 10, -10, 10);
myPlot.SavePng("demo.png", 400, 300);
Ellipses can also be rotated
ScottPlot.Plot myPlot = new();
Coordinates center = new(0, 0);
double radiusX = 1;
double radiusY = 5;
for (int i = 0; i < 5; i++)
{
Angle angle = Angle.FromDegrees(i * 20);
var el = myPlot.Add.Ellipse(center, radiusX, radiusY, angle);
el.LineWidth = 3;
el.LineColor = Colors.Blue.WithAlpha(0.1 + 0.2 * i);
}
// force pixels to have a 1:1 scale ratio
ScottPlot.AxisRules.SquareZoomOut rule = new(myPlot.Axes.Bottom, myPlot.Axes.Left);
myPlot.Axes.Rules.Add(rule);
myPlot.SavePng("demo.png", 400, 300);




