SciChart: ColumnChart - DataSeries.Append - PullRequest
0 голосов
/ 25 мая 2018

Потенциальная проблема, которую я заметил в SciChart для WPF

  • , возьмите стандартный пример ColumnChart из SDK (2D-диаграммы - столбчатая диаграмма)
  • сборка и запуск;результат выглядит следующим образом: enter image description here

  • внести следующие изменения кода (см. (1) и (2))

    private void ColumnChartExampleViewOnLoaded(object sender, RoutedEventArgs e)
    {
    
        var dataSeries = new XyDataSeries<double, double> {SeriesName = "Histogram"};
    
        var yValues = new double[] { 0.1, 0.2, 0.4, 0.8, 1.1, 1.5, 2.4, 4.6, 8.1, 11.7, 14.4, 16.0, 13.7, 10.1, 6.4, 3.5, 2.5, 1.4, 0.4, 0.1};
    
        using (this.sciChart.SuspendUpdates())
        {
            for (int i = 0; i < yValues.Length; i++)
            {
                // DataSeries for appending data
                dataSeries.Append(i, yValues[i]);
            }
    
            this.columnSeries.DataSeries = dataSeries;
            this.columnSeries.DataSeries.AcceptsUnsortedData = true; //(1)
        }
    
        dataSeries.Append(0, 1); //(2)
        this.sciChart.ZoomExtents();
    }
    
  • и вот результат: enter image description here

Т.е. если я использую метод Append для X val, который уже существует - пользовательский интерфейсбары меняются на линии.Я не знаю, является ли это ожидаемым поведением или нет, но для моего случая я обновляю гистограмму на лету, и довольно часто одно и то же значение X получает новые значения Y.В результате - поведение пользовательского интерфейса сбивает с толку ... Я нашел обходной путь для своего случая (я использую метод Update, поскольку X и index для моего случая одинаковы), так что это всего лишь уведомление.

IЯ не уверен, что вы измените поведение или нет - просто поделитесь своим опытом ...

1 Ответ

0 голосов
/ 28 мая 2018

Серия столбцов SciChart автоматически рассчитывает ширину точек данных на основе имеющихся столбцов.

Если у вас есть столбцы 0,1,2,3,4,5,6,7,8,9 ... затем добавьте новый столбец в позиции 0, этот расчет становится бесполезным.

Способы избежать этого побочного эффекта:

  • Обновлять элементы, а не добавлять новые столбцы с перекрывающимися значениями
  • Переопределить расчет ширины столбца, используя свойства FastColumnRenderableSeries.UseUniformWidth и FastColumnRenderableSeries.DataPointWidth
  • (Дополнительно) Переопределить вычисление ширины столбца путем переопределения GetDataPointWidth () метод.

Узнайте больше о том, как работает серия Column, на странице документации SciChart WPF .

...