Могу ли я удалить отсечение из диаграммы оксиплота с несколькими осями?

У меня есть диаграмма с несколькими осями Y, созданная с помощью библиотеки oxyplot. Когда я уменьшаю масштаб одной оси Y, я заметил, что линия обрезается. стрелки указывают, где линия обрезается

Могу ли я расширить область отсечения до размера области всего графика. Диаграммы с несколькими осями, которые могут использовать всю область диаграммы, часто используются с медицинскими данными.

Запись ЭЭГ


person Robert    schedule 22.03.2018    source источник


Ответы (1)


Я вытащил последнюю ветку разработки из github и изменил код в методе GetClippingRect() в исходном файле XYAxisSeries.cs:

protected OxyRect GetClippingRect()
    {
        double minX,minY,maxX,maxY;
        if (this.PlotModel.AxisSizeIsClippingArea)
        {
            minX = Math.Min(this.XAxis.ScreenMin.X, this.XAxis.ScreenMax.X);
            minY = Math.Min(this.YAxis.ScreenMin.Y, this.YAxis.ScreenMax.Y);
            maxX = Math.Max(this.XAxis.ScreenMin.X, this.XAxis.ScreenMax.X);
            maxY = Math.Max(this.YAxis.ScreenMin.Y, this.YAxis.ScreenMax.Y);
        }
        else
        {
            var yAxes = this.PlotModel.Axes.Where(ax => ax.Position == AxisPosition.Left || ax.Position == AxisPosition.Right);
            var xAxes = this.PlotModel.Axes.Where(ax => ax.Position == AxisPosition.Bottom || ax.Position == AxisPosition.Top);
            maxY = yAxes.Max(ax => Math.Max(ax.ScreenMin.Y, ax.ScreenMax.Y));
            minY = yAxes.Min(ax => Math.Min(ax.ScreenMin.Y, ax.ScreenMax.Y));
            maxX = xAxes.Max(ax => Math.Max(ax.ScreenMax.X, ax.ScreenMax.X));
            minX = xAxes.Min(ax => Math.Min(ax.ScreenMin.X, ax.ScreenMin.X));
        }
        return new OxyRect(minX, minY, maxX - minX, maxY - minY);
    }

Я добавил свойство AxisSizeIsClippingArea в PlotModel, которое по умолчанию истинно. Когда оно ложно, вместо получения минимумов и максимумов текущей оси вычисляются минимумы и максимумы всех осей вместе. Теперь, когда AxisSizeIsClippingArea имеет значение false, отсечения больше нет.

person Robert    schedule 11.07.2018