Irregular Contour Plot
A contour plot can be created from a collection of 3D data points placed arbitrarily in X/Y plane.
ScottPlot.Plot myPlot = new();
// generate irregularly spaced X/Y/Z data points
Coordinates3d[] cs = new Coordinates3d[1000];
for (int i = 0; i < cs.Length; i++)
{
double x = Generate.RandomNumber(0, Math.PI * 2);
double y = Generate.RandomNumber(0, Math.PI * 2);
double z = Math.Sin(x) + Math.Cos(y);
cs[i] = new(x, y, z);
}
// place markers at each data point
double minZ = cs.Select(x => x.Z).Min();
double maxZ = cs.Select(x => x.Z).Max();
double spanZ = maxZ - minZ;
IColormap cmap = new ScottPlot.Colormaps.MellowRainbow();
for (int i = 0; i < cs.Length; i++)
{
double fraction = (cs[i].Z - minZ) / (spanZ);
var marker = myPlot.Add.Marker(cs[i].X, cs[i].Y);
marker.Color = cmap.GetColor(fraction).WithAlpha(.8);
marker.Size = 5;
}
// show contour lines
var contour = myPlot.Add.ContourLines(cs);
// style the plot
myPlot.Axes.TightMargins();
myPlot.HideGrid();
myPlot.SavePng("demo.png", 400, 300);
This recipe is one of many in the Contour Plot category
