This file is indexed.

/usr/share/pyxplot/help.xml is in pyxplot 0.9.2-6+b4.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   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
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
<?xml version="1.0"?>
<help>

Welcome to the Pyxplot help system. The 'help' command provides an
easily-navigable source of information which is supplementary to that in the
Users' Guide. To obtain information on any particular topic, type 'help'
followed by the name of the topic. For example,

help plot

provides information on Pyxplot's plot command. Some topics have subtopics,
this being one example; these are listed at the end of each help page. To view
them, add further words to the end of your help request, as in the example:

help set title

Information is arranged with general information about Pyxplot under the
heading 'about' and information about the format that input datafiles should
take under the heading 'datafile'. Information about each of Pyxplot's commands
can be found under the name of that command. Other categories, listed below,
are self-explanatory.

To exit any help page, press the 'Q' key.

 <authors>

Dominic Ford \\
Ross Church \\
email: \labcoders@pyxplot.org.uk\rab

 </authors>
 <credits>

The inspiration for Pyxplot came from two sources, to which Pyxplot owes a
considerable historical debt. Pyxplot's interface was heavily motivated by
gnuplot's simple and intuitive interface, which was devised by Thomas Williams
and Colin Kelley and has more recently been developed by many others. Pyxplot's
graphical output engine was heavily motivated by the PyX graphics library for
Python, originally written by Joerg Lehmann and Andre Wobst and more recently
developed by a larger team. Versions of Pyxplot prior to 0.8.0 used PyX to
produce their graphical output, and though version 0.8.x uses its own graphics
engine, it continues to bear many similarities to PyX.

Several other people have made very substantial contributions to Pyxplot's
development. Matthew Smith provided extensive advice on many mathematical
matters which arose during its development, provided C implementations of the
Airy functions and the Riemann zeta function for general complex inputs, and
suggested many mathematical functions which ought to be made available. Dave
Ansell provided many good ideas which have helped to shape Pyxplot's interface.
The writing of Pyxplot's PostScript engine was substantially eased thanks to
the help of Michael Rutter, who happily shared his code and past experiences
with us; the implementation of the image command is substantially his work.

We are also very grateful to our team of alpha testers, without whose work this
release of Pyxplot would doubtless contain many more bugs than it does:
especial thanks go to Rachel Holdforth and Stuart Prescott. Of course, the authors
remain solely responsible for any bugs which remain.

Finally, we would like to think all of the users who have got in touch with us
by email since Pyxplot was first released on the web in 2006. Your feedback and
suggestions have been gratefully received.

 </credits>
 <version>

This is Pyxplot version $VERSION.

 </version>
 <datafile>

Pyxplot expects its input datafiles to be in plain text format, with columns of
data separated either by whitespace or by commas. This means that Pyxplot is
compatible both with the format of datafiles read by gnuplot and with the
Comma Separated Values (CSV) format which many spreadsheets are able to
produce.

The subsections below provide some details of the modifiers that can follow the
plot command when working with datafiles to select which parts of the file
should be used. They also apply equally to other commands -- for example, the
interpolate, fit, fft and tabulate commands -- which also take input from
datafiles.

   <using>

The using specifier allows one to choose which columns of a datafile to use.
The example

plot 'data.dat' using 2:5 with points

would plot data from the file 'data.dat', drawing the horizontal positions of
each datapoint from the second column of the datafile, and the vertical
positions from the fifth. Algebraic expressions may also be used in place of
column numbers, as in the example:

plot 'data.dat' using (3+$1+$2):(2+$3)

In such expressions, column numbers are prefixed by dollar signs to distinguish
them from numerical constants. The example above would plot the sum of the
values in the first two columns of the datafile, plus three, on the horizontal
axis, against two plus the value in the third column on the vertical axis. The
column numbers in such expressions can also be replaced by algebraic
expressions, and so $2 can also be written as $(2) or $(1+1). In the following
example, the datapoints are all placed on the vertical line x=3 -- the brackets
around the 3 distinguish it as a numerical constant rather than a column number
-- meanwhile their vertical positions are drawn from the value of some column n
in the datafile, where the value of n is itself read from the second column of
the datafile:

plot 'data.dat' using (3):$($2)

    <rows>

The rows modifier causes datafiles to be considered as sets of rows rather
than columns. For example:

plot 'data' using rows 2:5 with points

would draw the horizontal positions of each datapoint from the second row of
the datafile, and the vertical positions from the fourth.

    </rows>
   </using>
   <every>

When Pyxplot reads a datafile, it looks for any blank lines in the file. It
divides the datafile up into "data blocks", each being separated from the next
by a single blank line. The first datablock is numbered 0, the next 1, and so
on.

When two or more blank lines are found together, the datafile is divided up
into "index blocks". The first index block is numbered 0, the next 1, and so
on. Each index block may be made up of a series of data blocks. To clarify
this, a labelled example datafile is shown below:

|#0.0###0.0#######Start#of#index#0,#data#block#0. \\
|#1.0###1.0###### \\
|#2.0###2.0###### \\
|#3.0###3.0###### \\
|#################A#single#blank#line#marks#the#start#of#a#new#data#block. \\
|#0.0###5.0#######Start#of#index#0,#data#block#1. \\
|#1.0###4.0###### \\
|#2.0###2.0###### \\
|#################A#double#blank#line#marks#the#start#of#a#new#index. \\
|#################... \\
|#0.0###1.0#######Start#of#index#1,#data#block#0. \\
|#1.0###1.0###### \\
|#################A#single#blank#line#marks#the#start#of#a#new#data#block. \\
|#0.0###5.0#######Start#of#index#1,#data#block#1. \\
|#################...etc...

The every modifier chooses which lines and data blocks of a datafile to take
data from; it takes up to six values, separated by colons:

plot 'datafile' every a:b:c:d:e:f

where the letters have the following meanings:

a Plot data only from every a th line in datafile.

b Plot only data from every b th block within each index block.

c Plot only from line c onwards within each block.

d Plot only data from block d onwards within each index block.

e Plot only up to the e th line within each block.

f Plot only up to the f th block within each index block.

Any or all of these values can be omitted, and so the following would both be
valid statements:

plot 'data.dat' index 1 every 2:3 \\
plot 'data.dat' index 1 every ::3

The first would plot only every other datapoint from every third data block;
the second from the third line onwards within each data block.

To select which index blocks to take data from, see the "index" modifier.

   </every>
   <index>

When Pyxplot reads a datafile, it looks for any blank lines in the file. It
divides the datafile up into "data blocks", each being separated from the next
by a single blank line. The first datablock is numbered 0, the next 1, and so
on.

When two or more blank lines are found together, the datafile is divided up
into "index blocks". The first index block is numbered 0, the next 1, and so
on. Each index block may be made up of a series of data blocks.

The index specifier selects an index block from a data set to plot data from.
For example:

plot 'data' index 1

will plot the data from the second index block only. A negative block number
will achieve the default option of plotting from all index blocks.

For more information on the divisions of datafiles see the "every" modifier.

   </index>
   <select>

The select modifier can be used to take only those datapoints from a datafile
which satisfy some criterion. For example:

plot 'data.dat' select ($3>50)

would select from the file 'data.dat' only those datapoints for which the value
in the third column of the file was greater than fifty.

Multiple select criteria can be specified using the logical and operator, as in
the example:

plot sin(x) select (($1>0)and($2>0))

The select modifier has many applications, including plotting two-dimensional
slices from three-dimensional datasets, and selecting certain subsets of
datapoints from a datafile for plotting.

   </select>

 </datafile>
 <date>

This version of Pyxplot was released on $DATE.

 </date>
 <license>

Pyxplot is distributed under the Gnu General Public License, Version 2. A copy
of this can be downloaded from: http://www.gnu.org/copyleft/gpl.html .

 </license>

  <questionmark>

?#[#\labtopic\rab#{#\labsub-topic\rab#}#]\\

The ? symbol is a shortcut to the help command. 

  </questionmark>
  <pling>

!#\labshell#command\rab\\...#`\labshell#command\rab`#...\\

Shell commands can be executed within Pyxplot by prefixing them with pling (!) characters, as in the example: 

!mkdir#foo\\

As an alternative, back-quotes (`) can be used to substitute the output of a shell command into a Pyxplot command, as in the example: 

set#xlabel#`echo#"'"#;#ls#;#echo#"'"`\\

Note that back-quotes cannot be used inside quote characters, and so the following would not work: 

set#xlabel#'`ls`'\\

  </pling>
  <arc>

arc#[#item#\labid\rab#]#[at]#\labvector\rab#radius#\lablength\rab\\####from#\labangle\rab#to#\labangle\rab#[#with#{#\laboption\rab#}#]\\

Arcs (curves with constant radius of curvature, that is, segments of circles) may be drawn on multiplot canvases using the arc command. The at modifier specifies the coordinates of the center of curvature, from which all points on the arc are at the distance given following the radius modifier. The angles start and finish, measured clockwise from the vertical, control where the arc begins and ends. For example, the command 

arc#at#0,0#radius#2#from#90#to#270\\

would draw a semi-circle beneath the line x=0, centered on the origin with radius 2 cm. The usual style modifiers for lines may be passed after the keyword with; if the fillcolor modifier is specified then the arc will be filled to form a pie-chart slice. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </arc>
  <arrow>

arrow#[#item#\labid\rab#]#[from]#\labvector\rab#to#\labvector\rab\\##################[#with#{#\laboption\rab#}#]\\

Arrows may be drawn on multiplot canvases using the arrow command. The style of the arrows produced may be specified by following the with modifier by one of the style keywords nohead, head (default) or twohead. In addition, keywords such as color, linewidth and linetype have the same syntax and meaning following the keyword with as in the plot command. The following example would draw a bidirectional blue arrow: 

arrow#from#x1,y1#to#x2,y2#with#twohead#linetype#2#color#blue\\

The arrow command has a twin, the line command, which has the same syntax, but uses the default arrow style of nohead, producing short line segments. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </arrow>
  <assert>

assert#(#\labexpression\rab#|#version#(#\rab=#|#\lab#)#\labversion\rab#)\\#######[#\laberror#message\rab#]\\

The assert command can be used to assert that a logical expression, such as x\rab0, is true. An error is reported if the expression is false, and optionally a string can be supplied to provide a more informative error message to the user: 

assert#x\rab0\\assert#y\lab0#"y#must#be#less#than#zero."\\

The assert command can also be used to test the version number of Pyxplot. It is possible to test either that the version is newer than or equal to a specific version, using the \rab= operator, or that it is older than a specific version, using the \lab operator, as demonstrated in the following examples: 

assert#version#\rab=#0.8.2\\assert#version#\lab##0.8##"This#script#is#designed#for#Pyxplot#0.7"\\

  </assert>
  <box>

box#[#item#\labid\rab#]#at#\labvector\rab#width#\lablength\rab#height#\lablength\rab\\#########[#rotate#\labangle\rab#]#[#with#{#\laboption\rab#}#]\\\\box#[#item#\labid\rab#]#from#\labvector\rab#to#\labvector\rab\\#########[#rotate#\labangle\rab#]#[#with#{#\laboption\rab#}#]\\

The box command is used to draw and fill rectangular boxes on multiplot canvases. The position of each box may be specified in one of two ways. In the first, the coordinates of one corner of the box are specified, along with its width and height. If both the width and the height are positive then the coordinates are taken to be those of the bottom left-hand corner of the box; other corners may be specified if the supplied width and/or height are negative. If a rotation angle is specified then the box is rotated about the specified corner. The with modifier allows the style of the box to be specified using similar options to those accepted by the plot command. The second syntax allows two pairs of coordinates to be specified. Pyxplot will then draw a rectangular box with opposing corners at the specified locations. If an angle is specified the box will be rotated about its center. Hence the following two commands both draw a square box centered on the origin: 

box#from#-1,#-1#to#1,1\\box#at#1,#-1#width#-2#height#2\\

All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </box>
  <break>

break#[#\labloopname\rab#]\\

The break command terminates execution of do, while, for and foreach loops in an analogous manner to the break statement in the C programming language. Execution resumes at the statement following the end of the loop. For example, the following loop would only print the numbers1 and2: 

for#i#=#1#to#10\\#{\\##print#i\\##if#(i==2)\\###{\\####break\\###}\\#}\\

If several loops are nested, the break statement only acts on the innermost loop. If the break statement is encountered outside of any loop structure, an error results. Optionally, the for, foreach, do and while commands may be supplied with a name for the loop, prefixed by the word loopname, as in the examples: 

for#i=0#to#4#loopname#iloop\\\\foreach#i#in#"*.dat"#loopname#DatafileLoop\\

When loops are given such names, the break statement may be followed by the name of the loop whose iteration is to be broken, allowing it to act upon loops other than the innermost one. See also the continue command. 

  </break>
  <call>

call#\labexpression\rab\\

The call command evaluates a function or subroutine call, and discards the result. Whereas entering f(x) on the commandline alone will print the result of the function call, call f(x) quietly discards the function evaluation. 

  </call>
  <cd>

cd#\labdirectory\rab\\

Pyxplot's cd command is very similar to the shell cd command; it changes the current working directory. The following example would enter the subdirectory foo: 

cd#foo\\

  </cd>
  <circle>

circle#[#item#\labid\rab#]#[at]#\labvector\rab#radius#\lablength\rab\\#######[#with#{#\laboption\rab#}#]\\

The circle command is used to draw circles on multiplot canvases. The coordinates of the circle's center and its radius are specified. The with modifier allows the style of the circle to be specified using similar options to those accepted by the plot command. The example 

circle#at#2,2#radius#1#with#color#red#fillcolor#blue\\

would draw a red circle of unit radius filled in blue, centered 2 cm above and to the right of the origin. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </circle>
  <clear>

clear\\

In multiplot mode, the clear command removes all plots, arrows and text objects from the working multiplot canvas. Outside of multiplot mode, it is not especially useful; it removes the current plot to leave a blank canvas. The clear command should not be followed by any parameters. 

  </clear>
  <continue>

continue#[#\labloopname\rab#]\\

The continue command terminates execution of the current iteration of for, foreach, do and while loops in an analogous manner to the continue statement in the C programming language. Execution resumes at the first statement of the next iteration of the loop, or at the first statement following the end of the loop in the case of the last iteration of the loop. For example, the following script will not print the number2: 

for#i#=#0#to#5\\#{\\##if#(i==2)\\###{\\####continue\\###}\\##print#i\\#}\\

If several loops are nested, the continue statement only acts on the innermost loop. If the continue statement is encountered outside of any loop structure, an error results. Optionally, the for, foreach, do and while statements may be supplied with a name for the loop, prefixed by the word loopname, as in the examples: 

for#i=0#to#4#loopname#iloop\\\\foreach#i#in#"*.dat"#loopname#DatafileLoop\\

When loops are given such names, the continue statement may be followed by the name of the loop whose iteration is to be broken, allowing it to act upon loops other than the innermost one. See also the break command. 

  </continue>
  <delete>

delete#{#\labitem#number\rab#}\\

The delete command removes vector graphics objects such as plots, arrows or text items from the current multiplot canvas. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. The items to be deleted should be identified using a comma-separated list of their identification numbers. The example 

delete#1,2,3\\

would remove item numbers1,2 and3. Having been deleted, multiplot items can be restored using the undelete command. 

  </delete>
  <do>

do#[#loopname#\labloopname\rab#]\\#\labcode\rab\\while#\labcondition\rab\\

The do command executes a block of commands repeatedly, checking the condition given in the while clause at the end of each iteration. If the condition is true then the loop executes again. This is similar to a while loop, except that the contents of a do loop are always executed at least once. The following example prints the numbers1, 2 and3: 

i=1\\do\\#{\\##print#i\\##i#=#i#+#1\\#}#while#(i#\lab#4)\\

Note that there must always be a newline following the opening brace after the do command, and the while clause must always be on the same line as the closing brace. 

  </do>
  <ellipse>

Ellipses may be drawn on multiplot canvases using the ellipse command. The shape of the ellipse may be specified in many different ways, by specifying 

[(i)] None the position of two corners of the smallest rectangle which can enclose the ellipse when its major axis is horizontal, together with an optional counter-clockwise rotation angle, applied about the center of the ellipse. For example: 

ellipse#from#0,0#to#4,1#rot#70\\

 \\
None the position of both the center and one of the foci of the ellipse, together with any one of the following additional pieces of information: the ellipse's major axis length, its semi-major axis length, its minor axis length, its semi-minor axis length, its eccentricity, its latus rectum, or its semi-latus rectum. For example: 

ellipse#focus#0,0#center#2,2#majoraxis#4\\ellipse#focus#0,0#center#2,2#minoraxis#4\\ellipse#focus#0,0#center#2,2#ecc#0.5\\ellipse#focus#0,0#center#2,2#LatusRectum#6\\ellipse#focus#0,0#center#2,2#slr#3\\

 \\
None the position of either the center or one of the foci of the ellipse, together with any two of the following additional pieces of information: the ellipse's major axis length, its semi-major axis length, its minor axis length, its semi-minor axis length, its eccentricity, its latus rectum, or its semi-latus rectum. An optional counter-clockwise rotation angle may also be specified, applied about either the center or one of the foci of the ellipse, whichever is specified. If no rotation angle is given, then the major axis of the ellipse is horizontal. For example: 

ellipse#center#0,0#majoraxis#4#minoraxis#4\\

 \\

Optionally, an arc of an ellipse may be drawn by adding the following modified: 

arc#from#\labangle\rab#to#\labangle\rab\\

The line type, line width, and color of line with which the outlines of ellipses are drawn may be specified after the keyword with, as in the box and circle commands above. Likewise, ellipses may be filled in the same manner. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </ellipse>
  <else>

The else statement is described in the entry for the if statement, of which it forms part. 

  </else>
  <eps>

eps#[#item#\labid\rab#]#\labfilename\rab#[#at#\labvector\rab#]#[rotate#\labangle\rab]\\###########################[width#\lablength\rab]#[height#\lablength\rab]\\########################################[#clip#]#[#calcbbox#]\\

The eps command allows Encapsulated PostScript (EPS) images to be inserted onto multiplot canvases. The at modifier can be used to specify where the image should be placed on the vector graphics canvas; if it is not, then the image is placed at the origin. The settings texthalign and textvalign determined how the image is aligned relatively to this reference point - for example, whether its bottom left corner or its center is placed at the reference point. The rotate modifier can be used to rotate the image by any angle, measured in degrees counter-clockwise. The width or height modifiers can be used to specify the width or height with which the image should be rendered; both should be specified in centimeters. If neither is specified then the image will be rendered with the native dimensions specified within the PostScript. The eps command is often useful in multiplot mode, allowing PostScript images to be combined with plots, text labels, etc. The clip modifier causes Pyxplot to clip an eps image to its stated bounding box. The calcbbox modifier causes Pyxplot to ignore the bounding box stated in the eps file and calculate its own when working out how to scale the image to the specified width and height. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </eps>
  <exec>

exec#\labcommand\rab\\

The exec command can be used to execute Pyxplot commands contained within string variables, as in the following example: 

terminal="eps"\\exec#"set#terminal#%s"%(terminal)\\

It can also be used to write obfuscated Pyxplot scripts, and its use should be minimized wherever possible. 

  </exec>
  <exit>

exit\\

The exit command can be used to quit Pyxplot. If multiple command files, or a mixture of command files and interactive sessions, were specified on Pyxplot's command line, then Pyxplot moves onto the next command-line item after receiving the exit command. Pyxplot may also be quit be pressing CTRL-D or using the quit command. In interactive mode, CTRL-C terminates the current command, if one is running. When running a script, CTRL-C terminates execution of the script. 

  </exit>
  <fft>

fft#{#\labrange\rab#}#\labfunction#name\rab()\\####of#(#\labfilename\rab#|#\labfunction#name\rab()#)\\####[#using#{#\labexpression\rab#}#]\\\\ifft#{#\labrange\rab#}#\labfunction#name\rab()\\####of#(#\labfilename\rab#|#\labfunction#name\rab()#)\\####[#using#{#\labexpression\rab#}#]\\

The fft command calculates Fourier transforms of data files or functions. Transforms can be performed on datasets with arbitrary numbers of dimensions. To transform an algebraic expression with ndegrees of freedom, it must be wrapped in a function of the form f(i,i,...,i). To transform an n-dimensional dataset stored in a data file, the samples must be arranged on a regular linearly-spaced grid and stored in row-major order. For each dimension of the transform, a range specification must be provided to the fft command in the form 

[#\labminimum\rab#:#\labmaximum\rab#:#\labstep\rab#]\\

When data from a data file is being transformed, the specified range(s) must precisely match those of the samples read from the file; the first ncolumns of data should contain the values of the nreal-space coordinates, and the n+1th column should contain the data to be transformed. After the range(s), a function name should be provided for the output transform: a function of narguments with this name will be generated to represent the transformed data. Note that this function is in general complex - i.e. it has a non-zero imaginary component. Complex numerics can be enabled using the set numerics complex command and the fft command is of little use without doing so. The using, index, every and select modifiers can be used to specify how data will be sampled from the input function or data file in an analogous manner to how they are used in the plot command. The ifft command calculates inverse Fourier transforms; it has the same syntax as the fft command. 

  </fft>
  <fit>

fit#[#{#\labrange\rab#}#]#\labfunction#name\rab()#[#withouterrors#]\\####(#\labfilename\rab#|#{#\labexpression\rab#}#|#{#\labvector#obj\rab#}#)\\####[#index#\labvalue\rab#]#[#using#{#\labexpression\rab#}#]\\####via#{#\labvariable\rab#}\\

The fit command can be used to fit arbitrary functional forms to data points read from files. It can be used to produce best-fit lines for datasets or to determine gradients and other mathematical properties of data by looking at the parameters associated with the best-fitting functional form. The following simple example fits a straight line to data in a file called data.dat: 

f(x)#=#a*x+b\\fit#f()#'data.dat'#index#1#using#2:3#via#a,b\\

The first line specifies the functional form which is to be used. The coefficients within this function, a and b, which are to be varied during the fitting process are listed after the keyword via in the fit command. The modifiers index, every, select and using have the same meanings in the fit command as in the plot command. When fitting a function of n variables, at least n+1 columns (or rows - see Section 3.9.1 of the Users' Guide) of data must be specified after the using modifier. By default, the first n+1 columns are used. These correspond to the values of each of the n arguments to the function, plus finally the value which the output from the function is aiming to match. If an additional column is specified, then this is taken to contain the standard error in the value that the output from the function is aiming to match, and can be used to weight the data points which are being used to constrain the fit. As the fit command works, it displays statistics including the best-fit values of each of the fitting parameters, the uncertainties in each of them, and the covariance matrix. These can be useful for analysing the security of the fit achieved, but calculating the uncertainties in the best-fit parameters and the covariance matrix can be time consuming, especially when many parameters are being fitted simultaneously. The optional keyword withouterrors can be included immediately before the filename of the data file to be fitted to substantially speed up cases where this information is not required. By default, the starting values for each of the fitting parameters is 1.0. However, if the variables to be used in the fitting process are already set before the fit command is called, these initial values are used instead. For example, the following would use the initial values {a=100,b=50}: 

f(x)#=#a*x+b\\a#=#100\\b#=#50\\fit#f()#'data.dat'#index#1#using#2:3#via#a,b\\

More details can be found in Section 5.6 of the Users' Guide. 

  </fit>
  <for>

for#\labvariable\rab#=#\labstart\rab#to#\labend\rab#[step#\labstep\rab]\\##########################[loopname#\labloopname\rab]\\##\labcode\rab\\\\for#(\labinitialise\rab;#\labcriterion\rab;#\labstep\rab)\\##\labcode\rab\\

The for command executes a set of commands repeatedly. Pyxplot allows for loops to follow either the syntax of the BASIC programming language, or the C syntax. In the BASIC variant, a specified variable takes a different value on each iteration. The variable takes the value start on the first iteration, and increases by a fixed value step on each iteration; step may be negative if end \lab start. If step is not specified then a value of unity is assumed. The loop terminates when the variable exceeds end. The following example prints the squares of the first five natural numbers: 

for#i#=#1#to#5\\#{\\##print#i**2\\#}\\

In the C variant, three expressions are provided, which are evaluated (a) when the loop initialises, (b) as a boolean test of whether the loop should continue iterating, and (c) on each loop to increment/decrement variables as required. For example: 

for#(i=1,j=1;#i\lab=256;#i*=2,j++)#{#print#"%3d#%3d"%(j,i);#}\\

  </for>
  <foreach>

foreach#\labvariable\rab#in#(#\labfilename#wildcard\rab#|\\########################\lablist\rab#)\\######################[#loopname#\labloopname\rab#]\\##\labcode\rab\\

The foreach command can be used to run a block of commands repeatedly, once for each item in a list. The list of items can be specified in one of two ways. In the first case, a set of filenames or filename wildcards is supplied, and the foreach loop iterates once for each supplied filename, with a string variable set to each filename in succession. For example, the following loop would plot the data in the set of files whose names end with .dat: 

plot#####\##Create#blank#plot\\foreach#file#in#*.dat\\#{\\##replot#file#with#lines\\#}\\

The second form of the command takes a list of string or numerical values provided explicitly by the user, and the foreach loop iterates once for each value, with a variable set to each value in succession. For example, the following script would plot normal distributions of three different widths: 

plot#####\##Create#blank#plot\\foreach#sigma#in#(1,#2,#3)\\#{\\##replot#1/sigma*exp(-x**2/(2*sigma**2))\\#}\\

  </foreach>
  <foreach_datum>

foreach#{#\labvariable\rab#}#in#[#{#\labrange\rab#}#]\\####(#\labfilename\rab#|#{#\labexpression\rab#}#|#{#\labvector#obj\rab#}#)\\####[#every#{#\labexpression\rab#}#]\\####[#index#\labvalue\rab#]#[#select#\labexpression\rab#]\\####[#using#{#\labexpression\rab#}#]\\##\labcode\rab\\

The foreach datum command executes a series of commands for each data pointread from a data fileor function. It takes a similar set of modifiers to the plot command; the list of variables to be read from the supplied data on each iteration should be comma separated. 

  </foreach_datum>
  <global>

global#{#\labvariable#name\rab#}\\

The global command command may be used within subroutines, which have their own private variable namespaces, to specify that the named variables should refer to the global namespace. If multiple variables are specified, their names should be comma separated. 

  </global>
  <help>

help#[#\labtopic\rab#{#\labsub-topic\rab#}#]\\

The help command provides an hierarchical source of information which is supplementary to this Users' Guide. To obtain information on any particular topic, type help followed by the name of the topic, as in the following example 

help#commands\\

which provides information on Pyxplot's commands. Some topics have sub-topics; these are listed at the end of each help page. To view them, add further words to the end of the help request, as in the example: 

help#commands#help\\

Information is arranged with general information about Pyxplot under the heading about and information about Pyxplot's commands under commands. Information about the format that input data files should take can be found under datafile. Other categories are self-explanatory. To exit any help page, press the q key. 

  </help>
  <histogram>

histogram#[#\labrange\rab#]#\labfunction#name\rab()\\#####(#\labfilename\rab#|#{#\labexpression\rab#}#|#{#\labvector#obj\rab#}#)\\#####[#every#{#\labexpression\rab#}#]\\#####[#index#\labvalue\rab#]\\#####[#select#\labexpression\rab#]\\#####[#using#{#\labexpression\rab#}#]\\#####(#[#binwidth#\labvalue\rab#]#[#binorigin#\labvalue\rab#]#|\\#######[#bins#(x1,#x2,#...)#]#)\\

The histogram command takes a single column of data from a file and produces a function that represents the frequency distribution of the supplied data values. The output function consists of a series of discrete intervals which we term bins. Within each interval the output function has a constant value, determined such that the area under each interval - i.e. the integral of the function over each interval - is equal to the number of datapoints found within that interval. The following simple example 

histogram#f()#'input.dat'\\

produces a frequency distribution of the data values found in the first column of the file input.dat, which it stores in the function f(x). The value of this function at any given point is equal to the number of items in the bin at that point, divided by the width of the bins used. If the input datapoints are not dimensionless then the output frequency distribution adopts appropriate units, thus a histogram of data with units of length has units of one over length. The number and arrangement of bins used by the histogram command can be controlled by means of various modifiers. The binwidth modifier sets the width of the bins used. The binorigin modifier controls where their boundaries lie; the histogram command selects a system of bins which, if extended to infinity in both directions, would put a bin boundary at the value specified in the binorigin modifier. Thus, if binorigin 0.1 were specified, together with a bin width of20, bin boundaries might lie at20.1, 40.1, 60.1, and so on. Alternatively global defaults for the bin width and the bin origin can be specified using the set binwidth and set binorigin commands respectively. The example 

histogram#h()#'input.dat'#binorigin#0.5#binwidth#2\\

would bin data into bins between 0.5 and 2.5, between 2.5 and 4.5, and so forth. Alternatively the set of bins to be used can be controlled more precisely using the bins modifier, which allows an arbitrary set of bins to be specified. The example 

histogram#g()#'input.dat'#bins#(1,#2,#4)\\

would bin the data into two bins, x=1to2 and x=2to4. A range can be supplied immediately following the histogram command, using the same syntax as in the plot and fit commands; if such a range is supplied, only points that fall within that range will be binned. In the same way as in the plot command, the index, every, using and select modifiers can be used to specify which subsets of a data file should be used. Two points about the histogram command are worthy of note. First, although histograms are similar to bar charts, they are not the same. A bar chart conventionally has the height of each bar equal to the number of points that it represents, whereas a histogram is a continuous function in which the area underneath each interval is equal to the number of points within it. Thus, to produce a bar chart using the histogram command, the end result should be multiplied by the bin width used. Second, if the function produced by the histogram command is plotted using the plot command, samples are automatically taken not at evenly spaced intervals along the ordinate axis, but at the centers of each bin. If the boxes plot style is used, the box boundaries are be conveniently drawn to coincide with the bins into which the data were sorted. 

  </histogram>
  <history>

history#[#\labnumber#of#items\rab#]\\

The history command prints a list of the most recently executed commands on the terminal. The optional parameter, N, if supplied, causes only the latest N commands to be displayed. 

  </history>
  <if>

if#\labcriterion\rab#\labcode\rab\\{#else#if#\labcriterion\rab#\labcode\rab#}\\[#else################\labcode\rab#]\\

The if command allows conditional execution of blocks of commands. The code enclosed in braces following the if statement is executed if, and only if, the criterion is satisfied. An arbitrary number of subsequent else if statements can optionally follow the initial if statement; these have their own criteria for execution which are only considered if all of the previous criteria have tested false - i.e. if none of the previous command blocks have been executed. A final optional else statement can be provided; the block of commands which follows it are executed only if none of the preceding criteria have tested true. The following example illustrates a chain of else if clauses: 

if#(x==2)\\#{\\##print#"x#is#two!"\\#}#else#if#(x==3)#{\\##print#"x#is#three!"\\#}#else#if#(x\rab3)#{\\##print#"x#is#greater#than#three!"\\#}#else#{\\##x=2\\##print#"x#didn't#used#to#be#two,#but#it#is#now!"\\#}\\

  </if>
  <ifft>

ifft#{#\labrange\rab#}#\labfunction#name\rab()\\####of#(#\labfilename\rab#|#\labfunction#name\rab()#)\\####[using#{#\labexpression\rab#}#]\\

See fft. 

  </ifft>
  <image>

image#[#item#\labid\rab#]#\labfilename\rab#[#at#\labvector\rab#]\\#########[#rotate#\labangle\rab#]#[#width#\lablength\rab#]\\#########[#height#\lablength\rab]#[#smooth#]\\#########[#notransparent#]#[#transparent#rgb#\labr\rab:\labg\rab:\labb\rab#]\\

The image command allows graphical images to be inserted onto the current multiplot canvas from files on disk. Input graphical images may be in bitmap, gif, jpeg or png formats; the file type of each image is automatically detected. The at modifier can be used to specify where the image should be placed on the vector graphics canvas; if it is not, then the image is placed at the origin. The settings texthalign and textvalign determined how the image is aligned relatively to this reference point - for example, whether its bottom left corner or its center is placed at the reference point. The rotate modifier can be used to rotate images by any angle, measured in degrees counter-clockwise. The width or height modifiers can be used to specify the width or height with which images should be rendered; both should be specified in centimeters. If neither is specified then images are rendered with the native dimensions specified within the metadata present in the image file (if any). If both are specified, then the aspect ratio of the image is changed. The keyword smooth may optionally be supplied to cause the pixels of images to be interpolated[*]. Images which include transparency are supported. The optional keyword notransparent may be supplied to cause transparent regions to be filled with the image's default background color. Alternatively, an RGB color may be specified in the form rgb\labr\rab:\labg\rab:\labb\rab after the keyword transparent to cause that particular color to become transparent; the three components of the RGB color should be in the range0 to255. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. * -- Many commonly-used PostScript display engines, including Ghostscript, do not support this functionality.

  </image>
  <interpolate>

interpolate#(#akima#|#linear#|#loglinear#|#polynomial#|\\##############spline#|#stepwise#|\\##############2d#[#(#bmp_r#|#bmp_g#|#bmp_b#)#]#)\\############[#\labrange#specification\rab#]#\labfunction#name\rab()\\############\labfilename\rab\\############[#every#{#\labexpression\rab#}#]\\############[#index#\labvalue\rab#]\\############[#select#\labexpression\rab#]\\############[#using#{#\labexpression\rab#}#]\\

The interpolate command can be used to generate a special function within Pyxplot's mathematical environment which interpolates a set of data points supplied from a data file. Either one- or two-dimensional interpolation is possible. In the case of one-dimensional interpolation, various different types of interpolation are supported: linear interpolation, power law interpolation, polynomial interpolation, cubic spline interpolation and akima spline interpolation. Stepwise interpolation returns the value of the datapoint nearest to the requested point in argument space. The use of polynomial interpolation with large datasets is strongly discouraged, as polynomial fits tend to show severe oscillations between data points. Except in the case of stepwise interpolation, extrapolation is not permitted; if an attempt is made to evaluate an interpolated function beyond the limits of the data points which it interpolates, Pyxplot returns an error or value of not-a-number. In the case of two-dimensional interpolation, the type of interpolation to be used is set using the interpolate modifier to the set samples command, and may be changed at any time after the interpolation function has been created. The options available are nearest neighbor interpolation - which is the two-dimensional equivalent of stepwise interpolation, inverse square interpolation - which returns a weighted average of the supplied data points, using the inverse squares of their distances from the requested point in argument space as weights, and Monaghan Lattanzio interpolation, which uses the weighting function given in Monaghan &amp; Lattanzio (1985). These are selected as follows: 

set#samples#interpolate#nearestNeighbor\\set#samples#interpolate#inverseSquare\\set#samples#interpolate#monaghanLattanzio\\

Finally, data can be imported from graphical images in bitmap (.bmp) format to produce a function of two arguments returning a value in the range0to1 which represents the data in one of the image's three color channels. The two arguments are the horizontal and vertical position within the bitmap image, as measured in pixels. A very common application of the interpolate command is to perform arithmetic functions such as addition or subtraction on datasets which are not sampled at the same abscissa values. The following example would plot the difference between two such datasets: 

interpolate#linear#f()#'data1.dat'\\interpolate#linear#g()#'data2.dat'\\plot#[min:max]#f(x)-g(x)\\

Note that it is advisable to supply a range to the plot command in this example: because the two datasets have been turned into continuous functions, the plot command has to guess a range over which to plot them unless one is explicitly supplied. The spline command is an alias for interpolate spline; the following two statements are equivalent: 

spline#f()#'data1.dat'\\interpolate#spline#f()#'data1.dat'\\

  </interpolate>
  <jpeg>

jpeg#[#item#\labid\rab#]#\labfilename\rab#[#at#\labvector\rab#]\\#########[#rotate#\labangle\rab#]#[#width#\lablength\rab#]\\#########[#height#\lablength\rab]#[#smooth#]\\#########[#notransparent#]#[#transparent#rgb#\labr\rab:\labg\rab:\labb\rab#]\\

See image. 

  </jpeg>
  <let>

let#\labvariable#name\rab#=#\labvalue\rab\\

The let command sets the named variable to equal value. 

  </let>
  <list>

list\\

The list command returns a list of all of the items on the current multiplot canvas, giving their identification numbers and the commands used to produce them. The following is an example of the output produced: pyxplot\rab <textbf>
list
</textbf> 

\##ID###Command\\####1##plot#item#1#f(x)#using#columns\\####2##[deleted]#text#item#2#"Figure#1:#A#plot#of#f(x)"#at#0,0#rotate#0#gap#0\\####3##text#item#3#"Figure#1:#A#plot#of#$f(x)$"#at#0,0#rotate#0#gap#0\\

  In this example, the user has plotted a graph of f(x) and added a caption to it. The ID column lists the reference numbers of each multiplot item. Item 1 has been deleted. 

  </list>
  <load>

load#\labfilename\rab\\

The load command executes a Pyxplot command script file, just as if its contents had been typed into the current terminal. For example: 

load#'foo'\\

would have the same effect as typing the contents of the file foo into the present terminal. Filename wildcard can be supplied, in which case all command files matching the given wildcard are executed, as in the example: 

load#'*.script'\\

  </load>
  <local>

local#{#\labvariable#name\rab#}\\

The global command command may be used within subroutines, which have their own private variable namespaces. It specifies that the named variables should, from now on, refer to the local namespace, even if the global command command has previously been used to reference the global namespace. If multiple variables are specified, their names should be comma separated. 

  </local>
  <maximize>

maximize#\labexpression\rab#via#{#\labvariable\rab#}\\

The maximize command can be used to find the maxima of algebraic expressions. A single algebraic expression should be supplied for optimisation, together with a comma-separated list of the variables with respect to which it should be optimised. In the following example, a maximum of the sinusoidal function cos(x) is sought:  <input>

</input>  Note that this particular example doesn't work when complex arithmetic is enabled, since cos(x) diverges to infinity at x=infinityi. Various caveats apply the maximize command, as well as to the minimize and solve commands. All of these commands operate by searching numerically for optimal sets of input parameters to meet the criteria set by the user. As with all numerical algorithms, there is no guarantee that the locally optimum solutions returned are the globally optimum solutions. It is always advisable to double-check that the answers returned agree with common sense. These commands can often find solutions to equations when these solutions are either very large or very small, but they usually work best when the solution they are looking for is roughly of order unity. Pyxplot does have mechanisms which attempt to correct cases where the supplied initial guess turns out to be many orders of magnitude different from the true solution, but it cannot be guaranteed not to wildly overshoot and produce unexpected results in such cases. To reiterate, it is always advisable to double-check that the answers returned agree with common sense. 

  </maximize>
  <minimize>

minimize#\labexpression\rab#via#{#\labvariable\rab#}\\

The minimize command can be used to find the minima of algebraic expressions. A single algebraic expression should be supplied for optimisation, together with a comma-separated list of the variables with respect to which it should be optimised. In the following example, a minimum of the sinusoidal function cos(x) is sought:  <input>

</input>  Note that this particular example doesn't work when complex arithmetic is enabled, since cos(x) diverges to -infinity at x=pi+infinityi. Various caveats apply the minimize command, as well as to the maximize and solve commands. All of these commands operate by searching numerically for optimal sets of input parameters to meet the criteria set by the user. As with all numerical algorithms, there is no guarantee that the locally optimum solutions returned are the globally optimum solutions. It is always advisable to double-check that the answers returned agree with common sense. These commands can often find solutions to equations when these solutions are either very large or very small, but they usually work best when the solution they are looking for is roughly of order unity. Pyxplot does have mechanisms which attempt to correct cases where the supplied initial guess turns out to be many orders of magnitude different from the true solution, but it cannot be guaranteed not to wildly overshoot and produce unexpected results in such cases. To reiterate, it is always advisable to double-check that the answers returned agree with common sense. 

  </minimize>
  <move>

move#\labitem#number\rab#to#\labvector\rab#[#rotate#\labangle\rab#]\\

The move command allows vector graphics objects to be moved around on the current multiplot canvas. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. The item to be moved should be specified using its identification number. The example 

move#23#to#8,8\\

would move multiplot item23 to position (8,8) centimeters. If this item were a plot, the end result would be the same as if the command set origin 8,8 had been executed before it had originally been plotted. 

  </move>
  <piechart>

  </piechart>
  <plot>

plot#[#3d#]#[#item#\labid\rab#]#[#{#\labrange\rab#}#]\\#####(#\labfilename\rab#|#{#\labexpression\rab#}#|#{#\labvector#obj\rab#}#)\\#####[#axes#\labaxes\rab]#[#every#{#\labexpression\rab#}#]\\#####[#index#\labvalue\rab]#[#select#\labexpression\rab#]\\#####[#label#\labstring#expression\rab#]\\#####[#title#\labstring\rab#]#[#using#{#\labexpression\rab#}#]\\#####[#with#{#\laboption\rab#}#]\\

The plot command is used to produce graphs. The following simple example would plot the sine function: 

plot#sin(x)\\

Ranges for the axes of a graph can be specified by placing them in square brackets before the name of the function to be plotted. An example of this syntax would be: 

plot#[-pi:pi]#sin(x)\\

which would plot the function sin(x) between -pi and pi. Data files may also be plotted as well as functions, in which case the filename of the data file to be plotted should be enclosed in either single or double quotation marks. An example of this syntax would be: 

plot#'data.dat'#with#points\\

which would plot data from the file data.dat. Section 3.8 of the Users' Guide provides further details of the format that input data files should take and how Pyxplot may be directed to plot only certain portions of data files. Multiple datasets can be plotted on a single graph by specifying them in a comma-separated list, as in the example: 

plot#sin(x)#with#color#blue,#cos(x)#with#linetype#2\\

If the 3d modifier is supplied to the plot command, then a three-dimensional plot is produced; many plot styles then take additional columns of data to signify the positions of datapoints along the z-axis. This is described further in Chapter 8 of the Users' Guide. The angle from which three-dimensional plots are viewed can be set using the set view command. 
   <axes>

The axes modifier may be used to specify which axes data should be plotted against when plots have multiple parallel axes - for example, if a plot has an x-axis along its lower edge and an x2-axis along its upper edge. The following example would plot data using the x2-axis as the ordinate axis and the y-axis as the abscissa axis: 

plot#sin(x)#axes#x2y1\\

It is also possible to use the axes modifier to specify that a vertical ordinate axis and a horizontal abscissa axis should be used; the following example would plot data using the y-axis as the ordinate axis and the x-axis as the abscissa axis: 

plot#sin(x)#axes#yx\\

   </axes>
   <label>

The label modifier to the plot command may be used to render text labels next to datapoints, as in the following examples: 

set#samples#8\\plot#[2:5]#x**2#label#"$x=%.2f$"%($1)#with#points\\\\plot#'datafile'#using#1:2#label#"%s"%($3)\\

Note that if a particular column of a data file contains strings which are to be used as labels, as in the second example above, syntax such as "%s"%($3) must be used to explicitly read the data as strings rather than as numerical quantities. As Pyxplot treats any whitespace as separating columns of data, such labels cannot contain spaces, though LaTeX's ~ character can be used to achieve a space. Datapoints can be labelled when plotted in any of the following plot styles: arrows (and similar styles), dots, errorbars (and similar styles), errorrange (and similar styles), impulses, linespoints, lowerlimits, points, stars and upperlimits. It is not possible to label datapoints plotted in other styles. Labels are rendered in the same color as the datapoints with which they are associated. 

   </label>
   <title>

By default, Pyxplot generates its own entry in the legend of a plot for each dataset plotted. This default behaviour can be overridden using the title modifier. The following example labels a dataset as `Dataset1': 

plot#sin(x)#title#'Dataset#1'\\

If a blank string, i.e. "", is supplied, then no entry is made in the plot's legend for that dataset. The same effect can be achieved using the notitle modifier. 

   </title>
   <with>

The with modifier controls the style in which data should be plotted. For example, the statement 

plot#"data.dat"#index#1#using#4:5#with#lines\\

 specifies that data should be plotted using lines connecting each data pointto its neighbors. More generally, the with modifier can be followed by a range of settings which fine-tune the manner in which the data are displayed; for example, the statement 

plot#"data.dat"#with#lines#linewidth#2.0\\

 would use twice the default width of line. The following is a complete list of all of Pyxplot's plot styles - i.e. all of the words which may be used in place of lines: arrows_head, arrows_nohead, arrows_twohead, boxes, colormap, contourmap, dots, filledRegion, fsteps, histeps, impulses, lines, linesPoints, lowerLimits, points, stars, steps, surface, upperLimits, wboxes, xErrorBars, xErrorRange, XYErrorBars, xyErrorRange, xyzErrorBars, XYZErrorRange, xzErrorBars, xzErrorRange, yErrorBars, yErrorRange, yErrorShaded, yzErrorBars, yzErrorRange, zErrorBars, zErrorRange. In addition, lp and pl are recognised as abbreviations for linespoints; errorbars is recognised as an abbreviation for yerrorbars; errorrange is recognised as an abbreviation for yerrorrange; and arrows_twoway is recognised as an alternative for arrows_twohead. As well as the names of these plot styles, the with modifier can also be followed by style modifiers such as linewidth which alter the exact appearance of various plot styles. A complete list of these is as follows: 

* color - used to select the color in which each dataset is to be plotted. It should be followed either by an integer, to set a color from the present palette (see Section 8.1.1 of the Users' Guide), by a recognised color name, or by an object of type color. This modifier may also be spelt colour.  \\
* fillcolor - used to select the color in which each dataset is filled. The color may be specified using any of the styles listed for color. May also be spelt fillcolor.  \\
* linetype - used to numerically select the type of line - for example, solid, dotted, dashed, etc. - which should be used in line-based plot styles. A complete list of Pyxplot's numbered line types can be found in Chapter 18 of the Users' Guide. May be abbreviated lt.  \\
* linewidth - used to select the width of line which should be used in line-based plot styles, where unity represents the default width. May be abbreviated lw.  \\
* pointlinewidth - used to select the width of line which should be used to stroke points in point-based plot styles, where unity represents the default width. May be abbreviated plw.  \\
* pointsize - used to select the size of drawn points, where unity represents the default size. May be abbreviated ps.  \\
* pointtype - used to numerically select the type of point - for example, crosses, circles, etc. - used by point-based plot styles. A complete list of Pyxplot's numbered point types can be found in Chapter 18 of the Users' Guide. May be abbreviated pt.  \\

Any number of these modifiers may be placed sequentially after the keyword with, as in the following examples: 

plot#'datafile'#using#1:2#with#points#pointsize#2\\plot#'datafile'#using#1:2#with#lines#color#red#linewidth#2\\plot#'datafile'#using#1:2#with#lp#col#1#lw#2#ps#3\\

Where modifiers take numerical values, expressions of the form $2+1, similar to those supplied to the using modifier, may be used to indicate that each datapoint should be displayed in a different style or in a different color. The following example would plot a data file with points, drawing the position of each point from the first two columns of the supplied data file and the size of each point from the third column: 

plot#'datafile'#using#1:2#with#points#pointsize#$3\\

   </with>

  </plot>
  <point>

point#[#item#\labid\rab#]#[at]#\labvector\rab#[#label#\labstring\rab#]\\####################[#with#{#\laboption\rab#}#]\\

The point command allows a single point to be plotted on the current multiplot canvas independently of any graph. It is equivalent to plotting a data file containing a single datum and with invisible axes. If an optional label is specified then the text string provided is rendered next to the point. The with modifier allows the style of the point to be specified using similar options to those accepted by the plot command. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </point>
  <print>

print#{#\labexpression\rab#}\\

The print command displays a string or the value of a mathematical expression to the terminal. It is most often used to find the value of a variable, though it can also be used to produce formatted textual output from a Pyxplot script. For example, 

print#a\\

would print the value of the variable a, and 

print#"a#=#%s"%(a)\\

would produce the same result in the midst of formatted text. 

  </print>
  <pwd>

pwd\\

The pwd command prints the location of the current working directory. 

  </pwd>
  <quit>

quit\\

The quit command can be used to exit Pyxplot. See exit for more details. 

  </quit>
  <rectangle>

rectangle#[#item#\labid\rab#]#at#\labvector\rab\\#########width#\lablength\rab#height#\lablength\rab\\#########[#rotate#\labangle\rab#]#[#with#{#\laboption\rab#}#]\\\\rectangle#[#item#\labid\rab#]#from#\labvector\rab#to#\labvector\rab\\#########[#rotate#\labangle\rab#]#[#with#{#\laboption\rab#}#]\\

See box. 

  </rectangle>
  <refresh>

refresh\\

The refresh command produces an exact copy of the latest display. It can be useful, for example, after changing the terminal type, to produce a second copy of a plot in a different graphic format. It differs from the replot command in that it doesn't replot anything; use of the set command since the previous plot command has no effect on the output. 

  </refresh>
  <replot>

replot#[#item#\labid\rab#]#...\\

The replot command has the same syntax as the plot command and is used to add more datasets to an existing plot, or to change its axis ranges. For example, having plotted one data file using the command 

plot#'datafile1.dat'\\

another can be plotted on the same axes using the command 

replot#'datafile2.dat'#using#1:3\\

or the ranges of the axes on the original plot can be changed using the command 

replot#[0:1][0:1]\\

The plot is also updated to reflect any changes to settings made using the set command. In multiplot mode, the replot command can likewise be used to modify the last plot added to the page. For example, the following would change the title of the latest plot to `foo', and add a plot of the function g(x) to it: 

set#title#'foo'\\replot#cos(x)\\

Additionally, in multiplot mode it is possible to modify any plot on the current multiplot canvas by adding an item modifier to the replot statement to specify which plot should be replotted. The following example would produce two plots, and then add an additional function to the first plot: 

set#multiplot\\plot#f(x)\\set#origin#10,0\\plot#g(x)\\replot#item#1#h(x)\\

If no item number is specified, then the replot command acts by default upon the most recent plot to have been added to the multiplot canvas. 

  </replot>
  <reset>

reset\\

The reset command reverts the values of all settings that have been changed with the set command back to their default values. It also clears the current multiplot canvas. 

  </reset>
  <save>

save#\labfilename\rab\\

The save command saves a list of all of the commands which have been executed in the current interactive Pyxplot session into a file. The filename to be used for the output should be placed in quotes, as in the example: 

save#'foo'\\

would save a command history into the file named foo. 

  </save>
  <set>

set#\laboption\rab#\labvalue\rab\\

The set command is used to configure the values of a wide range of parameters within Pyxplot which control its behaviour and the style of the output which it produces. For example: 

set#pointsize#2\\

would set the size of points plotted by Pyxplot to be twice the default. In the majority of cases, the syntax follows that above: the set command should be followed by a keyword which specifies which parameter should be set, followed by the value to which that parameter should be set. Those parameters which work in an on/off fashion take a different syntax along the lines of:  

set key###|#Elephants Set option ON#\\
set nokey#|#Elephants Set option OFF

  More details of the effects of each individual parameter can be found in the subsections below, which forms a complete list of the recognised setting keywords. The reader should also see the show command, which can be used to display the current values of settings, and the unset command, which returns settings to their default values. Chapter 19 of the Users' Guide describes how commonly used settings can be saved into a configuration file. 
   <arrow>

set#arrow#\labarrow#number\rab\\##from#[#\labsystem\rab#]#\labx\rab,#[#\labsystem\rab#]#\laby\rab,#[#[#\labsystem\rab#]#\labz\rab#]\\##to###[#\labsystem\rab#]#\labx\rab,#[#\labsystem\rab#]#\laby\rab,#[#[#\labsystem\rab#]#\labz\rab#]\\##[#with#{#\laboption\rab#}#]\\

where \labsystem\rab may take any of the values ( first | second | screen | graph | axis\labnumber\rab )  The set arrow command is used to add arrows to graphs. The example 

set#arrow#1#from#0,0#to#1,1\\

would draw an arrow between the points (0,0) and (1,1), as measured along the x and y-axes. The tag 1 immediately following the keyword arrow is an identification number and allows arrows to be subsequently removed using the unset arrow command. By default, the coordinates are specified relative to the first horizontal and vertical axes, but they can alternatively be specified any one of several of coordinate systems. The coordinate system to be used is specified as in the example: 

set#arrow#1#from#first#0,#second#0#to#axis3#1,#axis4#1\\

The name of the coordinate system to be used precedes the position value in that system. The coordinate system first, the default, measures the graph using the x- and y-axes. second uses the x2- and y2-axes. screen and graph both measure in centimeters from the origin of the graph. The syntax axis\labn\rab may also be used, to use the nth horizontal or vertical axis; for example, axis3 above. The set arrow command can be followed by the keyword with to specify the style of the arrow. For example, the specifiers nohead, head and twohead, when placed after the keyword with, can be used to make arrows with no arrow heads, normal arrow heads, or two arrow heads. twoway is an alias for twohead. All of the line type modifiers accepted by the plot command can also be used here, as in the example: 

set#arrow#2#from#first#0,#second#2.5#to#axis3#0,\\#############axis4#2.5#with#color#blue#nohead\\

   </arrow>
   <autoscale>

set#autoscale#{#\labaxis\rab#}\\

The set autoscale command causes Pyxplot to choose the scaling for an axis automatically based on the data and/or functions to be plotted against it. The example 

set#autoscale#x1\\

would cause the range of the first horizontal axis to be scaled to fit the data. Multiple axes can be specified, as in the example 

set#autoscale#x1y3\\

Note that ranges explicitly specified in a plot command will override the set autoscale command. 

   </autoscale>
   <axescolor>

set#axescolor#\labcolor\rab\\

The setting axescolor changes the color used to draw graph axes. The example 

set#axescolor#blue\\

would specify that graph axes should be drawn in blue. Any of the recognised color names listed in Section 19.4 of the Users' Guide can be used, or a numbered color from the present palette, or an object of type color. 

   </axescolor>
   <axis>

set#axis#\labaxis\rab#[#(#visible#|#invisible#)#]\\##[#(#top#|#bottom#|#left#|#right#|#front#|#back#)#]\\##[#(#atzero#|#notatzero#)#]\\##[#(#automirrored#|#mirrored#|#fullmirrored#)#]\\##[#(#noarrow#|#arrow#|#reversearrow#|#twowayarrow#)#]\\##[#linked#[#item#\labnumber\rab#]#\labaxis\rab#[#using#\labexpression\rab#]#]\\

The set axis command is used to add additional axes to plots and to configure their appearance. Where an axis is stated on its own, as in the example 

set#axis#x2\\

 additional horizontal or vertical axes are added with default settings. The converse statements 

set#noaxis#x2\\unset#axis#x2\\

 are used, respectively, to remove axes from plots and to return them to their default configurations, which often has the same effect of removing them from the graph, unless they are configured otherwise in a configuration file. The position of any axis can be explicitly set using syntax of the form: 

set#axis#x#top\\set#axis#y#right\\set#axis#z#back\\

 Horizontal axes can be set to appear either at the top or bottom; vertical axes can be set to appear either at the left or right; and z-axes can be set to appear either at the front or back. By default, the x1-axis is placed along the bottom of graphs and the y1-axis is placed up the left-hand side of graphs. On three-dimensional plots, the z1-axis is placed at the front of the graph. The second set of axes are placed opposite to the first: the x2-, y2- and z2-axes are placed respectively along the top, right and back sides of graphs. Higher-numbered axes are placed alongside the x1-, y1- and z1-axes. The following keywords may also be placed alongside the positional keywords listed above to specify how the axis should appear: 

* arrow - Specifies that an arrowhead should be drawn on the right/top end of the axis. [Not default].  \\
* atzero - Specifies that rather than being placed along an edge of the plot, the axis should mark the lines where the perpendicular axes x1, y1 and/or z1 are zero. [Not default].  \\
* automirrored - Specifies that an automatic decision should be made between the behaviour of mirrored and nomirrored. If there are no axes on the opposite side of the graph, a mirror axis is produced. If there are already axes on the opposite side of the graph, no mirror axis is produced. [Default].  \\
* fullmirrored - Similar to mirrored. Specifies that this axis should have a corresponding twin placed on the opposite side of the graph with mirroring ticks and labelling. [Not default; see automirrored].  \\
* invisible - Specifies that the axis should not be drawn; data can still be plotted against it, but the axis is unseen. See Example 24 of the Users' Guide for a plot where all of the axes are invisible.  \\
* linked - Specifies that the axis should be linked to another axis; see Section 8.8.9 of the Users' Guide.  \\
* mirrored - Specifies that this axis should have a corresponding twin placed on the opposite side of the graph with mirroring ticks but with no labels on the ticks. [Not default; see automirrored].  \\
* noarrow - Specifies that no arrowheads should be drawn on the ends of the axis. [Default].  \\
* nomirrored - Specifies that this axis should not have any corresponding twins. [Not default; see automirrored].  \\
* notatzero - Opposite of atzero; the axis should be placed along an edge of the plot. [Default].  \\
* notlinked - Specifies that the axis should no longer be linked to any other; see Section 8.8.9 of the Users' Guide. [Default].  \\
* reversearrow - Specifies that an arrowhead should be drawn on the left/bottom end of the axis. [Not default].  \\
* twowayarrow - Specifies that arrowheads should be drawn on both ends of the axis. [Not default].  \\
* visible - Specifies that the axis should be displayed; opposite of invisible. [Default].  \\

   </axis>
   <axisunitstyle>

set#axisunitstyle#(#bracketed#|#squarebracketed#|#ratio#)\\

The setting axisunitstyle controls the style with which the units of plotted quantities are indicated on the axes of plots. The bracketed option causes the units to be placed in parentheses following the axis labels, whilst the squarebracketed option using square brackets instead. The ratio option causes the units to follow the label as a divisor so as to leave the quantity dimensionless. 

   </axisunitstyle>
   <backup>

set#backup\\

The setting backup changes Pyxplot's behaviour when it detects that a file which it is about to write is going to overwrite an existing file. Whereas by default the existing file would be overwritten by the new one, when the setting backup is turned on, it is renamed, placing a tilde at the end of its filename. For example, suppose that a plot were to be written with filename out.ps, but such a file already existed. With the backup setting turned on the existing file would be renamed out.ps~ to save it from being overwritten. The setting is turned off using the set nobackup command. 

   </backup>
   <bar>

set#bar#(#large#|#small#|#\labvalue\rab#)\\

The setting bar changes the size of the bar drawn on the end of the error bars, relative to the current point size. For example: 

set#bar#2\\

sets the bars to be twice the size of the points. The options large and small are equivalent to1 (the default) and0 (no bar) respectively. 

   </bar>
   <binorigin>

set#binorigin#\labvalue\rab\\

The setting binorigin affects the behaviour of the histogram command by adjusting where it places the boundaries between the bins into which it places data. The histogram command selects a system of bins which, if extended to infinity in both directions, would put a bin boundary at the value specified in the set binorigin command. Thus, if a value of 0.1 were specified to the set binorigin command, and a bin width of20 were chosen by the histogram command, bin boundaries might lie at20.1, 40.1, 60.1, and so on. The specified value may have any physical units, but must be real and finite. 

   </binorigin>
   <binwidth>

set#binwidth#\labvalue\rab\\

The setting binwidth changes the width of the bins used by the histogram command. The specified width may have any physical units, but must be real and finite. 

   </binwidth>
   <boxfrom>

set#boxfrom#\labvalue\rab\\

The setting boxfrom alters the vertical line from which bars are drawn when Pyxplot draws bar charts. By default, bars all originate from the line y=0, but the example 

set#boxfrom#2\\

would make the bars originate from the line y=2. The specified vertical abscissa value may have any physical units, but must be real and finite. 

   </boxfrom>
   <boxwidth>

set#boxwidth#\labwidth\rab\\

The setting boxwidth alters Pyxplot's behaviour when plotting bar charts. It sets the default width of the boxes used, in ordinate axis units. If the specified width is negative then, as happens by default, the boxes have automatically selected widths, such that the interfaces between them occur at the horizontal midpoints between their specified positions. For example: 

set#boxwidth#2\\

would set all boxes to be two units wide, and 

set#boxwidth#-2\\

would set all of the bars to have differing widths, centered upon their specified horizontal positions, such that their interfaces occur at the horizontal midpoints between them. The specified width may have any physical units, but must be real and finite. 

   </boxwidth>
   <c1format>

set#c1format#(#auto#|#\labformat\rab#)\\######(#horizontal#|#vertical#|#rotate#\labangle\rab#)\\

The c1format setting is used to manually specify an explicit format for the axis labels to take along the color scale bars drawn alongside plots which make use of the colormap plot style. It has similar syntax to the set xformat command. 

   </c1format>
   <c1label>

set#c1label#\labtext\rab#[#rotate#\labangle\rab#]\\

The setting c1label sets the label which should be written alongside the color scale bars drawn next to plots when the colormap plot style is used. An optional rotation angle may be specified to rotate axis labels clockwise by arbitrary angles. The angle should be specified either as a dimensionless number of degrees, or as a quantity with physical dimensions of angle. 

   </c1label>
   <calendar>

set#calendar#[#(#input#|#output#)#]#\labcalendar\rab\\

The set calendar command sets the calendar that Pyxplot uses to convert dates between calendar dates and Julian Day numbers. Pyxplot uses two separate calendars which may be different: an input calendar for processing dates that the user inputs as calendar dates, and an output calendar that controls how dates are displayed or written on plots. The available calendars are British, French, Greek, Gregorian, Hebrew, Islamic, Jewish, Julian, Muslim, Papal and Russian, where Jewish is an alias for Hebrew and Muslim is an alias for Islamic. 

   </calendar>
   <clip>

set#clip\\

The set clip command causes Pyxplot to clip points which extend over the edge of plots. The opposite effect is achieved using the set noclip command. 

   </clip>
   <colorkey>

set#colorkey#[#\labposition\rab#]\\

The setting colorkey determines whether color scales are drawn along the edges of plots drawn using the colormap plot style, indicating the mapping between represented values and colors. Note that such scales are only ever drawn when the colormap plot style is supplied with only three columns of data, since the color mappings are themselves multi-dimensional when more columns are supplied. Issuing the command 

set#colorkey\\

by itself causes such a scale to be drawn on graphs in the default position, usually along the right-hand edge of the graphs. The converse action is achieved by: 

set#nocolorkey\\

The command 

unset#colorkey\\

causes Pyxplot to revert to its default behaviour, as specified in a configuration file, if present. A position for the key may optionally be specified after the set colorkey command, as in the example: 

set#colorkey#bottom\\

Recognised positions are top, bottom, left and right. above is an alias for top; below is an alias for bottom and outside is an alias for right. 

   </colorkey>
   <colormap>

set#colormap#\labcolor#expression\rab#[#mask#\labexpr\rab#]\\

The setting colormap is used to specify the mapping between ordinate values and colors used by the colormap plot style. Within the color expression, the variables c1, c2, c3 and c4 refer quantities calculated from the third through sixth columns of data supplied to the colormap plot style in a way determined by the c\labn\rabrange setting. Thus, the following color mapping, which is the default, produces a greyscale color mapping of the third column of data supplied to the colormap plot style; further columns of data, if supplied, are not used: 

set#c1range#[*:*]#renormalise\\set#colormap#rgb(c1,c1,c1)\\

If a mask expression is supplied, then any areas in a color map where this expression evaluates to false (or zero) are made transparent. 

   </colormap>
   <contours>

set#contours#[#(#\labnumber\rab#|\\###############"("#{#\labvalue\rab#}#")"#)#]\\#############[#(label#|#nolabel)#]\\

The setting contours is used to define the set of ordinate values for which contours are drawn when using the contourmap plot style. If \labnumber\rab is specified, the contours are evenly spaced - either linearly or logarithmically, depending upon the state of the logscale c1 setting - between the values specified in the c1range setting. Otherwise, the list of ordinate values may be specified as a ()-bracketed comma-separated list. If the option label is specified, then each contour is labelled with the ordinate value that it follows. If the option nolabel is specified, then the contours are not labelled. 

   </contours>
   <c1range>

set#c\labn\rabrange#[#\labrange\rab#]\\##############[#reversed#|#noreversed#]\\##############[#renormalise#|#norenormalise#]\\

The set c\labn\rabrange command changes the range of ordinate values represented by different colors in the colormap plot style, and in the case of the set c1range command, also by contours in the contourmap plot style. The value \labn\rab should be an integer in the range 1-4. 
    <Contour_Maps>

The effect of the set c1range command upon the set of ordinate values for which contours are drawn in the contourmap plot style is dependent upon whether the set contours command has been supplied with a number of contours to draw, or a list of explicit ordinate values for which they should be drawn. In the latter case, the set c1range command has no effect. In the former case, the contours are evenly spaced, either linearly or logarithmically depending upon the state of the logscale c1 setting, between the minimum and maximum ordinate values supplied to the set c1range command. If an asterisk (*) is supplied in place of either the minimum and/or the maximum, then the range of values used is automatically scaled to fit the range of the data supplied. 

    </Contour_Maps>
    <Color_Maps>

The color of each pixel in a color map is determined by the colormap setting. This should contain an expression that evaluates to a color object, e.g. rgb(c1,c2,c3), and which may take the variables c1, c2, c3 and c4 as parameters. The colormap plot style should be supplied with between three and six columns of data, the first two of which contain the x- and y-positions of points, and the remainder of which are used to set the values of the variables c1, c2, c3 and c4 when calculating the color with which that point should be represented. If fewer than six columns of data are supplied, then not all of these variables will be set. The set c\labn\rabrange command is used to determine how the raw data values are mapped to the values of the variables c1-c4. If the norenormalise option is specified, then the raw values are passed directly to the expression. Otherwise, they are first scaled into the range zero to one. If an explicit range is specified to the set c\labn\rabrange command, then the upper limit of this range maps to the value one, and the lower limit maps to the value zero. This mapping is inverted if the reverse option is specified, such that the upper limit maps to zero, and the lower limit maps to one. If an asterisk (*) is supplied in place of either the upper and/or lower limit, then the range automatically scales to fit the data supplied. Intermediate values are scaled, either linearly or logarithmically, depending upon the state of the logscale c\labn\rab setting. For more details of the syntax of the range specifier, see the set xrange command. 

    </Color_Maps>

   </c1range>
   <data_style>

See set style data. 

   </data_style>
   <display>

set#[no]display\\

By default, whenever an item is added to a multiplot canvas, or an existing item is moved or replotted, the whole multiplot is redrawn to reflect the change. This can be a time-consuming process when constructing large and complex multiplot canvases, as fresh output is produced at each step. For this reason, the set nodisplay command is provided, which stops Pyxplot from producing any graphical output. The set display command can subsequently be issued to return to normal behaviour. Scripts which produces large and complex multiplot canvases are typically wrapped as follows: 

set#nodisplay\\...\\set#display\\refresh\\

   </display>
   <filter>

set#filter#\labfilename#wildcard\rab#\labfilter#command\rab\\

The set filter command allows input filter programs to be specified to allow Pyxplot to deal with file types that are not in the plaintext format which it ordinarily expects. Firstly the pattern used to recognise the filenames of the data files to which the filter should apply to must be specified; the standard wildcard characters * and ? may be used. Then a filter program should be specified, along with any necessary command-line switches which should be passed to it. This program should take the name of the file to be filtered as the final option on its command line, immediately following any command-line switches specified above. It should output a suitable Pyxplot data fileon its standard output stream for Pyxplot to read. For example, to filter all files that end in .foo through the a program called defoo using the -text option one would type: 

set#filter#"*.foo"#"/usr/local/bin/defoo#--text"\\

   </filter>
   <fontsize>

set#fontsize#\labvalue\rab\\

The setting fontsize changes the size of the font used to render all text labels which appear on graphs and multiplot canvases, including keys, axis labels, text labels produced using the text command, and so forth. The value specified should be a multiplicative factor greater than zero; a value of2 would cause text to be rendered at twice its normal size, and a value of0.5 would cause text to be rendered at half its normal size. The default value is one. As an alternative, font sizes can be specified with coarser granulation directly in the LaTeX text of labels, as in the example: 

set#xlabel#'\Large#This#is#a#BIG#label'\\

   </fontsize>
   <function_style>

See set style function. 

   </function_style>
   <grid>

set#[no]grid#{#\labaxis\rab#}\\

The setting grid controls whether a grid is placed behind graphs or not. Issuing the command 

set#grid\\

would cause a grid to be drawn with its lines connecting to the ticks of the default axes (usually the first horizontal and vertical axes). Conversely, issuing the command 

set#nogrid\\

would remove from the plot all gridlines associated with the ticks of any axes. One or more axes can be specified for the set grid command to draw gridlines from; in such cases, gridlines are then drawn only to connect with the ticks of the specified axes, as in the example 

set#grid#x1#y3\\

It is possible, though not always aesthetically pleasing, to draw gridlines from multiple parallel axes, as in example: 

set#grid#x1x2x3\\

   </grid>
   <gridmajcolor>

set#gridmajcolor#\labcolor\rab\\

The setting gridmajcolor changes the color that is used to draw the gridlines (see the set grid command) which are associated with the major ticks of axes (i.e. major gridlines). For example: 

set#gridmajcolor#purple\\

would cause the major gridlines to be drawn in purple. Any of the recognised color names listed in Section 19.4 of the Users' Guide can be used, or a numbered color from the present palette, or an object of type color. See also the set gridmincolor command. 

   </gridmajcolor>
   <gridmincolor>

set#gridmincolor#\labcolor\rab\\

The setting gridmincolor changes the color that is used to draw the gridlines (see the set grid command) which are associated with the minor ticks of axes (i.e. minor gridlines). For example: 

set#gridmincolor#purple\\

would cause the minor gridlines to be drawn in purple. Any of the recognised color names listed in Section 19.4 of the Users' Guide can be used, or a numbered color from the present palette, or an object of type color. See also the set gridmajcolor command. 

   </gridmincolor>
   <key>

set#key#\labposition\rab#[#\labvector\rab#]\\

The setting key determines whether legends are drawn on graphs, and if so, where they should be located on the plots. Issuing the command 

set#key\\

by itself causes legends to be drawn on graphs in the default position, usually in the upper-right corner of the graphs. The converse action is achieved by: 

set#nokey\\

The command 

unset#key\\

causes Pyxplot to revert to its default behaviour, as specified in a configuration file, if present. A position for the key may optionally be specified after the set key command, as in the example: 

set#key#bottom#left\\

Recognised positions are top, bottom, left, right, below, above, outside, xcenter and ycenter. In addition, if none of these options quite achieve the desired position, a horizontal and vertical offset may be specified as a comma-separated pair after any of the positional keywords above. The first value is assumed to be the horizontal offset, and the second the vertical offset, both measured in centimeters. The example 

set#key#bottom#left#0.0,#-0.5\\

would display a key below the bottom left corner of the graph. 

   </key>
   <keycolumns>

set#keycolumns#(#\labvalue\rab#|#auto#)\\

The setting keycolumns sets how many columns the legend of a plot should be arranged into. By default, the legends of plots are arranged into an automatically-selected number of columns, equivalent to the behaviour achieved by issuing the command set keycolumns auto. However, if a different arrangement is desired, the set keycolumns command can be followed by any positive integer to specify that the legend should be split into that number of columns, as in the example: 

set#keycolumns#3\\

   </keycolumns>
   <label>

set#label#\lablabel#number\rab#\labtext\rab\\##[#\labsystem\rab#]#\labx\rab,#[#\labsystem\rab#]#\laby\rab,#[#[#\labsystem\rab#]#\labz\rab#]\\##[#rotate#\labangle\rab#]\\##[#with#{#(#color#\labcolor\rab#|#fontsize#\labsize\rab#)#}#]\\

where \labsystem\rab may take any of the values ( first | second | screen | graph | axis\labnumber\rab )  The set label command is used to place text labels on graphs. The example 

set#label#1#'Hello'#0,#0\\

would place a label reading `Hello' at the point (0,0) on a graph, as measured along the x- and y-axes. The tag 1 immediately following the keyword label is an identification number and allows the label to be subsequently removed using the unset label command. By default, the positional coordinates of the label are specified relative to the first horizontal and vertical axes, but they can alternatively be specified in any one of several coordinate systems. The coordinate system to be used is specified as in the example: 

set#label#1#'Hello'#first#0,#second#0\\

The name of the coordinate system to be used precedes the position value in that system. The coordinate system first, the default, measures the graph using the x- and y-axes. second uses the x2- and y2-axes. screen and graph both measure in centimeters from the origin of the graph. The syntax axis\labn\rab may also be used, to use the n th horizontal or vertical axis; for example, axis3: 

set#label#1#'Hello'#axis3#1,#axis4#1\\

A rotation angle may optionally be specified after the keyword rotate to produce text rotated to any arbitrary angle, measured in degrees counter-clockwise. The following example would produce upward-running text: 

set#label#1#'Hello'#1.2,#2.5#rotate#90\\

By default the labels are black; however, an arbitrary color may be specified using the with color modifier. For example, 

set#label#3#'A#purple#label'#0,#0#with#color#purple\\

would place a purple label at the origin. 

   </label>
   <linewidth>

set#linewidth#\labvalue\rab\\

The set linewidth command sets the default line width of the lines used to plot datasets onto graphs using plot styles such as lines, errorbars, etc. The value supplied should be a multiplicative factor relative to the default line width; a value of1.0 would result in lines being drawn with their default thickness. For example, in the following statement, lines of three times the default thickness are drawn: 

set#linewidth#3\\plot#sin(x)#with#lines\\

The set linewidth command only affects plot statements where no line width is manually specified. 

   </linewidth>
   <logscale>

set#logscale#{#\labaxis\rab#}#[#\labbase\rab#]\\

The setting logscale causes an axis to be laid out with logarithmically, rather than linearly, spaced intervals. For example, issuing the command: 

set#log\\

would cause all of the axes of a plot to be scaled logarithmically. Alternatively, only one, or a selection of axes, can be set to scale logarithmically as follows: 

set#log#x1#y2\\

This would cause the first horizontal and second vertical axes to be scaled logarithmically. Linear scaling can be restored to all axes using the command 

set#nolog\\

meanwhile the command 

unset#log\\

restores axes to their default scaling, as specified in any configuration file which may be present. Both of these commands can also be applied to only one or a selection of axes, as in the examples 

set#nolog#x1#y2\\

and 

unset#log#x1y2\\

Optionally, a base may be specified at the end of the set logscale command, to produce axes labelled in logarithms of arbitrary bases. The default base is10. In addition to acting upon any combination of x-, y- and z-axes, the set logscale command may also be requested to set the c1, c2, c3, c4, t, u and/or v axes to scale logarithmically. The first four of these options affect whether the colors on color maps scale linearly or logarithmically with input ordinate values; see the set c\labn\rabrange command for more details. The final three of these options specifies whether parametric functions are sampled linearly or logarithmically in the variables t (one-dimensional), or u and v (two-dimensional); see the set trange, set urange and set vrange commands for more details. 

   </logscale>
   <multiplot>

set#multiplot\\

Issuing the command 

set#multiplot\\

causes Pyxplot to enter multiplot mode, which allows many graphs to be plotted together and displayed side-by-side. See Section 10.2 of the Users' Guide for a full discussion of multiplot mode. 

   </multiplot>
   <mxtics>

See set xtics. 

   </mxtics>
   <mytics>

See set xtics. 

   </mytics>
   <mztics>

See set ztics. 

   </mztics>
   <noarrow>

set#noarrow#[#{#\labarrow#number\rab#}#]\\

Issuing the command 

set#noarrow\\

removes all arrows configured with the set arrow command. Alternatively, individual arrows can be removed using commands of the form 

set#noarrow#2\\

where the tag 2 is the identification number given to the arrow to be removed when it was initially specified with the set arrow command. 

   </noarrow>
   <noaxis>

set#noaxis#[#{#\labaxis\rab#}#]\\

The set noaxis command is used to remove axes from graphs; it achieves the opposite effect from the set axis command. It should be followed by a comma-separated lists of the axes which are to be removed from the current axis configuration. 

   </noaxis>
   <nobackup>

See backup. 

   </nobackup>
   <noclip>

See clip. 

   </noclip>
   <nocolorkey>

set#nocolorkey\\

Issuing the command set nocolorkey causes plots to be generated with no color scale when the colormap plot style is used. See the set colorkey command for more details. 

   </nocolorkey>
   <nodisplay>

See display. 

   </nodisplay>
   <nogrid>

set#nogrid#{#\labaxis\rab#}\\

Issuing the command set nogrid removes gridlines from the current plot. On its own, the command removes all gridlines from the plot, but alternatively, those gridlines connected to the ticks of certain axes can be selectively removed. The following example would remove gridlines associated with the first horizontal axis and the second vertical axis: 

set#nogrid#x1#y2\\

   </nogrid>
   <nokey>

set#nokey\\

Issuing the command set nokey causes plots to be generated with no legend. See the set key command for more details. 

   </nokey>
   <nolabel>

set#nolabel#{#\lablabel#number\rab#}\\

Issuing the command 

set#nolabel\\

removes all text labels configured using the set label command. Alternatively, individual labels can be removed using the syntax: 

set#nolabel#2\\

where the tag 2 is the identification number given to the label to be removed when it was initially set using the set label command. 

   </nolabel>
   <nologscale>

set#nologscale#{#\labaxis\rab#}\\

The setting nologscale causes an axis to be laid out with linearly, rather than logarithmically, spaced intervals; it is equivalent to the setting linearscale. It is the converse of the setting logscale. For example, issuing the command 

set#nolog\\

would cause all of the axes of a plot to be scaled linearly. Alternatively only one, or a selection of axes, can be set to scale linearly as follows: 

set#nologscale#x1#y2\\

This would cause the first horizontal and second vertical axes to be scaled linearly. 

   </nologscale>
   <nomultiplot>

set#nomultiplot\\

The set nomultiplot command causes Pyxplot to leave multiplot mode; outside of multiplot mode, only single graphs and vector graphics objects are displayed at any one time, whereas in multiplot mode, galleries of plots and vector graphics can be placed alongside one another. See Section 10.2 of the Users' Guide for a full discussion of multiplot mode. 

   </nomultiplot>
   <nostyle>

set#nostyle#\labstyle#number\rab\\

The setting nostyle deletes a numbered plot style set using the set style command. For example, the command 

set#nostyle#3\\

would delete the third numbered plot style, if defined. See the command set style for more details. 

   </nostyle>
   <notitle>

set#notitle\\

Issuing the command set notitle will cause graphs to be produced with no title at the top. 

   </notitle>
   <noxtics>

set#no\labaxis\rabtics\\

This command causes graphs to be produced with no major tick marks along the specified axis. For example, the set noxtics command removes all major tick marks from the x-axis. 

   </noxtics>
   <noytics>

Similar to the set noxtics command, but acts on vertical axes. 

   </noytics>
   <noztics>

Similar to the set noxtics command, but acts on z-axes. 

   </noztics>
   <numerics>

set#numerics#[#(#complex#|#real#)#]#[#errors#(#explicit#|#quiet)#]\\####[#display#(#latex#|#natural#|#typeable)#]\\####[#sigfig#\labprecision\rab#]\\

The set numerics command is used to adjust the way in which calculations are carried out and numerical quantities are displayed: 

* The option complex causes Pyxplot to switch from performing real arithmetic (default) to performing complex arithmetic. The option real causes any calculations which return results with finite imaginary components to generate errors.  \\
* The option errors controls how numerical errors such as divisions by zero, numerical overflows, and the querying functions outside of the domains in which they are defined, are communicated to the user. The option explicit (default) causes an error message to be displayed on the terminal whenever a calculation causes an error. The option quiet causes such calculations to silently generate a nan (not a number) result. The latter is especially useful when, for example, plotting an expression with the ordinate axis range set to extend outside the domain in which that expression returns a well-defined real result; it suppresses the error messages which might otherwise result from Pyxplot's attempts to evaluate the expression in those domains where its result is undefined. The option nan is a synonym for quiet.  \\
* The setting display changes the format in which numbers are displayed on the terminal. Setting the option to typeable causes the numbers to be printed in a form suitable for pasting back into Pyxplot commands. The setting latex causes LaTeX-compatible output to be generated. The setting natural generates concise, human-readable output which has neither of the above properties.  \\
* The setting sigfig changes the number of significant figures to which numbers are displayed on the Pyxplot terminal. Regardless of the value set, all calculations are internally carried out and stored at double precision, accurate to around16 significant figures.  \\

   </numerics>
   <origin>

set#origin#\labvector\rab\\

The set origin command is used to set the location of the bottom-left corner of the next graph to be placed on a multiplot canvas. For example, the command 

set#origin#3,5\\

would cause the next graph to be plotted with its bottom-left corner at position (3,5) centimeters on the multiplot canvas. Alternatively, either of the coordinates may be specified as quantities with physical units of length, such as unit(35*mm). The set origin command is of little use outside of multiplot mode. 

   </origin>
   <output>

set#output#\labfilename\rab\\

The setting output controls the name of the file that is produced for non-interactive terminals (postscript, eps, jpeg, gif and png). For example, 

set#output#'myplot.eps'\\

causes the output to be written to the file myplot.eps. 

   </output>
   <palette>

set#palette#{#\labcolor\rab#}\\

Pyxplot has a palette of colors which it assigns sequentially to datasets when colors are not manually assigned. This is also the palette to which reference is made if the user issues a command such as 

plot#sin(x)#with#color#5\\

requesting the fifth color from the palette. By default, this palette contains a range of distinctive colors. However, the user can choose to substitute his own list of colors using the set palette command. It should be followed by a comma-separated list of color names, for example: 

set#palette#red,green,blue\\

If, after issuing this command, the following plot statement were to be executed: 

plot#sin(x),#cos(x),#tan(x),#exp(x)\\

the first function would be plotted in red, the second in green, and the third in blue. Upon reaching the fourth, the palette would cycle back to red. Any of the recognised color names listed in Section 19.4 of the Users' Guide can be used, or a numbered color from the present palette, or an object of type color. 

   </palette>
   <papersize>

set#papersize#(#\labnamed#size\rab#|#\labheight\rab,\labwidth\rab#)\\

The setting papersize changes the size of output produced by the postscript terminal, and whenever the enlarge terminal option is set (see the set terminal command). This can take the form of either a recognised paper size name, or as a (height, width) pair of values, both measured in millimeters. The following examples demonstrate these possibilities: 

set#papersize#a4\\set#papersize#letter\\set#papersize#200,100\\

The following named papersizes are recognised:

|###########################2a0###1681###1189
|###########################4a0###2378###1681
|############################a0###1189####840
|############################a1####840####594
|###########################a10#####37#####26
|############################a2####594####420
|############################a3####420####297
|############################a4####297####210
|############################a5####210####148
|############################a6####148####105
|############################a7####105#####74
|############################a8#####74#####52
|############################a9#####52#####37
|############################b0###1414####999
|############################b1####999####707
|###########################b10#####44#####31
|############################b2####707####499
|############################b3####499####353
|############################b4####353####249
|############################b5####249####176
|############################b6####176####124
|############################b7####124#####88
|############################b8#####88#####62
|############################b9#####62#####44
|############################c0###1296####917
|############################c1####917####648
|###########################c10#####40#####28
|############################c2####648####458
|############################c3####458####324
|############################c4####324####229
|############################c5####229####162
|############################c6####162####114
|############################c7####114#####81
|############################c8#####81#####57
|############################c9#####57#####40
|#########################crown####508####381
|##########################demy####572####445
|###################double_demy####889####597
|######################elephant####711####584
|###################envelope_dl####110####220
|#####################executive####267####184
|######################foolscap####330####203
|#############government_letter####267####203
|####international_businesscard#####85#####53
|###################japanese_b0###1435###1015
|###################japanese_b1###1015####717
|##################japanese_b10#####44#####31
|###################japanese_b2####717####507
|###################japanese_b3####507####358
|###################japanese_b4####358####253
|###################japanese_b5####253####179
|###################japanese_b6####179####126
|###################japanese_b7####126#####89
|###################japanese_b8#####89#####63
|###################japanese_b9#####63#####44
|################japanese_kiku4####306####227
|################japanese_kiku5####227####151
|#############japanese_shiroku4####379####264
|#############japanese_shiroku5####262####189
|#############japanese_shiroku6####188####127
|####################large_post####533####419
|########################ledger####432####279
|#########################legal####356####216
|########################letter####279####216
|########################medium####584####457
|#######################monarch####267####184
|##########################post####489####394
|#####################quad_demy###1143####889
|########################quarto####254####203
|#########################royal####635####508
|#####################statement####216####140
|####################swedish_d0###1542###1090
|####################swedish_d1###1090####771
|###################swedish_d10#####48#####34
|####################swedish_d2####771####545
|####################swedish_d3####545####385
|####################swedish_d4####385####272
|####################swedish_d5####272####192
|####################swedish_d6####192####136
|####################swedish_d7####136#####96
|####################swedish_d8#####96#####68
|####################swedish_d9#####68#####48
|####################swedish_e0###1241####878
|####################swedish_e1####878####620
|###################swedish_e10#####38#####27
|####################swedish_e2####620####439
|####################swedish_e3####439####310
|####################swedish_e4####310####219
|####################swedish_e5####219####155
|####################swedish_e6####155####109
|####################swedish_e7####109#####77
|####################swedish_e8#####77#####54
|####################swedish_e9#####54#####38
|####################swedish_f0###1476###1044
|####################swedish_f1###1044####738
|###################swedish_f10#####46#####32
|####################swedish_f2####738####522
|####################swedish_f3####522####369
|####################swedish_f4####369####261
|####################swedish_f5####261####184
|####################swedish_f6####184####130
|####################swedish_f7####130#####92
|####################swedish_f8#####92#####65
|####################swedish_f9#####65#####46
|####################swedish_g0###1354####957
|####################swedish_g1####957####677
|###################swedish_g10#####42#####29
|####################swedish_g2####677####478
|####################swedish_g3####478####338
|####################swedish_g4####338####239
|####################swedish_g5####239####169
|####################swedish_g6####169####119
|####################swedish_g7####119#####84
|####################swedish_g8#####84#####59
|####################swedish_g9#####59#####42
|####################swedish_h0###1610###1138
|####################swedish_h1###1138####805
|###################swedish_h10#####50#####35
|####################swedish_h2####805####569
|####################swedish_h3####569####402
|####################swedish_h4####402####284
|####################swedish_h5####284####201
|####################swedish_h6####201####142
|####################swedish_h7####142####100
|####################swedish_h8####100#####71
|####################swedish_h9#####71#####50
|#######################tabloid####432####279
|###############us_businesscard#####89#####51

   </papersize>
   <pointlinewidth>

set#pointlinewidth#\labvalue\rab\\

The setting pointlinewidth changes the width of the lines that are used to plot data points. For example, 

set#pointlinewidth#20\\

would cause points to be plotted with lines20 times the default thickness. The setting pointlinewidth can be abbreviated as plw. 

   </pointlinewidth>
   <pointsize>

set#pointsize#\labvalue\rab\\

The setting pointsize changes the size at which points are drawn, relative to their default size. It should be followed by a single value which can be any positive multiplicative factor. For example, 

set#pointsize#1.5\\

would cause points to be drawn at1.5 times their default size. 

   </pointsize>
   <preamble>

set#preamble#\labtext\rab\\

The setting preamble changes the text of the preamble that is passed to LaTeX prior to the rendering of each text item on the current multiplot canvas. This allows, for example, different packages to be loaded by default and user-defined macros to be set up, as in the examples: 

set#preamble#\usepackage{marvosym}\\set#preamble#\def\degrees{$^\circ$}\\

   </preamble>
   <samples>

set#samples#[\labvalue\rab]\\############[grid#\labx_samples\rab#[x]#\laby_samples\rab]\\############[interpolate#(#inverseSquare#|\\###########################monaghanLattanzio#|\\###########################nearestNeighbor#)#]\\

The setting samples determines the number of values along the ordinate axis at which functions are evaluated when they are plotted. For example, the command 

set#samples#100\\

would cause functions to be evaluated at 100points along the ordinate axis. Increasing this value will cause functions to be plotted more smoothly, but also more slowly, and the PostScript files generated will also be larger. When functions are plotted with the points plot style, this setting controls the number of points plotted. After the keyword grid may be specified the dimensions of the two-dimensional grid of samples used in the colormap and surface plot styles, and internally when calculating the contours to be plotted in the contourmap plot style. If a * is given in place of either of the dimensions, then the same number of samples as are specified in \labvalue\rab are taken. After the keyword interpolate, the method used for interpolating non-gridded two-dimensional data onto the above-mentioned grid may be specified. The available options are InverseSquare, MonaghanLattanzio and NearestNeighbour. 

   </samples>
   <seed>

set#seed#\labvalue\rab\\

The set seed command sets the seed used by all of those mathematical functions which generate random samples from probability distributions. This allows repeatable sequences of pseudo-random numbers to be generated. Upon initialisation, Pyxplot returns the sequence of random numbers obtained after issuing the command set seed0. 

   </seed>
   <size>

set#size#[\labwidth\rab]\\#########[(#ratio#\labratio\rab#|#noratio##|#square)]\\#########[(zratio#\labratio\rab#|#nozratio#)]\\

The setting size is used to set the width or aspect ratio of the next graph to be generated. If a width is specified, then it may either take the form of a dimensionless number implicitly measured in centimeters, or a quantity with physical dimensions of length such as unit(50*mm). When the keyword ratio is specified, it should be followed by the ratio of the graph's height to its width, i.e. of the length of its y-axes to that of its x-axes. The keyword noratio returns the aspect ratio to its default value of the golden ratio, and the keyword square sets the aspect ratio to one. When the keyword zratio is specified, it should be followed by the ratio of the length of three-dimensional graphs' z-axes to that of their x-axes. The keyword nozratio returns this aspect ratio to its default value of the golden ratio. 
    <noratio>

set#size#noratio\\

Executing the command 

set#size#noratio\\

resets Pyxplot to produce plots with its default aspect ratio, which is the golden ratio. Other aspect ratios can be set with the set size ratio command. 

    </noratio>
    <ratio>

set#size#ratio#\labratio\rab\\

This command sets the aspect ratio of plots produced by Pyxplot. The height of resulting plots will equal the plot width, as set by the set width command, multiplied by this aspect ratio. For example, 

set#size#ratio#2.0\\

would cause Pyxplot to produce plots that are twice as high as they are wide. The default aspect ratio which Pyxplot uses is a golden ratio of 2/(1+sqrt5). 

    </ratio>
    <square>

set#size#square\\

This command sets Pyxplot to produce square plots, i.e. with unit aspect ratio. Other aspect ratios can be set with the set size ratio command. 

    </square>

   </size>
   <style>

set#style#\labstyle#number\rab#{\labstyle#option\rab}\\

At times, the string of style keywords following the with modifier in plot commands can grow rather unwieldy in its length. For clarity, frequently used plot styles can be stored as numbered plot styles. The syntax for setting a numbered plot style is: 

set#style#2#points#pointtype#3\\

where the 2 is the identification number of the plot style. In a subsequent plot statement, this line style can be recalled as follows: 

plot#sin(x)#with#style#2\\

   </style>
   <style_data_--_style_function>

set#style#{#data#|#function#}#{\labstyle#option\rab}\\

The set style data command affects the default style with which data from files is plotted. Likewise the set style function command changes the default style with which functions are plotted. Any valid style modifier which can follow the keyword with in the plot command can be used. For example, the commands 

set#style#data#points\\set#style#function#lines#linestyle#1\\

would cause data files to be plotted, by default, using points and functions using lines with the first defined line style. 

   </style_data_--_style_function>
   <terminal>

set#terminal#(#X11_singleWindow#|#X11_multiWindow#|#X11_persist#|\\###############bmp#|#eps#|#gif#|#jpeg#|#pdf#|#png#|#postscript#|\\###############svg#|#tiff#)\\#############(#color#|#color#|#monochrome#)\\#############(#dpi#\labvalue\rab#)\\#############(#portrait#|#landscape#)\\#############(#invert#|#noinvert#)\\#############(#transparent#|#solid#)\\#############(#antialias#|#noantialias#)\\#############(#enlarge#|#noenlarge#)\\

The set terminal command controls the graphical format in which Pyxplot renders plots and multiplot canvases, for example configuring whether it should output plots to files or display them in a window on the screen. Various options can also be set within many of the graphical formats which Pyxplot supports using this command. The following graphical formats are supported: X11_singleWindow, X11_multiWindow, X11_persist, bmp, eps, gif, jpeg, pdf, png, postscript, svg[*], tiff. To select one of these formats, simply type the name of the desired format after the set terminal command. To obtain more details on each, see the subtopics below. The following settings, which can also be typed following the set terminal command, are used to change the options within some of these graphic formats: color, monochrome, dpi, portrait, landscape, invert, noinvert, transparent, solid, enlarge, noenlarge. Details of each of these can be found below. 
    <antialias>

The antialias terminal option causes plots produced with the bitmap terminals (i.e. bmp, gif, jpeg, png and tiff) to be antialiased; this is the default behaviour. * -- The svg output terminal is experimental and may be unstable. It relies upon the use of the svg output device in Ghostscript, which may not be present on all systems.

    </antialias>
    <bmp>

The bmp terminal renders output as Windows bitmap images. The filename to which output is to be sent should be set using the set output command; the default is pyxplot.bmp. The number of dots per inch used can be changed using the dpi option. The invert option may be used to produce an image with inverted colors. 

    </bmp>
    <color>

The color terminal option causes plots to be produced in color; this is the default behaviour. 

    </color>
    <color>

The color terminal option is the US-English equivalent of color. 

    </color>
    <dpi>

When Pyxplot is set to produce bitmap graphics output, using the bmp, gif, jpg or png terminals, the setting dpi changes the number of dots per inch with which these graphical images are produced. That is to say, it changes the image resolution of the output images. For example, 

set#terminal#dpi#100\\

sets the output to a resolution of100 dots per inch. Higher DPI values yield better quality images, but larger file sizes. 

    </dpi>
    <enlarge>

The enlarge terminal option causes plots and multiplot canvases to be enlarged or shrunk to fit within the margins of the currently selected paper size. It is especially useful when using the postscript terminal, as it allows for the production of immediately-printable output. 

    </enlarge>
    <eps>

Sends output to Encapsulated PostScript (eps) files. The filename to which output should be sent can be set using the set output command; the default is pyxplot.eps. This terminal produces images suitable for including in, for example, LaTeX documents. 

    </eps>
    <gif>

The gif terminal renders output as gif images. The filename to which output should be sent can be set using the set output command; the default is pyxplot.gif. The number of dots per inch used can be changed using the dpi option. Transparent gifs can be produced with the transparent option. The invert option may be used to produce an image with inverted colors. 

    </gif>
    <invert>

The invert terminal option causes the bitmap terminals (i.e. bmp, gif, jpeg, png and tiff) to produce output with inverted colors. 

    </invert>
    <jpeg>

The jpeg terminal renders output as jpeg images. The filename to which output should be sent can be set using the set output command; the default is pyxplot.jpg. The number of dots per inch used can be changed using the dpi option. The invert option may be used to produce an image with inverted colors. 

    </jpeg>
    <landscape>

The landscape terminal option causes Pyxplot's output to be displayed in rotated orientation. This can be useful for fitting graphs onto sheets of paper, but is generally less useful for plotting things on screen. 

    </landscape>
    <monochrome>

The monochrome terminal option causes plots to be rendered in black and white. This changes the default behaviour of the plot command to be optimised for monochrome display, and so, for example, different dash styles are used to differentiate between lines on plots with several datasets. 

    </monochrome>
    <noantialias>

The noantialias terminal option causes plots produced with the bitmap terminals (i.e. bmp, gif, jpeg, png and tiff) not to be antialiased. This can be useful when making plots which will subsequently have regions cut out and made transparent. 

    </noantialias>
    <noenlarge>

The noenlarge terminal option causes the output not to be scaled to fit within the margins of the currently-selected papersize. This is the opposite of enlarge option. 

    </noenlarge>
    <noinvert>

The noinvert terminal option causes the bitmap terminals (i.e. gif, jpeg, png) to produce normal output without inverted colors. This is the opposite of the inverse option. 

    </noinvert>
    <pdf>

The pdf terminal renders output in Adobe's Portable Document Format (PDF). 

    </pdf>
    <png>

The png terminal renders output as png images. The filename to which output should be sent can be set using the set output command; the default is pyxplot.png. The number of dots per inch used can be changed using the dpi option. Transparent pngs can be produced with the transparent option. The invert option may be used to produce an image with inverted colors. 

    </png>
    <portrait>

The portrait terminal option causes Pyxplot's output to be displayed in upright (normal) orientation; it is the converse of the landscape option. 

    </portrait>
    <postscript>

The postscript terminal renders output as PostScript files. The filename to which output should be sent can be set using the set output command; the default is pyxplot.ps. This terminal produces non-encapsulated PostScript suitable for sending directly to a printer; it should not be used for producing images to be embedded in documents, for which the eps terminal should be used. 

    </postscript>
    <solid>

The solid option causes the gif and png terminals to produce output with a non-transparent background, the converse of transparent. 

    </solid>
    <transparent>

The transparent terminal option causes the gif and png terminals to produce output with a transparent background. 

    </transparent>
    <X11_multiWindow>

The X11_multiwindow terminal displays plots on the screen in X11 windows. Each time a new plot is generated it appears in a new window, and the old plots remain visible. As many plots as may be desired can be left on the desktop simultaneously. When Pyxplot exits, however, all of the windows are closed. 

    </X11_multiWindow>
    <X11_persist>

The X11_persist terminal displays plots on the screen in X11 windows. Each time a new plot is generated it appears in a new window, and the old plots remain visible. When Pyxplot is exited the windows remain in place until they are closed manually. 

    </X11_persist>
    <X11_singleWindow>

The X11_singlewindow terminal displays plots on the screen in X11 windows. Each time a new plot is generated it replaces the old one, preventing the desktop from becoming flooded with old plots. This terminal is the default when running interactively. 

    </X11_singleWindow>

   </terminal>
   <textcolor>

set#textcolor#\labcolor\rab\\

The setting textcolor changes the default color of all text displayed on plots or multiplot canvases. For example, 

set#textcolor#red\\

causes all text labels, including the labels on graph axes and legends, etc. to be rendered in red. Any of the recognised color names listed in Section 19.4 of the Users' Guide can be used, or a numbered color from the present palette, or an object of type color. 

   </textcolor>
   <texthalign>

set#texthalign#(#left#|#center#|#right#)\\

The setting texthalign controls how text labels are justified horizontally with respect to their specified positions, acting both upon labels placed on plots using the set label command, and upon text items created using the text command. Three options are available: 

set#texthalign#left\\set#texthalign#center\\set#texthalign#right\\

   </texthalign>
   <textvalign>

set#textvalign#(#bottom#|#center#|#top#)\\

The setting textvalign controls how text labels are justified vertically with respect to their specified positions, acting both upon labels placed on plots using the set label command, and upon text items created using the text command. Three options are available: 

set#textvalign#bottom\\set#textvalign#center\\set#textvalign#top\\

   </textvalign>
   <title>

set#title#\labtitle\rab\\

The setting title can be used to set a title for a plot, to be displayed above it. For example, the command: 

set#title#'foo'\\

would cause a title `foo' to be displayed above a graph. The easiest way to remove a title, having set one, is using the command: 

set#notitle\\

   </title>
   <trange>

set#trange#[#\labrange\rab#]#[reverse]\\

The set trange command changes the range of the free parameter t used when generating parametric plots. For more details of the syntax of the range specifier, see the set xrange command. Note that t is not allowed to autoscale, and so the * character is not permitted in the specified range. 

   </trange>
   <unit>

set#unit#[#angle#(#dimensionless#|#nodimensionless#)#]\\#########[#of#\labdimension\rab#\labunit\rab#]\\#########[#scheme#\labunit#scheme\rab#]\\#########[#preferred#\labunit\rab#]\\#########[#nopreferred#\labunit\rab#]\\#########[#display#(#full#|#abbreviated#|#prefix#|#noprefix#)#]\\

The set unit command controls how quantities with physical units are displayed by Pyxplot. The set unit scheme command provides the most general configuration option, allowing one of several units schemes to be selected, each of which comprises a list of units which are deemed to be members of that particular scheme. For example, in the CGS unit scheme, all lengths are displayed in centimeters, all masses are displayed in grammes, all energies are displayed in ergs, and so forth. In the imperial unit scheme, quantities are displayed in British imperial units - inches, pounds, pints, and so forth - and in the US unit scheme, US customary units are used. The available schemes are: ancient, cgs, imperial, planck, si, and us. To fine-tune the unit used to display quantities with a particular set of physical dimensions, the set unit of form of the command should be used. For example, the following command would cause all lengths to be displayed in inches: 

set#unit#of#length#inch\\

The set unit preferred command offers a slightly more flexible way of achieving the same result. Whereas the set unit of command can only operate on named quantities such as lengths and powers, and cannot act upon compound units such as W/Hz, the set unit preferred command can act upon any unit or combination of units, as in the examples: 

set#unit#preferred#parsec\\set#unit#preferred#W/Hz\\set#unit#preferred#N*m\\

 The latter two examples are particularly useful when working with spectral densities (powers per unit frequency) or torques (forces multiplied by distances). Unfortunately, both of these units are dimensionally equal to energies, and so are displayed by Pyxplot in Joules by default. The above statement overrides such behaviour. Having set a particular unit to be preferred, this can be unset as in the following example: 

set#unit#nopreferred#parsec\\

By default, units are displayed in their abbreviated forms, for example A instead of amperes and W instead of watts. Furthermore, SI prefixes such as milli- and kilo- are applied to SI units where they are appropriate. Both of these behaviours can be turned on or off, in the former case with the commands 

set#unit#display#abbreviated\\set#unit#display#full\\

and in the latter case using the following pair of commands: 

set#unit#display#prefix\\set#unit#display#noprefix\\

   </unit>
   <urange>

set#urange#[#\labrange\rab#]#[reverse]\\

The set urange command changes the range of the free parameter u used when generating parametric plots sampled over grids of (u,v) values. For more details of the syntax of the range specifier, see the set xrange command. Note that u is not allowed to autoscale, and so the * character is not permitted in the specified range. Specifying the set urange command by itself specified that parametric plots should be sampled over two-dimensional grids of (u,v) values, rather than one-dimensional ranges of t values. 

   </urange>
   <view>

set#view#\labtheta\rab,#\labphi\rab\\

The set view command is used to specify the angle from which three-dimensional plots are viewed. It should be followed by two angles, which can either be expressed in degrees, as dimensionless numbers, or as quantities with physical units of angle: 

set#view#60,30\\\\set#unit#angle#nodimensionless\\set#view#unit(0.1*rev),unit(2*rad)\\

 The orientation (0,0) corresponds to having the x-axis horizontal, the z-axis vertical, and the y-axis directed into the page. The first angle supplied to the set view command rotates the plot in the (x,y) plane, and the second angle tips the plot up in the plane containing the z-axis and the normal to the user's two-dimensional display. 

   </view>
   <viewer>

set#viewer#(#auto#|#\labcommand\rab#)\\

The set viewer command is used to select which external PostScript viewing application is used to display Pyxplot output on screen in the X11 terminals. If the option auto is selected, then either ghostview or ggv is used, if installed. Alternatively, any other application such as evince or okular can be selected by name, providing it is installed in within your shell's search path or an absolute path is provided, as in the examples: 

set#viewer#evince\\set#viewer#/usr/bin/okular\\

Additional commandline switches may also be provided after the name of the application to be used, as in the example 

set#viewer#gv#--grayscale\\

   </viewer>
   <vrange>

set#vrange#[#\labrange\rab#]#[reverse]\\

See the set urange command. 

   </vrange>
   <width>

set#width#\labvalue\rab\\

The setting width is used to set the width of the next graph to be generated. The width is specified either as a dimensionless number implicitly measured in centimeters, or as a quantity with physical dimensions of length such as unit(50*mm). 

   </width>
   <xformat>

set#\labaxis\rabformat#(#auto#|#\labformat\rab#)\\######(#horizontal#|#vertical#|#rotate#\labangle\rab#)\\

By default, the major tick marks along axes are labelled with representations of the ordinate values at each point, each accurate to the number of significant figures specified using the set numerics sigfig command. These labels may appear as decimals, such as 3.142, in scientific notion, as in 3 x 10, or, on logarithmic axes where a base has been specified for the logarithms, using syntax such as[*] 

set#log#x1#2\\

 in a format such as 1.5 x 2. The set xformat command - together with its companions such as set yformat - is used to manually specify an explicit format for the axis labels to take, as demonstrated by the following pair of examples: 

set#xformat#"%.2f"%(x)\\set#yformat#"%s$^\prime$"%(y/unit(feet))\\

 The first example specifies that values should be displayed to two decimal places along the x-axis; the second specifies that distances should be displayed in feet along the y-axis. Note that the dummy variable used to represent the represented value is x, y or z depending upon the direction of the axis, but that the dummy variable used in the set x2format command is still x. The following pair of examples both have the equivalent effect of returning the x2-axis to its default system of tick labels: 

set#x2format#auto\\set#x2format#"%s"%(x)\\

The following example specifies that ordinate values should be displayed as multiples of pi: 

set#xformat#"%s$\pi$"%(x/pi)\\plot#[-pi:2*pi]#sin(x)\\

Note that where possible, Pyxplot intelligently changes the positions along axes where it places the ticks to reflect significant points in the chosen labelling system. The extent to which this is possible depends upon the format string supplied. It is generally easier when continuous-varying numerical values are substituted into strings, rather than discretely-varying values or strings. * -- Note that the x axis must be referred to as x1 here to distinguish this statement from set log x2.

   </xformat>
   <xlabel>

set#\labaxis\rablabel#\labtext\rab#[#rotate#\labangle\rab#]\\

The setting xlabel sets the label which should be written along the x-axis. For example, 

set#xlabel#'$x$'\\

sets the label on the x-axis to read `x'. Labels can be placed on higher numbered axes by inserting their number after the `x'; for example, 

set#x10label#'foo'\\

would label the tenth horizontal axis. Similarly, labels can be placed on vertical axes as follows: 

set#ylabel#'$y$'\\set#y2label#'foo'\\

An optional rotation angle may be specified to rotate axis labels clockwise by arbitrary angles. The angle should be specified either as a dimensionless number of degrees, or as a quantity with physical dimensions of angle. 

   </xlabel>
   <xrange>

set#\labaxis\rabrange#\labrange\rab#[reverse]\\

The setting xrange controls the range of values spanned by the x-axes of plots. For function plots, this is also the domain across which the function will be evaluated. For example, 

set#xrange#[0:10]\\

sets the first horizontal axis to run from0 to10. Higher numbered axes may be referred to be inserting their number after the x; the ranges of vertical axes may similarly be set by replacing the x with a y. Hence, 

set#y23range#[-5:5]\\

sets the range of the 23rd vertical axis to run from-5 to5. To request a range to be automatically scaled an asterisk can be used. The following command would set the x-axis to have an upper limit of 10, but does not affect the lower limit; its range remains at its previous setting: 

set#xrange#[:10][*:*]\\

The keyword reverse is used to indicate that the two limits of an axis should be swapped. This is useful for setting auto-scaling axes to be displayed running from right to left, or from top to bottom. 

   </xrange>
   <xtics>

set#[m]\labaxis\rabtics\\####[#(#axis#|#border#|#inward#|#outward#|#both#)#]\\####[#(#autofreq\\##########|#[\labminimum\rab,]#\labincrement\rab#[,#\labmaximum\rab]\\##########|#"("#{#[#\lablabel\rab#]#\labposition\rab#}#")"\\#########]#)\\

By default, Pyxplot places a series of tick marks at significant points along each axis, with the most significant points being labelled. Labelled tick marks are termed major ticks, and unlabelled tick marks are termed minor ticks. The position and appearance of the major ticks along the x-axis can be configured using the set xtics command; the corresponding set mxtics command configures the appearance of the minor ticks along the x-axis. Analogous commands such as set ytics and set mx2tics configure the major and minor ticks along other axes. The keywords inward, outward and both are used to configure how the ticks appear - whether they point inward, towards the plot, as is default, or outwards towards the axis labels, or in both directions. The keyword axis is an alias for inward, and border is an alias for outward. The remaining options are used to configure where along the axis ticks are placed. If a series of comma-separated values \labminimum\rab, \labincrement\rab, \labmaximum\rab are specified, then ticks are placed at evenly spaced intervals between the specified limits. The \labminimum\rab and \labmaximum\rab values are optional; if only one value is specified then it is taken to be the step size between ticks. If two values are specified, then the first is taken to be \labminimum\rab. In the case of logarithmic axes, \labincrement\rab is applied as a multiplicative step size. Alternatively, if a bracketed list of quoted tick labels and tick positions are provided, then ticks can be placed on an axis manually and each given its own textual label. The quoted tick labels may be omitted, in which case they are automatically generated: 

set#xtics#("a"#1,#"b"#2,#"c"#3)\\set#xtics#(1,2,3)\\

 The keyword autofreq overrides any manual selection of ticks which may have been placed on an axis and resumes the automatic placement of ticks along it. The show xtics command, together with its companions such as show x2tics and show ytics, is used to query the current ticking options. The set noxtics command is used to stipulate that no ticks should appear along a particular axis: 

set#noxtics\\show#xtics\\

   </xtics>
   <yformat>

See xformat. 

   </yformat>
   <ylabel>

See xlabel. 

   </ylabel>
   <yrange>

See xrange. 

   </yrange>
   <ytics>

See xtics. 

   </ytics>
   <zformat>

See xformat. 

   </zformat>
   <zlabel>

See xlabel. 

   </zlabel>
   <zrange>

See xrange. 

   </zrange>
   <ztics>

See xtics. 

   </ztics>

  </set>
  <show>

show#{#all#|#axes#|#functions#|#settings#|#units\\#######|#userfunctions#|#variables#|#\labparameter\rab#}\\

The show command displays the present state of parameters which can be set with the set command. For example, 

show#pointsize\\

displays the currently set point size. Details of the various parameters which can be queried can be found under the set command; any keyword which can follow the set command can also follow the show command. In addition, show all shows a complete list of the present values of all of Pyxplot's configurable parameters. The command show settings shows all of these parameters, but does not list the currently-configured variables, functions and axes. show axes shows the configuration states of all graph axes. show variables lists all of the currently defined variables. And finally, show functions lists all of the current user-defined functions. 

  </show>
  <solve>

solve#{#\labequation\rab#}#via#{#\labvariable\rab#}\\

The solve command can be used to solve simple systems of one or more equations numerically. It takes as its arguments a comma-separated list of the equations which are to be solved, and a comma-separated list of the variables which are to be found. The latter should be prefixed by the word via, to separate it from the list of equations. Note that the time taken by the solver dramatically increases with the number of variables which are simultaneously found, whereas the accuracy achieved simultaneously decreases. The following example solves a simple pair of simultaneous equations of two variables:  <input>

</input>  No output is returned to the terminal if the numerical solver succeeds, otherwise an error message is displayed. If any of the fitting variables are already defined prior to the solve command's being called, their values are used as initial guesses, otherwise an initial guess of unity for each fitting variable is assumed. Thus, the same solve command returns two different values in the following two cases:  <input>

</input>  In cases where any of the variables being solved for are not dimensionless, it is essential that an initial guess with appropriate units be supplied, otherwise the solver will try and fail to solve the system of equations using dimensionless values: 

x#=#unit(m)\\y#=#5*unit(km)\\solve#x=y#via#x\\

The solve command works by minimising the squares of the residuals of all of the equations supplied, and so even when no exact solution can be found, the best compromise is returned. The following example has no solution - a system of three equations with two variables is over-constrained - but Pyxplot nonetheless finds a compromise solution:  <input>

</input>  When complex arithmetic is enabled, the solve command allows each of the variables being fitted to take any value in the complex plane, and thus the number of dimensions of the fitting problem is effectively doubled - the real and imaginary components of each variable are solved for separately - as in the following example:  <input>

</input>  

  </solve>
  <spline>

spline#[#\labrange\rab#]#\labfunction#name\rab()\\#######(#\labfilename\rab#|#{#\labexpression\rab#}#|#{#\labvector#obj\rab#}#)\\#######[#every#{#\labexpression\rab#}#]\\#######[#index#\labvalue\rab#]\\#######[#select#\labexpression\rab#]\\#######[#using#{#\labexpression\rab#}#]\\

The spline command is an alias for the interpolate spline command. See the entry for the interpolate command for more details. 

  </spline>
  <swap>

swap#\labitem1\rab#\labitem2\rab\\

Items on multiplot canvases are drawn in order of increasing identification number, and thus items with low identification numbers are drawn first, at the back of the multiplot, and items with higher identification numbers are later, towards the front of the multiplot. When new items are added, they are given higher identification numbers than previous items and appear at the front of the multiplot. If this is not the desired ordering, then the swap command may be used to rearrange items. It takes the identification numbers of two multiplot items and swaps their identification numbers and hence their positions in the ordered sequence. Thus, if, for example, the corner of item3 disappears behind the corner of item5, when the converse effect is actually desired, the following command should be issued: 

swap#3#5\\

  </swap>
  <tabulate>

tabulate#[#\labrange\rab#]\\#######(#\labfilename\rab#|#{#\labexpression\rab#}#|#{#\labvector#obj\rab#}#)\\#######[#every#{#\labexpression\rab#}#]\\#######[#index#\labvalue\rab#]\\#######[#select#\labexpression\rab#]\\#######[#sortby#\labexpression\rab#]\\#######[#using#{#\labexpression\rab#}#]\\#######[#with#\laboutput#format\rab#]\\

Pyxplot's tabulate command is similar to its plot command, but instead of plotting a series of data points onto a graph, it outputs them to data files. This can be used to produce text files containing samples of functions, to rearrange/filter the columns in data files, to change the units in which data is expressed in data files, and so forth. The following example would produce a data file called gamma.dat containing a list of values of the gamma function: 

set#output#'gamma.dat'\\tabulate#[1:5]#gamma(x)\\

Multiple functions may be tabulated into the same file, either by using the using modifier: 

tabulate#[0:2*pi]#sin(x):cos(x):tan(x)#u#1:2:3:4\\

or by placing them in a comma-separated list, as in the plot command: 

tabulate#[0:2*pi]#sin(x),#cos(x),#tan(x)\\

In the former case, the functions are tabulated horizontally alongside one another in a series of columns. In the latter case, the functions are tabulated one after another in a series of index blocks separated by double linefeeds (see Section 3.8 of the Users' Guide). The setting samples can be used to control the number of points that are produced when tabulating functions, in the same way that it controls the plot command: 

set#samples#200\\

If the ordinate axis is set to be logarithmic then the points at which functions are evaluated are spaced logarithmically, otherwise they are spaced linearly. The select, using and every modifiers operate in the same manner in the tabulate command as in the plot command. Thus, the following example would write out the third, sixth and ninth columns of the data file input.dat, but only when the arcsine of the value in the fourth column is positive: 

set#output#'filtered.dat'\\tabulate#'input.dat'#u#3:6:9#select#(asin($4)\rab0)\\

The numerical display format used in each column of the output file is chosen automatically to preserve accuracy whilst simultaneously being as easily human readable as possible. Thus, columns which contain only integers are displayed as such, and scientific notation is only used in columns which contain very large or very small values. If desired, however, a format statement may be specified using the with format specifier. The syntax for this is similar to that expected by the string substitution operator (%; see Section 6.2.1 of the Users' Guide). As an example, to tabulate the values of x to very many significant figures with some additional text, one could use: 

tabulate#x**2#with#format#"x#=#%f#;#x**2#=#%27.20e"\\

This might produce the following output: 

x#=#0.000000#;#x**2#=##0.00000000000000000000e+00\\x#=#0.833333#;#x**2#=##6.94444444444442421371e-01\\x#=#1.666667#;#x**2#=##2.77777777777778167589e+00\\

The data produced by the tabulate command can be sorted in order of any arbitrary metric by supplying an expression after the sortby modifier; where such expressions are supplied, the data is sorted in order from the smallest value of the expression to the largest. 

  </tabulate>
  <text>

text#[#item#\labid\rab#]#\labtext#string\rab#[#at#\labvector\rab#]\\#####[#rotate#\labangle\rab#]#[#gap#\lablength\rab#]\\#####[#halign#\labalignment\rab#]#[#valign#\labalignment\rab#]\\#####[#with#color#\labcolor\rab#]\\

The text command allows strings of text to a added as labels on multiplot canvases. The example 

text#'Hello#World!'#at#0,2\\

would render the text `Hello World!' at position (0,2), measured in centimeters. The alignment of the text item with respect to this position can be set using the set texthalign and set textvalign commands, or using the halign and valign modifiers supplied to the text command itself. A gap may be specified, which should either have dimensions of length, or be dimensionless, in which case it is interpreted as being measured in centimeters. If a gap is specified, then the text string is slightly displaced from the specified position, in the direction in which it is being aligned. A rotation angle may optionally be specified after the keyword rotate to produce text rotated to any arbitrary angle, measured in degrees counter-clockwise. The following example would produce upward-running text: 

text#'Hello'#at#1.5,#3.6#rotate#90\\

By default the text is black; however, an arbitrary color may be specified using the with color modifier. For example: 

text#'A#purple#label'#at#0,#0#with#color#purple\\

would add a purple label at the origin of the multiplot. Outside of multiplot mode, the text command can be used to produce images consisting simply of one single text item. This can be useful for importing LaTeXed equations as gif images into slideshow programs such as Microsoft Powerpoint which are incapable of producing such neat mathematical notation by themselves. All vector graphics objects placed on multiplot canvases receive unique identification numbers which count sequentially from one, and which may be listed using the list command. By reference to these numbers, they can be deleted and subsequently restored with the delete and undelete commands respectively. 

  </text>
  <undelete>

undelete#{#\labitem#number\rab#}\\

The undelete command allows vector graphics objects which have previously been deleted from the current multiplot canvas to be restored. The item(s) which are to be restored should be identified using the reference number(s) which were used to delete them, and can be queried using the list command. The example 

undelete#1\\

would cause the previously deleted item numbered 1 to reappear. 

  </undelete>
  <unset>

unset#\labsetting\rab\\

The unset command causes a configuration option which has been changed using the set command to be returned to its default value. For example: 

unset#linewidth\\

returns the linewidth to its default value. Any keyword which can follow the set command to identify a configuration parameter can also follow the unset command; a complete list of these can be found under the set command. 

  </unset>
  <while>

while#\labcondition\rab#[#loopname#\labloopname\rab#]\\##\labcode\rab\\

The while command executes a block of commands repeatedly, checking the provided condition at the start of each iteration. If the condition is true, the loop executes again. This is similar to a do loop, except that the contents of a while loop may not be executed at all if the iteration criterion tests false upon the first iteration. For example, the following code prints out the low-valued Fibonacci numbers: 

i#=#1\\j#=#1\\while#(j#\lab#50)\\#{\\##print#j\\##i#=#i#+#j\\##print#i\\##j#=#j#+#i\\#}\\

  </while>

</help>