Переопределить цветовую палитру по умолчанию OxyPlot

В последнее время я использовал OxyPlot, и мне было интересно, есть ли способ переопределить цвет по умолчанию Палитра PlotSeries / PlotModel?

Я знаю, что могу установить цвет индивидуально для каждой серии, но было бы неплохо иметь массив цветов, а затем применять его к модели / серии.


person stoic    schedule 23.03.2015    source источник


Ответы (2)


Вы можете изменить список DefaultColors в PlotView Model:

plotView.Model.DefaultColors =  new List<OxyColor>
        {
            OxyColors.Red,
            OxyColors.Green,
            OxyColors.Blue,
            OxyColor.FromRgb(0x20, 0x4A, 0x87)
        };

Чтобы сделать это еще проще, можно использовать методы класса OxyPalettes:

plotView.Model.DefaultColors = OxyPalettes.Jet(plotView.Model.Series.Count).Colors;
person forallepsilon    schedule 24.04.2015
comment
Как я могу ссылаться на цвет FromRgb после его создания? - person DevDave; 20.02.2020
comment
@DevDave Почему бы не сохранить его в локальную переменную? Или что ты имеешь в виду? - person forallepsilon; 20.02.2020

Добавляя к другому ответу, если вы хотите использовать один и тот же набор цветов для каждого графика в своем приложении, вы можете установить их в своих ресурсах xaml. Если, например, вы хотите использовать палитру Seaborn по умолчанию, вы можете добавить следующую на ваш App.xaml:

<Application.Resources>
    <ResourceDictionary>
        <x:Array Type="Color" x:Key="SeabornColors">
            <Color>#4c72b0</Color>
            <Color>#55a868</Color>
            <Color>#c44e52</Color>
            <Color>#8172b2</Color>
            <Color>#ccb974</Color>
            <Color>#64b5cd</Color>
        </x:Array>
        <Style TargetType="oxy:Plot">
            <Setter Property="DefaultColors" Value="{StaticResource SeabornColors}"/>
        </Style>
    </ResourceDictionary>
</Application.Resources>
person fuglede    schedule 24.03.2017