覆盖OxyPlot默认调色板

时间:2015-03-23 15:54:55

标签: c# charts color-palette oxyplot

我最近一直在使用OxyPlot,并且想知道是否有一种方法可以覆盖PlotSeries / PlotModel的默认调色板?

我知道我可以为每个系列单独设置颜色,但是有一个颜色数组然后将它应用到模型/系列会很好。

2 个答案:

答案 0 :(得分:12)

您可以更改ParseCloud.callFunctionInBackground("hello", new HashMap<String, Object>(), new FunctionCallback<String>() { void done(String result, ParseException e) { if (e == null) { // result is "Hello world!" } } }); 的{​​{1}}中的DefaultColors列表:

PlotView

为了使它更容易,可以使用Model的类方法:

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

答案 1 :(得分:4)

添加其他答案,如果要为应用程序中的每个绘图使用相同的颜色集,可以在xaml资源中设置这些颜色。例如,如果您要使用默认的Seaborn palette,则可以将以下内容添加到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>