Warning: this is an htmlized version!
The original is across this link,
and the conversion rules are here.
;; Funções para plotar gráficos
;; 2004jun24
;; (find-angg "elisp/plot.tcl")

(require 'cl)
(setq origemx 200)
(setq origemy 200)
(setq escala 40)
(setq ticksize .075)

(defun tkxy (x y)
  (format "%.1f %.1f" (+ origemx (* x escala))
	          (- origemy (* y escala))))

(setq tclstring "")
(defun plotstr (formatstr &rest rest)
  (setq tclstring (concat tclstring (apply 'format formatstr rest))))

(defun nn_plotponto (x y)
  (plotstr "ponto %s\n" (tkxy x y)))
(defun nnnn_plotsegmento (x1 y1 x2 y2)
  (plotstr "segmento %s %s\n" (tkxy x1 y1) (tkxy x2 y2)))
(defun nnnn_plotsegmentoeixo (x1 y1 x2 y2)
  (plotstr "segmento_eixo %s %s\n" (tkxy x1 y1) (tkxy x2 y2)))
(defun nnnn_plotseta (x1 y1 x2 y2)
  (plotstr "seta %s %s\n" (tkxy x1 y1) (tkxy x2 y2)))

(defun eixos (minx miny maxx maxy)
  (nnnn_plotsegmentoeixo minx 0 maxx 0)
  (nnnn_plotsegmentoeixo 0 miny 0 maxy)
  (loop for x from 0 downto minx do
     (nnnn_plotsegmentoeixo x (- ticksize) x ticksize))
  (loop for x from 0 to maxx do
     (nnnn_plotsegmentoeixo x (- ticksize) x ticksize))
  (loop for y from 0 downto miny do
     (nnnn_plotsegmentoeixo (- ticksize) y ticksize y))
  (loop for y from 0 to maxy do
     (nnnn_plotsegmentoeixo (- ticksize) y ticksize y))
  )

(defun plot_t_xy (mint maxt step f)
  (let (ponto pontoanterior)
    (loop for tt from mint to maxt by step do
      (setq pontoanterior ponto)
      (setq ponto (funcall f tt))
      (if (and pontoanterior ponto) (pp_plot pontoanterior ponto))
      (if ponto (p_plot ponto)))))

'
(progn
  (setq tclstring "")
  (eixos -6.5 -2.5 6.5 2.5)
  ;; (eixos minx miny maxx maxy)
  (plot_t_xy -6.4 6.4 .1 (lambda (x) (nn_ponto x (sin x))))
  (write-region tclstring nil "/tmp/1.tcl")
  tclstring)

'
(progn
  (setq tclstring "")
  (nn_plotponto 0 0)
  (nn_plotponto 1 0)
  (nn_plotponto 2 1)
  (nnnn_plotsegmento 0 0 1 0)
  (nnnn_plotseta 1 0 2 1)
  (eixos -2.5 -2.5 4.5 4.5)
  ;; (eixos minx miny maxx maxy)
  (write-region tclstring nil "/tmp/1.tcl")
  tclstring)

;; (eev "wish ~/elisp/plot.tcl &")