Skip to content

UI.Plot

Name - Description Default Type
<input> The value that will be passed to the Contents shards of the plot. Any
<output> The output of this shard will be its input. Any
Contents The UI contents. None Shard[ Shard ]
ViewAspect Width / height ratio of the plot region. None Float&Float
DataAspect Width / height ratio of the data. None Float&Float
Legend Whether to display the legend. None Bool

A 2D plot area.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
(GFX.MainWindow
 :Contents
 (->
  (Setup
   (GFX.DrawQueue) >= .ui-draw-queue
   (GFX.UIPass .ui-draw-queue) >> .render-steps)
  (UI
   .ui-draw-queue
   (UI.CentralPanel
    (UI.Plot
     (->
      [(float2 -1) (float2 0) (float2 1)] (UI.PlotLine)))))

  (GFX.Render :Steps .render-steps)))

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
(GFX.MainWindow
 :Contents
 (->
  (Setup
   (GFX.DrawQueue) >= .ui-draw-queue
   (GFX.UIPass .ui-draw-queue) >> .render-steps)
  (UI
   .ui-draw-queue
   (->
    (UI.TopPanel
     :Contents
     (UI.Checkbox "Horizontal" .horizontal))
    (UI.CentralPanel
     (UI.Plot
      (->
       [] >= .hist
       (ForRange
        -40 39
        (->
         (Setup
          0.02 (Math.Multiply 3.1415926535) (Math.Sqrt) = .f)
         (ToFloat) (Math.Divide 10.0) (Math.Add 0.05) >= .x
         .x (Math.Multiply .x) (Math.Divide -2.0) (Math.Exp) (Math.Divide .f) >= .y
         [.x .y] (ToFloat2) >> .hist))

       .hist (ExpectLike [(float2 0)])
       (UI.PlotBar
        :Horizontal .horizontal
        :Width 0.095
        :Color (color 173 216 230)))))))

  (GFX.Render :Steps .render-steps)))

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
(def N 32)
(GFX.MainWindow
 :Contents
 (->
  (Setup
   (GFX.DrawQueue) >= .ui-draw-queue
   (GFX.UIPass .ui-draw-queue) >> .render-steps)
  (UI
   .ui-draw-queue
   (UI.CentralPanel
    (UI.Plot
     :Legend true
     :Contents
     (->
      [] >= .sin
      (ForRange
       (- N) N
       (->
        (ToFloat) (Math.Divide  (/ N 3.1415926535)) >= .x
        .x (Math.Sin) >= .y
        [.x .y] (ToFloat2) >> .sin))
      .sin (ExpectLike [(float2 0)])
      (UI.PlotPoints
       :Color (color 200 100 100)
       :Name "sin")))))

  (GFX.Render :Steps .render-steps)))