sig
  module Color :
    sig
      type t =
          [ `Black
          | `Blue
          | `Cyan
          | `Green
          | `Magenta
          | `Red
          | `Rgb of int * int * int
          | `White
          | `Yellow ]
    end
  module Range :
    sig
      type t =
          X of float * float
        | Y of float * float
        | XY of float * float * float * float
        | Date of Core.Std.Date.t * Core.Std.Date.t
        | Time of Core.Std.Time.t * Core.Std.Time.t
    end
  module Filling : sig type t = [ `Pattern of int | `Solid ] end
  module Output :
    sig
      type t
      val create :
        ?font:string ->
        [ `Eps of string
        | `Png of string
        | `Png_cairo of string
        | `Qt
        | `Wxt
        | `X11 ] -> Gnuplot.Output.t
    end
  module Labels :
    sig
      type t
      val create : ?x:string -> ?y:string -> unit -> Gnuplot.Labels.t
    end
  module Series :
    sig
      type t
      val lines :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> float list -> Gnuplot.Series.t
      val lines_xy :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (float * float) list -> Gnuplot.Series.t
      val lines_timey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Time.t * float) list -> Gnuplot.Series.t
      val lines_datey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Date.t * float) list -> Gnuplot.Series.t
      val lines_func :
        ?title:string ->
        ?color:Gnuplot.Color.t -> ?weight:int -> string -> Gnuplot.Series.t
      val points :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> float list -> Gnuplot.Series.t
      val points_xy :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (float * float) list -> Gnuplot.Series.t
      val points_timey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Time.t * float) list -> Gnuplot.Series.t
      val points_datey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Date.t * float) list -> Gnuplot.Series.t
      val points_func :
        ?title:string ->
        ?color:Gnuplot.Color.t -> ?weight:int -> string -> Gnuplot.Series.t
      val linespoints :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> float list -> Gnuplot.Series.t
      val linespoints_xy :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (float * float) list -> Gnuplot.Series.t
      val linespoints_timey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Time.t * float) list -> Gnuplot.Series.t
      val linespoints_datey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Date.t * float) list -> Gnuplot.Series.t
      val linespoints_func :
        ?title:string ->
        ?color:Gnuplot.Color.t -> ?weight:int -> string -> Gnuplot.Series.t
      val steps :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> float list -> Gnuplot.Series.t
      val steps_xy :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (float * float) list -> Gnuplot.Series.t
      val steps_timey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Time.t * float) list -> Gnuplot.Series.t
      val steps_datey :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int -> (Core.Std.Date.t * float) list -> Gnuplot.Series.t
      val histogram :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int ->
        ?fill:Gnuplot.Filling.t -> float list -> Gnuplot.Series.t
      val candles_time_ohlc :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int ->
        ?fill:Gnuplot.Filling.t ->
        (Core.Std.Time.t * (float * float * float * float)) list ->
        Gnuplot.Series.t
      val candles_date_ohlc :
        ?title:string ->
        ?color:Gnuplot.Color.t ->
        ?weight:int ->
        ?fill:Gnuplot.Filling.t ->
        (Core.Std.Date.t * (float * float * float * float)) list ->
        Gnuplot.Series.t
    end
  module Gp :
    sig
      type t
      val create : ?verbose:bool -> ?path:string -> unit -> Gnuplot.Gp.t
      val close : Gnuplot.Gp.t -> unit
      val set :
        ?output:Gnuplot.Output.t ->
        ?title:string ->
        ?use_grid:bool ->
        ?fill:Gnuplot.Filling.t ->
        ?labels:Gnuplot.Labels.t -> Gnuplot.Gp.t -> unit
      val unset :
        ?fill:Gnuplot.Filling.t ->
        ?labels:Gnuplot.Labels.t -> Gnuplot.Gp.t -> unit
      val plot :
        ?output:Gnuplot.Output.t ->
        ?title:string ->
        ?use_grid:bool ->
        ?fill:Gnuplot.Filling.t ->
        ?range:Gnuplot.Range.t ->
        ?labels:Gnuplot.Labels.t ->
        ?format:string -> Gnuplot.Gp.t -> Gnuplot.Series.t -> unit
      val plot_many :
        ?output:Gnuplot.Output.t ->
        ?title:string ->
        ?use_grid:bool ->
        ?fill:Gnuplot.Filling.t ->
        ?range:Gnuplot.Range.t ->
        ?labels:Gnuplot.Labels.t ->
        ?format:string -> Gnuplot.Gp.t -> Gnuplot.Series.t list -> unit
      val plot_func :
        ?output:Gnuplot.Output.t ->
        ?title:string ->
        ?use_grid:bool ->
        ?fill:Gnuplot.Filling.t ->
        ?range:Gnuplot.Range.t ->
        ?labels:Gnuplot.Labels.t -> Gnuplot.Gp.t -> string -> unit
    end
end