Utwórz wykres (konstruktor synchroniczny)

(newplot okno)
newplot okno [instrukcje]
(newplot okno [instrukcje] wyrażenie1 wyrażenie2 ...)
newplot okno funkcja
(newplot okno funkcja wyrażenie1 wyrażenie2 ...)

(newp okno)
newp okno [instrukcje]
(newp okno [instrukcje] wyrażenie1 wyrażenie2 ...)
newp okno funkcja
(newp okno funkcja wyrażenie1 wyrażenie2 ...)

Tworzy nowy wykres w zakładce graficznej okno. Lista instrukcji lub funkcja podane jako argument są wykonywane jako konstruktor nowego wykresu. Obiekt/żółw (lub wykres) wywołujący instrukcję newplot czeka na zakończenie wykonania konstruktora. Argumenty konstruktora mogą być podane jako opcjonalne wyrażenia.

Przykład 1:

"p := newp "Wykres [
  "data := genarray 120 [
    let "x 3 * :index - 180
    array :x 100 * sin :x
  ]
]

Rezultat wykonania: wykres y=100*sin(x).

Przykład 2:

to pmodel
  to fn :k
    let "j 1
    for [i -180 180 3] [
      :data,:j,1 := 100 * cos :A * :i + :k
      :data,:j,2 := 100 * sin :B * :i + :k
      "j += 1
    ]
  end
  "A := 1 "B := 1
  "data := (newarray 121 {0 0})
  "t := timer [fn :iter refresh] 30
  "u := timer ["A := (random 1 6) "B := (random 1 6)] 2500
  setr 0.5
end

"p := newp "Wykres $pmodel

Rezultat wykonania:

Animowane krzywe Lissajous.

Przykład 3:

;klasa wykresu histogramu
to phisto
  to add_data :d
    "v := se :v :d                      ;dodaj nowe dane do zbioru :v
    "data := (histogram :v 50 (-3) 3 1) ;wyświetlane dane to rozkład wartości w :v
    refresh                             ;odśwież wykres
  end

  to size op count :v end               ;zwraca rozmiar zbioru danych

  setr 0
  let "v []                             ;zbiór danych :v jest zmienną lokalną
  :style,"xerr := 3                     ;szerokość przedziału histogramu
  :style,"yerr := 4                     ;pierwiastek liczby zliczeń
end

"p := newp "Histogram $phisto  ;utwórz wykres klasy phisto
print :p
let "cfg :histogram_canvas_cfg
:cfg,"min_x := -4
:cfg,"max_x := 4
:cfg,"min_y := -0.1
:cfg,"max_y := 0.8

;w każdej iteracji stopera dodaj 10 liczb losowych z rozkładu N(0,1)
"t := timer [(add_data arraytolist (rnorm 0 1 10)) @ :p] 30
"u := timer [print size @ :p] 2000 ;co 2s wypisz rozmiar zbioru danych

Rezultat wykonania:

Porównaj także opis instrukcji histogram.

phisto1
10
670
1330
1990
2660
3320

Zobacz także:

Żółw - wykres - obiekt
anewp, anewplot - utwórz wykres (konstruktor asynchroniczny)

Spis treści