styles/xl2016.Style.ps1
# xl2016 style # https://github.com/tidyverse/ggplot2/blob/master/R/theme-defaults.r Set-StrictMode -Version 3 $baseSize = [Horker.OxyPlotCli.TypeAdaptors.Double]::ConvertFrom("11.0pt") $baseLineSize = $baseSize / 22 $baseRectSize = $baseSize / 22 $halfLine = $baseSize / 2 $config = @{ # Color scheme "[DefaultColorScheme]" = "colorful1" # Default "PlotModel.DefaultFontSize" = $baseSize # PlotArea "PlotModel.PlotAreaBorderThickness" = 0 "PlotModel.PlotAreaBorderColor" = "#D9D9D9" # Titles "PlotModel.TitleFontSize" = $baseSize * 1.5 "PlotModel.TitleFontWeight" = 400 "PlotModel.SubtitleFontSize" = $baseSize * 0.9 "PlotModel.SubtitleFontWeight" = 400 # Legend "PlotModel.LegendBackground" = "#000000-00" "PlotModel.LegendBorderThickness" = 0 "PlotModel.LegendMargin" = 0 "PlotModel.LegendItemSpacing" = 12 "PlotModel.LegendOrientation" = "Horizontal" "PlotModel.LegendPlacement" = "Outside" "PlotModel.LegendPosition" = "BottomCenter" "PlotModel.LegendTitleFontSize" = $baseSize "PlotModel.LegendTitleFontWeight" = 400 "PlotModel.LegendFontSize" = $baseSize * 0.8 "PlotModel.LegendTextColor" = "#595959" # *Axis: Tick "*Axis.TickStyle" = "None" "*Axis.TextColor" = "#595959" "*Axis.FontSize" = $baseSize * 0.8 # *Axis: MinorTick "*Axis.MinorTickSize" = 0 # *Axis: MajorGridline "*Axis.MajorGridlineStyle" = "Solid" "*Axis.MajorGridlineColor" = "#D9D9D9" "*Axis.MajorGridlineThickness" = 0 # *Axis: MinorGridline "*Axis.MinorGridlineThickness" = 0 # *Axis: Title "*Axis.TitleFontSize" = $baseSize * 1.2 "*Axis.TitleColor" = "#4D4D4D" "*Axis.AxisTitleDistance" = $baseSize * 2 # CategoryAxis: FontSize "CategoryAxis.FontSize" = $baseSize # Scatter*Series "Scatter*Series.MarkerType" = "Circle" "Scatter*Series.MarkerSize" = "3px" # BoxPlotSeries "BoxPlotSeries.BoxWidth" = .9 "BoxPlotSeries.Stroke" = "Black" # CandleStickAndVolumeSeries "CandleStickAndVolumeSeries.VolumeStyle" = "Stacked" # VolumeSeries "VolumeSeries.VolumeStyle" = "Stacked" # ErrorColumnSeries "ErrorColumnSeries.StrokeColor" = "gray" # PieSeries "PieSeries.StartAngle" = -90 "PieSeries.Diameter" = 0.75 # IntervalBarSeries "IntervalBarSeries.StrokeThickness" = 0 "IntervalBarSeries.TextColor" = "white" # RectangleBarSeries "RectangleBarSeries.StrokeThickness" = 0 # TornadobarSeries "TornadoBarSeries.StrokeThickness" = 0 # AreaSeries "AreaSeries.StrokeThickness" = 0 # TwoColorAreaSeries "TwoColorAreaSeries.StrokeThickness" = 0 # Event hook "[BeforeRendering]" = { param($m) $s = $m.Series[0] $thickness = [Horker.OxyPlotCli.TypeAdaptors.Double]::ConvertFrom("1pt") foreach ($a in $m.Axes) { if ($s -is [OxyPlot.Series.BarSeries] -or $s -is [OxyPlot.Series.IntervalBarSeries] -or $s -is [OxyPlot.Series.TornadoBarSeries]) { if ($a.IsHorizontal()) { $a.MajorGridLineThickness = $thickness } } elseif ($s -isnot [OxyPlot.Series.HeatmapSeries] -and $s -isnot [OxyPlot.Series.PieSeries] -and $s -isnot [OxyPlot.Series.RectangleSeries] -and $s -isnot [OxyPlot.Series.RectangleBarSeries]) { if ($a.IsVertical()) { $a.MajorGridLineThickness = $thickness } } } if ($s -is [OxyPlot.Series.HeatmapSeries] -or $s -is [OxyPlot.Series.RectangleSeries] -or $s -is [OxyPlot.Series.RectangleBarSeries]) { $m.PlotAreaBorderThickness = New-Object OxyPlot.OxyThickness $thickness, 0, 0, $thickness } elseif ($s -is [OxyPlot.Series.IntervalBarSeries] -or $s -is [OxyPlot.Series.TornadoBarSeries]) { $m.PlotAreaBorderThickness = New-Object OxyPlot.OxyThickness $thickness, 0, 0, 0 } elseif ($s -isnot [OxyPlot.Series.BarSeries] -and $s -isnot [OxyPlot.Series.ColumnSeries] -and $s -isnot [OxyPlot.Series.ErrorColumnSeries] -and $s -isnot [OxyPlot.Series.HistogramSeries] -and $s -isnot [OxyPlot.Series.VolumeSeries]) { $m.PlotAreaBorderThickness = New-Object OxyPlot.OxyThickness 0, 0, 0, $thickness } } } Add-OxyStyle xl2016 $config -BaseStyle vanilla |