2012 Aug 1: Pyxplot 0.9.0

Version 0.9 is a major update. Many new data types have been introduced, each of which has methods which can be called in an object-orientated fashion. These include:

  • Colors, which can be stored in variables for subsequent use in vector graphics commands. The addition and subtraction operators act on colors to allow color mixing.

  • Dates, which can be imported from calendar dates, unix times or Julian dates. Dates can be subtracted to give time intervals.

  • Lists and dictionaries, which can be iterated over, or used to feed calculated data into the plot and tabulate commands.

  • Vectors and matrices, which allow matrix algebra. These types interface cleanly with Pyxplot’s vector-graphics commands, allowing positions to be specified as vector expressions.

  • File handles, which allow Pyxplot to read data from files, or write data or logs to files.

  • Modules and classes, which allow object-orientated programming.

In addition, Pyxplot’s range of operators has been extended to include most of those in the C programming language, allowing expressions such as

pyxplot> print (a=3)+(b=2)
5
pyxplot> print a$>$0?"yes":"no"
yes
pyxplot> print "%s  %s"%(++a,b++)
4  2
pyxplot> print (a+=10 , b+=10 , a+b)
27

to be written.

Incompatibilities with Pyxplot 0.8

The extensions to Pyxplot in version 0.9 mean that some minor changes to syntax have been necessary. These include:

  • Some functions and variables have been renamed. Variables whose names used to begin phy_ now live in a module called phy. They may be accessed as, for example, phy.c. Similarly, random number generating functions now live in a module called random; statistics functions in a module called stats; time-handling functions in time; operating system functions in os; and astronomy functions in ast. The contents of these modules can be listed by typing, for example, print phy.

  • Custom colors, which used to be specified using syntax such as rgb0.2:0.3:0.4, should now be specified using the rgb(r,g,b) functions, as, for example, rgb(0.2,0.3,0.4). Custom colors can now be stored in variables for later use (see Section 6.6).

  • The range of escape characters which can be used in strings has been increased, so that, for example, $\backslash $n is a newline and $\backslash $t a tab. As in python, prepending the string with the character r disables all escape character expansion. As backslashes are common characters in latex command strings, the easiest approach is to always prepend latex strings with an r. As in python, triple quotes, e.g. r"""2 $\backslash $times 3""" can be used where required (see Section 3.6).

  • In the foreach command, square brackets should be used to delimit lists of items to iterate over. The Pyxplot 0.8 syntax foreach i in (1,2,3) should now be written foreach i in [1,2,3] (see Section 7.3).