DISLIN Examples / Python


Demonstration of CURVE / Python

#! /usr/bin/env python
import math
import dislin

n = 101
f = 3.1415926 / 180.
x = range (n)
y1 = range (n)
y2 = range (n)
for i in range (0,n):
  x[i] = i * 3.6
  v = i * 3.6 * f
  y1[i] = math.sin (v)
  y2[i] = math.cos (v)

dislin.metafl ('xwin')
dislin.disini ()
dislin.complx ()
dislin.pagera ()

dislin.axspos (450, 1800)
dislin.axslen (2200, 1200)

dislin.name   ('X-axis', 'X')
dislin.name   ('Y-axis', 'Y')

dislin.digits (-1, 'X')
dislin.ticks  (10, 'XY')

dislin.titlin ('Demonstration of CURVE', 1)
dislin.titlin ('SIN (X), COS (X)', 3)
 
dislin.graf   (0., 360., 0., 90., -1., 1., -1., 0.5)
dislin.title  ()

dislin.color  ('red')
dislin.curve  (x, y1, n)
dislin.color  ('green')
dislin.curve  (x, y2, n)

dislin.color  ('foreground')
dislin.dash   ()
dislin.xaxgit ()
dislin.disfin ()


Symbols / Python

#!/usr/bin/env python
import dislin

ctit = 'Symbols'

dislin.setpag ('da4p')
dislin.metafl ('cons')

dislin.disini ()
dislin.pagera ()
dislin.complx ()

dislin.height (60)
nl = dislin.nlmess (ctit)
dislin.messag (ctit, (2100 - nl)/2, 200)

dislin.height (50)
dislin.hsymbl (120)

ny = 150

for i in range (0, 22):
  if (i % 4) == 0:
    ny = ny + 400
    nxp = 550
  else:
    nxp = nxp + 350

  nl = dislin.nlnumb (i, -1)
  dislin.number (i, -1, nxp - nl/2, ny + 150)
  dislin.symbol (i, nxp, ny)

dislin.disfin ()


Interpolation Methods / Python

#!/usr/bin/env python
import dislin

ctit = 'Interpolation Methods'

xray = [0., 1., 3., 4.5, 6., 8., 9., 11., 12., 12.5, 
        13., 15., 16., 17., 19., 20.]
yray = [2., 4., 4.5, 3., 1., 7., 2., 3., 5., 2., 2.5,
        2., 4., 6., 5.5, 4.]
cpol = ['SPLINE', 'BARS', 'STEP', 'LINEAR']

dislin.setpag ('da4p')
dislin.metafl ('cons')

dislin.disini ()
dislin.pagera ()
dislin.complx ()

dislin.incmrk (1)
dislin.hsymbl (25)
dislin.titlin (ctit, 1)
dislin.axslen (1500, 500)
dislin.setgrf ('LINE', 'LINE', 'LINE', 'LINE')

nya = 2700
for i in range (0, 4):
  dislin.axspos (350, nya - i * 500)
  dislin.polcrv (cpol[i])
  dislin.marker (0)
  dislin.graf   (0., 20., 0., 5., 0., 10., 0., 5.)
  nx = dislin.nxposn (1.)
  ny = dislin.nyposn (8.)
  dislin.messag (cpol[i], nx, ny)
  dislin.curve  (xray, yray, 16)

  if i == 3:
    dislin.height (50)
    dislin.title ()

  dislin.endgrf ()

dislin.disfin ()


Bar Graphs / Python

#!/usr/bin/env python
import dislin

x  = [1., 2., 3., 4., 5., 6., 7., 8., 9.]
y  = [0., 0., 0., 0., 0., 0., 0., 0., 0.]
y1 = [1., 1.5, 2.5, 1.3, 2.0, 1.2, 0.7, 1.4, 1.1]
y2 = [2., 2.7, 3.5, 2.1, 3.2, 1.9, 2.0, 2.3, 1.8]
y3 = [4., 3.5, 4.5, 3.7, 4., 2.9, 3.0, 3.2, 2.6]

nya = 2700
ctit = 'Bar Graphs (BARS)'

dislin.setpag ('da4p')
dislin.metafl ('cons')
dislin.disini ()
dislin.pagera ()
dislin.complx ()
dislin.ticks  (1, 'x')
dislin.intax  ()
dislin.axslen (1600, 700)
dislin.titlin (ctit, 3)

cbuf = ' '
dislin.legini (cbuf, 3, 8)
dislin.leglin (cbuf, 'FIRST', 1)
dislin.leglin (cbuf, 'SECOND', 2)
dislin.leglin (cbuf, 'THIRD', 3)
dislin.legtit (' ')
dislin.shdpat (5)

for i in range (0, 3) :
  if i > 0 :
    dislin.labels ('none','x')

  dislin.axspos (300, nya-i*800)
  dislin.graf (0., 10., 0., 1., 0., 5., 0., 1.)

  if i == 0:
    dislin.bargrp (3, 0.15)
    dislin.color  ('red')
    dislin.bars   (x, y, y1, 9)
    dislin.color  ('green')
    dislin.bars   (x, y, y2, 9)
    dislin.color  ('blue')
    dislin.bars   (x, y, y3, 9)
    dislin.color  ('fore')
    dislin.reset  ('bargrp')
  elif i == 1:
    dislin.height (30)
    dislin.labels ('delta','bars')
    dislin.labpos ('center','bars')
    dislin.color  ('red')
    dislin.bars   (x, y, y1, 9)
    dislin.color  ('green')
    dislin.bars   (x, y1, y2, 9)
    dislin.color  ('blue')
    dislin.bars   (x, y2, y3, 9)
    dislin.color  ('fore')
    dislin.reset  ('height') 
  elif i == 2:
    dislin.labels ('second', 'bars')
    dislin.labpos ('outside', 'bars')
    dislin.color  ('red')
    dislin.bars   (x, y, y1, 9)
    dislin.color  ('fore')

  if i != 2:
    dislin.legend (cbuf,7)

  if i == 2:
    dislin.height (50)
    dislin.title  ()

  dislin.endgrf ()

dislin.disfin ()


Pie Charts / Python

#!/usr/bin/env python
import dislin

xray = [1., 2.5, 2., 2.7, 1.8]

ctit = 'Pie Charts (PIEGRF)'

dislin.setpag ('da4p')
dislin.metafl ('cons')
dislin.disini ()
dislin.pagera ()
dislin.complx ()
dislin.chnpie ('BOTH')

dislin.axslen (1600, 1000)
dislin.titlin (ctit, 2)

cbuf = ' '
dislin.legini (cbuf, 5, 8)
dislin.leglin (cbuf, 'FIRST',  1)
dislin.leglin (cbuf, 'SECOND', 2)
dislin.leglin (cbuf, 'THIRD',  3)
dislin.leglin (cbuf, 'FOURTH', 4)
dislin.leglin (cbuf, 'FIFTH',  5)

# Selecting shading patterns
dislin.patcyc (1, 7)
dislin.patcyc (2, 4)
dislin.patcyc (3, 13)
dislin.patcyc (4, 3)
dislin.patcyc (5, 5)

dislin.axspos (250, 2800)
dislin.piegrf (cbuf, 1, xray, 5)
dislin.endgrf ()

dislin.axspos (250, 1600)
dislin.labels ('DATA', 'PIE')
dislin.labpos ('EXTERNAL', 'PIE')
dislin.piegrf (cbuf, 1, xray, 5)

dislin.height (50)
dislin.title  ()
dislin.disfin ()


3-D Bar Graph / 3-D Pie Chart / Python

#!/usr/bin/env python
import dislin

xray  = [2., 4., 6., 8., 10.]
y1ray = [0., 0., 0., 0., 0.]
y2ray = [3.2, 1.5, 2.0, 1.0, 3.0]

ic1ray  = [50, 150, 100, 200, 175]
ic2ray  = [50, 150, 100, 200, 175]

dislin.metafl ('cons')
dislin.setpag ('da4p')
dislin.disini ()
dislin.pagera ()
dislin.hwfont ()

dislin.titlin ('3-D Bar Graph / 3-D Pie Chart', 2)
dislin.htitle (40)

dislin.shdpat (16)
dislin.axslen (1500, 1000)
dislin.axspos (300, 1400)

dislin.barwth (0.5)
dislin.bartyp ('3dvert')
dislin.labels ('second', 'bars')
dislin.labpos ('outside', 'bars')
dislin.labclr (255, 'bars')
dislin.graf   (0., 12., 0., 2., 0., 5., 0., 1.)
dislin.title  ()
dislin.color  ('red')
dislin.bars   (xray, y1ray, y2ray, 5)
dislin.endgrf ()

dislin.shdpat (16)
dislin.labels ('data', 'pie')
dislin.labclr (255, 'pie')
dislin.chnpie ('none')
dislin.pieclr (ic1ray, ic2ray, 5)
dislin.pietyp ('3d')
dislin.axspos (300, 2700)
cbuf = ' '
dislin.piegrf (cbuf, 0, y2ray, 5)  
dislin.disfin ()


Shading Patterns / Python

#!/usr/bin/env python
import dislin

ix  = [0, 300, 300,   0]
iy  = [0,   0, 400, 400]
ixp = [0, 0, 0, 0]
iyp = [0, 0, 0, 0]

ctit = 'Shading Patterns (AREAF)'

dislin.metafl ('cons')
dislin.disini ()
dislin.setvlt ('small')
dislin.pagera ()
dislin.complx ()

dislin.height (50)
nl = dislin.nlmess (ctit)
dislin.messag (ctit, (2970 - nl)/2, 200)

nx0 = 335
ny0 = 350

iclr = 0
for i in range (0, 3):
  ny = ny0 + i * 600
  for j in range (0, 6):
    nx = nx0 + j * 400
    ii = i * 6 + j
    dislin.shdpat (ii)
    iclr = iclr + 1
    dislin.setclr (iclr)
    for k in range (0, 4):
      ixp[k] = ix[k] + nx
      iyp[k] = iy[k] + ny

    dislin.areaf (ixp, iyp, 4)
    nl = dislin.nlnumb (ii, -1)
    nx = nx + (300 - nl) / 2
    dislin.color ('foreground')
    dislin.number (ii, -1, nx, ny + 460) 

dislin.disfin ()


3-D Colour Plot / Python

#! /usr/bin/env python
import math
import dislin

ctit1 = '3-D  Colour Plot of the Function'
ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN (Y)'

n = 50
m = 50
zmat = range(n*m)

fpi  = 3.1415927 / 180.
stepx = 360. / (n - 1)
stepy = 360. / (m - 1)

for i in range (0, n):
  x = i * stepx
  for j in range (0, m):
    y = j * stepy
    zmat[i*m+j] = 2 * math.sin(x * fpi) * math.sin(y * fpi)

dislin.metafl ('xwin')
dislin.disini ()
dislin.pagera ()
dislin.hwfont ()

dislin.titlin (ctit1, 1)
dislin.titlin (ctit2, 3)

dislin.name   ('X-axis', 'X')
dislin.name   ('Y-axis', 'Y')
dislin.name   ('Z-axis', 'Z')

dislin.intax  ()
dislin.autres (n, m)
dislin.axspos (300, 1850)
dislin.ax3len (2200, 1400, 1400)

dislin.graf3   (0., 360., 0., 90., 0., 360., 0., 90.,
                -2., 2., -2., 1.)
dislin.crvmat (zmat, n, m, 1, 1)
dislin.height (50)
dislin.title  ()
dislin.disfin ()


Surface Plot / Python

#! /usr/bin/env python
import math
import dislin

ctit1 = 'Surface Plot of the Function'
ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN (Y)'

n = 50
m = 50
zmat = range(n*m)

fpi  = 3.1415927 / 180.
stepx = 360. / (n - 1)
stepy = 360. / (m - 1)

for i in range (0, n):
  x = i * stepx
  for j in range (0, m):
    y = j * stepy
    zmat[i*m+j] = 2 * math.sin(x * fpi) * math.sin(y * fpi)

dislin.metafl ('cons')
dislin.setpag ('da4p')
dislin.disini ()
dislin.pagera ()
dislin.complx ()

dislin.titlin (ctit1, 2)
dislin.titlin (ctit2, 4)

dislin.axspos (200, 2600)
dislin.axslen (1800, 1800)

dislin.name   ('X-axis', 'X')
dislin.name   ('Y-axis', 'Y')
dislin.name   ('Z-axis', 'Z')

dislin.view3d (-5., -5., 4., 'ABS')
dislin.graf3d  (0., 360., 0., 90., 0., 360., 0., 90.,
                -3., 3., -3., 1.)
dislin.height (50)
dislin.title  ()

dislin.color  ('green')
dislin.surmat (zmat, n, m, 1, 1)
dislin.disfin ()


Contour Plot / Python

#! /usr/bin/env python
import math
import dislin

ctit1 = 'Contour Plot'
ctit2 = 'F(X,Y) = 2 * SIN(X) * SIN (Y)'

n = 50
m = 50

xray = range (n)
yray = range (m)
zmat = range (n*m)

fpi  = 3.1415927 / 180.
stepx = 360. / (n - 1)
stepy = 360. / (m - 1)

for i in range (0, n):
  xray[i] = xray[i] * stepx

for i in range (0, m):
  yray[i] = yray[i] * stepy

for i in range (0, n):
  x = xray[i] * fpi
  for j in range (0, m):
    y = yray[j] * fpi
    zmat[i*m+j] = 2 * math.sin(x) * math.sin(y)

dislin.metafl ('cons')
dislin.setpag ('da4p')
dislin.disini ()
dislin.pagera ()
dislin.complx ()

dislin.titlin (ctit1, 1)
dislin.titlin (ctit2, 3)

dislin.intax  ()
dislin.axspos (450, 2650)

dislin.name   ('X-axis', 'X')
dislin.name   ('Y-axis', 'Y')

dislin.graf   (0., 360., 0., 90., 0., 360., 0., 90.)
dislin.height (50)
dislin.title  ()

dislin.height (30)
for i in range (0, 9):
  zlev = -2. + i * 0.5
  if i == 4:
    dislin.labels ('NONE', 'CONTUR')
  else:
    dislin.labels ('FLOAT', 'CONTUR')

  dislin.setclr ((i+1) * 28)
  dislin.contur (xray, n, yray, m, zmat, zlev)

dislin.disfin ()


Shaded Contour Plot / Python

#! /usr/bin/env python
import math
import dislin

ctit1 = 'Shaded Contour Plot'
ctit2 = 'F(X,Y) = (X[2$ - 1)[2$ + (Y[2$ - 1)[2$'

n = 50
m = 50
xray = range (n)
yray = range (m)
zlev = range (12)
zmat = range (n*m)

stepx = 1.6 / (n - 1)
stepy = 1.6 / (m - 1)

for i in range (0, n):
  xray[i] = xray[i] * stepx

for i in range (0, m):
  yray[i] = yray[i] * stepy

for i in range (0, n):
  x = xray[i] * xray[i] - 1.
  x = x * x
  for j in range (0, m):
    y = yray[j] * yray[j] - 1.
    zmat[i*m+j] = x + y * y

dislin.metafl ('cons')
dislin.setpag ('da4p')

dislin.disini ()
dislin.pagera ()
dislin.complx ()
dislin.mixalf ()

dislin.titlin (ctit1, 1)
dislin.titlin (ctit2, 3)

dislin.name   ('X-axis', 'X')
dislin.name   ('Y-axis', 'Y')

dislin.axspos (450, 2670)
dislin.shdmod ('poly', 'contur')
dislin.graf   (0., 1.6, 0., 0.2, 0., 1.6, 0., 0.2)

for i in range (0, 12):
  zlev[11-i] = 0.1 + i * 0.1

dislin.conshd (xray, n, yray, m, zmat, zlev, 12)

dislin.height (50)
dislin.title  ()

dislin.disfin ()


Map Plot / Python

#! /usr/bin/env python
import dislin

dislin.metafl ('xwin')
dislin.disini ()
dislin.pagera ()
dislin.complx ()

dislin.axspos (400, 1850)
dislin.axslen (2400, 1400)

dislin.name   ('Longitude', 'X')
dislin.name   ('Latitude',  'Y')
dislin.titlin ('World Coastlines and Lakes', 3)

dislin.labels ('MAP', 'XY')
dislin.digits (-1, 'XY')
dislin.grafmp (-180., 180., -180., 90., -90., 90., -90., 30.)

dislin.gridmp (1, 1)
dislin.color  ('green')
dislin.world  ()

dislin.color  ('foreground')
dislin.height (50)
dislin.title  ()
dislin.disfin ()


Tex Instructions for Mathematical Formulas / Python

#! /usr/bin/env python
import math
import dislin
  
dislin.setpag ('da4p')
dislin.disini ()
dislin.pagera ()
dislin.complx ()
dislin.height (40)

cstr = 'TeX Instructions for Mathematical Formulas'
nl = dislin.nlmess (cstr)
dislin.messag (cstr, (2100 - nl)/2, 100)
  
dislin.texmod ('on')
dislin.messag ('$\\frac{1}{x+y}$', 150, 400)
dislin.messag ('$\\frac{a^2 - b^2}{a+b} = a - b$', 1200, 400)
  
dislin.messag ('$r = \\sqrt{x^2 + y^2}', 150, 700)
dislin.messag ('$\\cos \\phi = \\frac{x}{\\sqrt{x^2 + y^2}}$', 1200, 700)

dislin.messag ('$\\Gamma(x) = \\int_0^\\infty e^{-t}t^{x-1}dt$', 150, 1000)
dislin.messag ('$\\lim_{x \\to \\infty} (1 + \\frac{1}{x})^x = e$', 1200, 1000)

dislin.messag ('$\\mu = \\sum_{i=1}^n x_i p_i$', 150, 1300)
dislin.messag ('$\\mu = \\int_{-\\infty}^ \\infty x f(x) dx$', 1200, 1300)

dislin.messag ('$\\overline{x} = \\frac{1}{n} \\sum_{i=1}^n x_i$', 150, 1600)
dislin.messag ('$s^2 = \\frac{1}{n-1} \\sum_{i=1}^n (x_i - \\overline{x})^2$',
               1200, 1600)

dislin.messag ('$\\sqrt[n]{\\frac{x^n - y^n}{1 + u^{2n}}}$', 150, 1900)  
dislin.messag ('$\\sqrt[3]{-q + \\sqrt{q^2 + p^3}}$', 1200, 1900)

dislin.messag ('$\\int \\frac{dx}{1+x^2} = \\arctan x + C$', 150, 2200)
dislin.messag ('$\\int \\frac{dx}{\\sqrt{1+x^2}} = {\\rm arsinh} x + C$',
               1200, 2200)

dislin.messag ('$\\overline{P_1P_2} = \\sqrt{(x_2-x_1)^2 + (y_2-y_1)^2}$',
               150,2500)
dislin.messag ('$x = \\frac{x_1 + \\lambda x_2}{1 + \\lambda}$', 1200, 2500)
dislin.disfin ()