示例#1
0
        private LiveChartSeries BuildSeries(QuantChartSeries qSeries)
        {
            LiveChartSeries series;

            switch (qSeries.SeriesType)
            {
            case SeriesType.Line:
                series = new GLineSeries();
                break;

            case SeriesType.Bar:
                series = new GColumnSeries();
                break;

            case SeriesType.Candle:
                series = new GOhlcSeries();
                break;

            default:
                throw new NotSupportedException();
            }

            series.Configuration = ChartPointMapper;
            series.Title         = qSeries.Name;
            series.PointGeometry = GetPointGeometry(qSeries.ScatterMarkerSymbol);
            series.Fill          = Brushes.Transparent;

            return(series);
        }
 void SetupPlot()
 {
     mGScatterSeries = new GScatterSeries
     {
         Values                = new GearedValues <ObservablePoint> {
         },
         PointGeometry         = DefaultGeometries.Circle,
         MaxPointShapeDiameter = 7,
     };
     mGColumnSeries = new GColumnSeries
     {
         Title          = "",
         Values         = new GearedValues <ObservablePoint> {
         },
         LabelPoint     = point => point.Y.ToString(),
         MaxColumnWidth = double.PositiveInfinity,
         ColumnPadding  = 0,
     };
     mSeriesCollection.Add(mGScatterSeries);
     mChart.Series = mSeriesCollection;
 }
        public static GColumnSeries ToVolumeSeries(this OhlcData data, ResolutionSourceProvider resolver = null, string title = "")
        {
            var chartPointEvaluator = new InstantChartPointMapper(resolver ?? new ResolutionSourceProvider(data.Resolution));

            var series = new GColumnSeries
            {
                Configuration = chartPointEvaluator,
                Title         = title
            };

            if (data == null)
            {
                return(series);
            }

            var values = new GearedValues <InstantChartPoint>();

            values.AddRange(data.OrderBy(x => x.DateTimeUtc).Select(i => new InstantChartPoint(i)));
            values.Quality = Quality.Low;
            series.Values  = values;

            return(series);
        }
        public Series BuildSeries(SeriesDefinition sourceSeries)
        {
            Series series;

            switch (sourceSeries.SeriesType)
            {
            case SeriesType.Line:
                series = new GLineSeries
                {
                    Configuration = ChartPointEvaluator,
                    Fill          = Brushes.Transparent
                };
                break;

            case SeriesType.Bar:
                series = new GColumnSeries
                {
                    Configuration = ChartPointEvaluator,
                };
                break;

            case SeriesType.Candle:
                series = new GCandleSeries
                {
                    Configuration = OhlcChartPointEvaluator,
                    IncreaseBrush = Brushes.Aquamarine,
                    DecreaseBrush = Brushes.LightCoral,
                    Fill          = Brushes.Transparent
                };
                break;

            case SeriesType.Scatter:
                series = new GScatterSeries
                {
                    Configuration       = ChartPointEvaluator,
                    StrokeThickness     = 1,
                    GearedPointGeometry = GetGearedPointGeometry(sourceSeries.ScatterMarkerSymbol)
                };

                break;

            default:
                throw new NotSupportedException();
            }

            series.Title         = sourceSeries.Name;
            series.PointGeometry = GetPointGeometry(sourceSeries.ScatterMarkerSymbol);

            // Check whether the series has a color configured
            if (_defaultColors.All(c => !sourceSeries.Color.Equals(c)))
            {
                // No default color present. use it for the stroke
                var brush = new SolidColorBrush(sourceSeries.Color);
                brush.Freeze();

                switch (sourceSeries.SeriesType)
                {
                case SeriesType.Candle:
                    series.Fill = brush;
                    break;

                default:
                    series.Stroke = brush;
                    break;
                }
            }

            return(series);
        }