Skip to content

Instantly share code, notes, and snippets.

@ovatsus
Created October 22, 2011 12:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ovatsus/1305917 to your computer and use it in GitHub Desktop.
Save ovatsus/1305917 to your computer and use it in GitHub Desktop.
FSharpChart extensions
[<AutoOpen>]
module ChartExtensions
open System.Drawing
open System.Windows.Forms.DataVisualization.Charting
open MSDN.FSharp.Charting
open MSDN.FSharp.Charting.ChartTypes
type SeriesProperties with
member series.Marker<'T when 'T :> GenericChart>(?Style, ?Color, ?Size, ?BorderColor, ?BorderWidth) =
fun (ch:'T) ->
Style |> Option.iter ch.Series.set_MarkerStyle
Color |> Option.iter ch.Series.set_MarkerColor
Size |> Option.iter ch.Series.set_MarkerSize
BorderColor |> Option.iter ch.Series.set_MarkerBorderColor
BorderWidth |> Option.iter ch.Series.set_MarkerBorderWidth
ch
type AreaProperties with
member area.AxisX<'T when 'T :> GenericChart>(?Enabled, ?LabelStyle, ?IsMarginVisible, ?Maximum, ?Minimum, ?MajorGrid, ?MinorGrid, ?MajorTickMark, ?MinorTickMark, ?Name, ?Title, ?TitleAlignment, ?TitleFont, ?TitleForeColor) =
fun (ch:'T) ->
Enabled |> Option.iter ch.Area.AxisX.set_Enabled
LabelStyle |> Option.iter ch.Area.AxisX.set_LabelStyle
IsMarginVisible |> Option.iter ch.Area.AxisX.set_IsMarginVisible
Maximum |> Option.iter ch.Area.AxisX.set_Maximum
Minimum |> Option.iter ch.Area.AxisX.set_Minimum
MajorGrid |> Option.iter ch.Area.AxisX.set_MajorGrid
MinorGrid |> Option.iter ch.Area.AxisX.set_MinorGrid
MajorTickMark |> Option.iter ch.Area.AxisX.set_MajorTickMark
MinorTickMark |> Option.iter ch.Area.AxisX.set_MinorTickMark
Name |> Option.iter ch.Area.AxisX.set_Name
Title |> Option.iter ch.Area.AxisX.set_Title
TitleAlignment |> Option.iter ch.Area.AxisX.set_TitleAlignment
TitleFont |> Option.iter ch.Area.AxisX.set_TitleFont
TitleForeColor |> Option.iter ch.Area.AxisX.set_TitleForeColor
ch
member area.AxisY<'T when 'T :> GenericChart>(?Enabled, ?LabelStyle, ?IsMarginVisible, ?Maximum, ?Minimum, ?MajorGrid, ?MinorGrid, ?MajorTickMark, ?MinorTickMark, ?Name, ?Title, ?TitleAlignment, ?TitleFont, ?TitleForeColor) =
fun (ch:'T) ->
Enabled |> Option.iter ch.Area.AxisY.set_Enabled
LabelStyle |> Option.iter ch.Area.AxisY.set_LabelStyle
IsMarginVisible |> Option.iter ch.Area.AxisY.set_IsMarginVisible
Maximum |> Option.iter ch.Area.AxisY.set_Maximum
Minimum |> Option.iter ch.Area.AxisY.set_Minimum
MajorGrid |> Option.iter ch.Area.AxisY.set_MajorGrid
MinorGrid |> Option.iter ch.Area.AxisY.set_MinorGrid
MajorTickMark |> Option.iter ch.Area.AxisY.set_MajorTickMark
MinorTickMark |> Option.iter ch.Area.AxisY.set_MinorTickMark
Name |> Option.iter ch.Area.AxisY.set_Name
Title |> Option.iter ch.Area.AxisY.set_Title
TitleAlignment |> Option.iter ch.Area.AxisY.set_TitleAlignment
TitleFont |> Option.iter ch.Area.AxisY.set_TitleFont
TitleForeColor |> Option.iter ch.Area.AxisY.set_TitleForeColor
ch
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment