public override Axis GetDefaultAxisObject(AxisKind kind) { Axis axis; switch (kind) { case AxisKind.Ax: axis = new LinearAxis() { Position = AxisPosition.Bottom, MajorStep = _intervals.BinWidth }; break; case AxisKind.Ay: axis = new LinearAxis() { Position = AxisPosition.Left, Title = "Frequency" }; break; case AxisKind.Az: axis = null; break; default: throw new ArgumentException($"Unknown axis kind: {kind}"); } return(axis); }
public override Axis GetDefaultAxisObject(AxisKind kind) { Axis axis; switch (kind) { case AxisKind.Ax: axis = new CategoryAxis() { Position = AxisPosition.Bottom, IsTickCentered = false, GapWidth = 0.0 }; break; case AxisKind.Ay: axis = new LinearAxis() { Position = AxisPosition.Left, Title = "Frequency" }; break; case AxisKind.Az: axis = null; break; default: throw new ArgumentException($"Unknown axis kind: {kind}"); } return(axis); }
public virtual Axis GetDefaultAxisObject(AxisKind kind) { var type = DefaultAxisTypes[(int)kind]; if (type == null) { return(null); } var axis = (Axis)type.GetConstructor(new Type[0]).Invoke(new object[0]); switch (kind) { case AxisKind.Ax: axis.Position = AxisPosition.Bottom; break; case AxisKind.Ay: axis.Position = AxisPosition.Left; break; case AxisKind.Az: axis.Position = AxisPosition.Right; break; default: throw new ArgumentException($"Unknown axis kind: {kind}"); } return(axis); }
private static Axis GetDefaultAxisObject(AxisKind axisKind, Series series, ISeriesInfo seriesInfo, Type userSpecifiedAxisType, Style style) { // Determine the axis type. Type axisType = userSpecifiedAxisType ?? seriesInfo?.AxisTypes[(int)axisKind]; var builder = seriesInfo?.SeriesBuilder ?? SeriesBuilderStore.OfType(series.GetType()); if (axisType == builder.DefaultAxisTypes[(int)axisKind]) { axisType = null; } // Create an axis instance. Axis axis; if (axisType != null) { axis = (Axis)axisType.GetConstructor(new Type[0]).Invoke(new object[0]); axis.Position = axisKind.GetDefaultPosition(); } else { axis = builder.GetDefaultAxisObject(axisKind); } if (axisKind == AxisKind.Az && series is CandleStickAndVolumeSeries candlev) { var key = "Volume Axis_" + Guid.NewGuid().ToString(); axis.Key = key; candlev.VolumeAxisKey = axis.Key; } if (axis != null) { var title = seriesInfo?.AxisTitles[(int)axisKind]; if (!string.IsNullOrEmpty(title)) { axis.Title = title; } if (axis is CategoryAxis ca && seriesInfo?.CategoryNames != null) { foreach (var n in seriesInfo.CategoryNames) { ca.Labels.Add(n); } } style.ApplyStyleTo(axis); } return(axis); }
public static AxisPosition GetDefaultPosition(this AxisKind kind) { switch (kind) { case AxisKind.Ax: return(AxisPosition.Bottom); case AxisKind.Ay: return(AxisPosition.Left); case AxisKind.Az: return(AxisPosition.Right); default: throw new ArgumentException($"Unknown axis kind: {kind}"); } }
public static string GetParameterPrefix(this AxisKind kind) { switch (kind) { case AxisKind.Ax: return("Ax"); case AxisKind.Ay: return("Ay"); case AxisKind.Az: return("Az"); default: throw new ArgumentException($"Unknown axis kind: {kind}"); } }
public static ITimeAxisStatisticsProcessing ConstructStatisticsCalculator(AxisKind axisKind, Array axis, DateTime baseOffset) { IDataMaskProvider stepDMP = new DataMaskProviders.StepFunctionDataMaskProvider(); IDataCoverageEvaluator coverageEvaluator = new DataCoverageEvaluators.ContinousMeansCoverageEvaluator(); switch (axisKind) { case AxisKind.Years: traceSource.TraceEvent(TraceEventType.Information, 1, "Constructing StepFunction Years Value Groupping facade"); return(new TimeAxisStatisticsProcessing.TimeAxisValueGrouppingFacade(axis, new TimeAxisProjections.ContinousYears(baseOffset.Year), stepDMP, coverageEvaluator)); case AxisKind.Days: traceSource.TraceEvent(TraceEventType.Information, 2, "Constructing StepFunction Days Value Groupping facade"); return(new TimeAxisStatisticsProcessing.TimeAxisValueGrouppingFacade(axis, new TimeAxisProjections.ContinuousDays(baseOffset), stepDMP, coverageEvaluator)); case AxisKind.Hours: traceSource.TraceEvent(TraceEventType.Information, 3, "Constructing StepFunction Hours Value Groupping facade"); return(new TimeAxisStatisticsProcessing.TimeAxisValueGrouppingFacade(axis, new TimeAxisProjections.ContinuousHours(baseOffset), stepDMP, coverageEvaluator)); default: throw new NotImplementedException("unexpected enum value"); } }
public static ITimeAxisAvgProcessing ConstructAverager(AxisKind axisKind, Array axis, DateTime baseOffset) { IWeightProvider stepFunctionWP = new WeightProviders.StepFunctionInterpolation(); IDataCoverageEvaluator coverageEvaluator = new DataCoverageEvaluators.ContinousMeansCoverageEvaluator(); switch (axisKind) { case AxisKind.Years: traceSource.TraceEvent(TraceEventType.Information, 1, "Constructing StepFunction Years Integrator"); return(new TimeAxisAvgFacade(axis, new TimeAxisProjections.ContinousYears(baseOffset.Year), stepFunctionWP, coverageEvaluator)); case AxisKind.Days: traceSource.TraceEvent(TraceEventType.Information, 2, "Constructing StepFunction Days Integrator"); return(new TimeAxisAvgFacade(axis, new TimeAxisProjections.ContinuousDays(baseOffset), stepFunctionWP, coverageEvaluator)); case AxisKind.Hours: traceSource.TraceEvent(TraceEventType.Information, 3, "Constructing StepFunction Hours Integrator"); return(new TimeAxisAvgFacade(axis, new TimeAxisProjections.ContinuousHours(baseOffset), stepFunctionWP, coverageEvaluator)); default: throw new NotImplementedException("unexpected enum value"); } }
public override Axis GetDefaultAxisObject(AxisKind kind) { Axis axis; switch (kind) { case AxisKind.Ax: axis = new DateTimeAxis() { Position = AxisPosition.Bottom }; break; case AxisKind.Ay: axis = new LinearAxis() { Position = AxisPosition.Left, StartPosition = .25, EndPosition = 1.0 }; break; case AxisKind.Az: axis = new LinearAxis() { Position = AxisPosition.Left, StartPosition = 0, EndPosition = .22 }; break; default: throw new ArgumentException($"Unknown axis kind: {kind}"); } return(axis); }
public AxisFound(string axisName, AxisKind axisKind, DateTime baseOffset) { this.AxisName = axisName; this.AxisKind = axisKind; this.BaseOffset = baseOffset; }
public static Axis CreateWithPrefixedParameters(Dictionary <string, object> parameters, AxisKind axisKind, Series series, ISeriesInfo seriesInfo, Style style) { var prefix = axisKind.GetParameterPrefix(); // Check if any parameters with the prefix are specified. If not, return without do anything. bool create = false; foreach (var entry in parameters) { if (entry.Key.StartsWith(prefix) && char.IsUpper(entry.Key[2])) { create = true; break; } } if (!create) { return(null); } // Determine the user specified axis type. Type axisType = null; if (parameters.TryGetValue(prefix + "Type", out var typeName)) { axisType = GetAxisTypeByPartialName(typeName.ToString()); } // Create an axis instance. Axis axis = GetDefaultAxisObject(axisKind, series, seriesInfo, axisType, style); // Assign the command-line parameters to the axis. AssignParameters(axis, parameters, prefix); return(axis); }