protected PlotModel LoadPlotModel(List <RegionalStrengthViewModel> rsvms, Func <ROI, double> horizSelector, Func <ROI, double> vertSelector) { var model = new PlotModel() { IsLegendVisible = false }; model.PlotMargins = new OxyThickness(0, 0, 0, 0); model.PlotType = PlotType.Cartesian; var ba = new LinearAxis(AxisPosition.Bottom) { }; var la = new LinearAxis(AxisPosition.Left) { }; ba.MinimumPadding = 0.1; ba.MaximumPadding = 0.1; la.MinimumPadding = 0.1; la.MaximumPadding = 0.1; model.Axes.Add(ba); model.Axes.Add(la); var s1 = new BrainScatterSeries { MarkerType = MarkerType.Circle, MarkerSize = 7, MarkerFill = OxyColor.FromAColor(125, OxyColors.Gray), }; var s2 = new BrainScatterSeries { MarkerType = MarkerType.Circle, MarkerSize = 7, MarkerFill = OxyColor.FromAColor(125, OxyColors.Red), MarkerStroke = OxyColors.Black, }; foreach (var rsvm in rsvms) { if (rsvm.Significant) { s2.Points.Add(new BrainDataPoint(horizSelector(rsvm.ROI), vertSelector(rsvm.ROI), rsvm.ROI)); } else { s1.Points.Add(new BrainDataPoint(horizSelector(rsvm.ROI), vertSelector(rsvm.ROI), rsvm.ROI)); } } model.Series.Add(s1); model.Series.Add(s2); return(model); }
protected PlotModel LoadPlotModel(List <RegionalViewModel> rsvms, Func <ROI, double> horizSelector, Func <ROI, double> vertSelector) { var model = new PlotModel() { IsLegendVisible = false }; model.PlotMargins = new OxyThickness(0, 0, 0, 0); model.PlotAreaBorderColor = OxyColors.White; model.PlotType = PlotType.Cartesian; var ba = new LinearAxis(AxisPosition.Bottom) { AxislineColor = OxyColors.White, TextColor = OxyColors.White, MajorGridlineColor = OxyColors.White, TicklineColor = OxyColors.White }; var la = new LinearAxis(AxisPosition.Left) { AxislineColor = OxyColors.White, TextColor = OxyColors.White, TicklineColor = OxyColors.White }; ba.MinimumPadding = 0.1; ba.MaximumPadding = 0.1; la.MinimumPadding = 0.1; la.MaximumPadding = 0.1; model.Axes.Add(ba); model.Axes.Add(la); var s1 = new BrainScatterSeries { MarkerType = MarkerType.Circle, MarkerSize = 7, MarkerFill = OxyColor.FromAColor(125, OxyColors.White), }; foreach (var rsvm in rsvms) { s1.Points.Add(new BrainDataPoint(horizSelector(rsvm.ROI), vertSelector(rsvm.ROI), rsvm.ROI)); } model.Series.Add(s1); return(model); }
protected PlotModel LoadGraph(List <RegionalViewModel> rsvms, Dictionary <int, int> nodes, List <GraphEdge> edges, Func <ROI, double> horizSelector, Func <ROI, double> vertSelector) { var model = new PlotModel() { IsLegendVisible = false }; model.PlotAreaBorderColor = OxyColors.White; model.PlotType = PlotType.Cartesian; model.PlotMargins = new OxyThickness(0, 0, 0, 0); model.Padding = new OxyThickness(0, 0, 0, 0); var ba = new InvisibleAxis() { IsAxisVisible = false, Position = AxisPosition.Bottom }; var la = new InvisibleAxis() { IsAxisVisible = false, Position = AxisPosition.Left }; ba.MinimumPadding = 0.1; ba.MaximumPadding = 0.1; la.MinimumPadding = 0.1; la.MaximumPadding = 0.1; model.Axes.Add(ba); model.Axes.Add(la); var nonSigNodes = new BrainScatterSeries { MarkerType = MarkerType.Circle, MarkerSize = 7, MarkerFill = OxyColor.FromAColor(125, OxyColors.Gray), }; var sigNodes = new BrainScatterSeries { MarkerType = MarkerType.Circle, MarkerSize = 7, MarkerFill = OxyColor.FromAColor(125, OxyColors.Green), }; var sigEdges = new LineSeries { Color = OxyColor.FromAColor(125, OxyColors.Green), }; if (edges != null && edges.Count > 0) { foreach (var edge in edges) { var v1 = rsvms[edge.V1]; var v2 = rsvms[edge.V2]; sigEdges.Points.Add(new DataPoint(Double.NaN, Double.NaN)); sigEdges.Points.Add(new DataPoint(horizSelector(v1.ROI), vertSelector(v1.ROI))); sigEdges.Points.Add(new DataPoint(horizSelector(v2.ROI), vertSelector(v2.ROI))); sigEdges.Points.Add(new DataPoint(Double.NaN, Double.NaN)); } } foreach (var rsvm in rsvms) { if (nodes.ContainsKey(rsvm.ROI.Index)) { sigNodes.Points.Add(new BrainDataPoint(horizSelector(rsvm.ROI), vertSelector(rsvm.ROI), rsvm.ROI)); } else { nonSigNodes.Points.Add(new BrainDataPoint(horizSelector(rsvm.ROI), vertSelector(rsvm.ROI), rsvm.ROI)); } } model.Series.Add(nonSigNodes); if (edges != null && edges.Count > 0) { model.Series.Add(sigEdges); } model.Series.Add(sigNodes); return(model); }