Conversion guide: ChIPS 3 command language to ChIPS 4.7
- Supported commands
- Python commands equivalent to S-Lang routines
- The chips.* preference settings
- Unsupported commands
- Unsupported S-Lang routines
This document does not highlight many of the capabilities that are new in ChIPS, such as the ChIPS GUI, or extensive support for overlaying images, contours, and curves. Please see the General differences between CIAO 3 and CIAO 4, ChIPS Gallery, and ChIPS threads for more information and examples.
Supported commands
The following commands - listed in alphabetical order - can be replicated in the new version of ChIPS. In most cases there is a one-to-one correspondance, although occasionally several routines will have to be called.
-
AXES newcolor
-
You can say either
set_axis(["*.color", "newcolor"])
or
set_cascading_property("all", chips_axis, "color", "newcolor")
Either command will also change the color of any axis labels, which the 3.4 command did not change. They can be restored to the default color, if so desired, buy saying
set_axis(["label.color", "default"])
-
AXES [WIDTH] w
-
You can say either
set_axis(["*.thickness", q])
or
set_cascading_property("all", chips_axis, "thickness", "w")
where 0.5 <= w <= 10.
The last argument must be given as a string for set_cascading_property, so
AXIS 2
becomes either of
set_axis(["*.thickness", 2]) set_cascading_property("all", chips_axis, "thickness", "2")
This will not change the thickness of the numeric labels or axis labels. They can both be changed to a bold font, if required, with either of
set_axis(["*.fontstyle", "bold"]) set_cascading_property("all", chips_axis, "fontstyle", "bold")
or individually with
set_axis(["label.fontstyle", "bold"]) set_axis(["ticklabel.fontstyle", "bold"])
-
[AXES] TWOAXES|FOURAXES|TWOAXESFRAME
-
set_plot(["style","open"]) # for TWOAXES set_plot(["style","closed"]) # for FOURAXES set_plot(["style","boxed"]) # for TWOAXESFRAME
- BATCH [on]
-
One of:
set_preference("window.display", "false") set_window(["display", False])
The command to use depends on whether a window has already been created. If it has not then use set_preference, otherwise use set_window to change the redraw attribute as show above. See also the REDRAW call.
To run a job in the background you may need to use xvfb to create a virtual X server for ChIPS to use.
- BATCH off
-
One of:
set_preference("window.display", "true") set_window(["display", True])
See the BATCH on command for more information.
- C n
-
current_curve("crvn")
So C 2 becomes current_curve("crv2").
- C all
-
current_curve("all")
- CLEAR
-
One of:
clear() empty()
The clear() routine removes everything, including windows, whereas the erase() routine deletes everything within the current window.
- COLORSYS cmyk|grayscale|rgb
-
set_preference("export.colorscheme", "cmyk") set_preference("export.colorscheme", "grayscale") set_preference("export.colorscheme", "rgb")
There is also "cmyksep", which creates four output files, one for each channel (cyan, magenta, yellow, and black). The cmyk and cmyksep formas are only supported for the ps, eps, and pdf output types.
The color scheme can also be over-ridden when calling print_window:
print_window("fig1.proof",["colorscheme","cmyk"])
or set from the print dialog:
print_window("fig1.proof", ["printdialog", True])
-
CONTOUR filename [LEVELS] l1 .. ln
-
If the file is an image, then one of:
make_figure("filename") add_contour("filename") make_figure("filename",[l1,..,ln]) add_contour("filename",[l1,..,ln])
The add_contour version should be used if you wish to add a contour to an existing plot.
If the file is a table, with the first three columns containing the x, y, and z data values to contour:
tbl = read_file("filename") x = copy_colvals(tbl, "col1") y = copy_colvals(tbl, "col2") z = copy_colvals(tbl, "col3") add_contour(x, y, z) # or, if levels are specified add_contour(x, y, z, [l1,..,ln])
-
CONTOUR x y z LEVELS l1 .. ln
-
x, y, and z are one-dimensional arrays, with the X-axis values increasing fastest.
add_contour(x,y,z) add_contour(x,y,z, [l1, .., ln])
It is also possible to contour an image by saying
add_contour(img2d) add_contour(img1d, nx, ny)
where img2d is a 2D array and img1d is a 1D array (in this case nx and ny are the X and Y dimensions to use).
-
PLOT filename
-
One of:
make_figure("filename") add_curve("filename")
The make_figure() command will create a plot and add axis labels and a plot title, based on the contents of the file. The add_curve() command should be used if more control over the plot appearance is needed, or if you want to add more than one curve to a plot.
-
PLOT filename i j k
-
make_figure("filename[cols #i,#j,#k]") add_curve("filename[cols #i,#j,#k]")
The column names can also be used instead of the column number in the column filter.
-
PLOT filename <column list>
-
add_curve("filename[cols ...]")
The columns to plot are taken from the number in the input file:
Number of columns Meaning 2 x,y 3 x,y,dy 4 x,y,dylo,dyhi so the Data Model column filter should be used to select the columns to plot.
To plot other columns - e.g. to add X error bars - then the file will have to be read in using Crates and the columns selected manually, for example, if the first four columns of tbl.fits are named X, Y, XLO, and XHI then
CURVE tbl.fits x 1 y 2 xdn 3 xup 4
would be converted to
tbl = read_file("tbl.fits") x = copy_colvals(tbl, "X") y = copy_colvals(tbl, "Y") dxlo = copy_colvals(tbl, "XLO") dxhi = copy_colvals(tbl, "XHI") add_curve(x, y, [None, None, dxlo, dxhi])
ABSOLUTE error values are not supported; values will have to be converted to relative form before plotting. The SCOL column option is not supported.
- [CURVE] newcolor
-
set_curve(["line.color","newcolor"])
- [CURVE] newstyle
-
set_curve(["line.style","styleval"])
See the line style section for the mapping between newstyle and styleval.
- [CURVE] NOLINE
-
One of:
set_curve(["line.style", "noline"]) set_curve(["line.style", "none"])
- [CURVE] SIMPLELINE
-
set_curve(["line.style", "solid"])
- [CURVE] WIDTH w
-
set_curve(["line.thickness", w])
where 0.5 <= w <= 10.
- [CURVE] SYM newcolor
-
set_curve(["symbol.color", "newcolor"])
- [CURVE] SYM newstyle
-
One of:
set_curve(["symbol.style", "styleval"]) set_curve(["symbol.style", "styleval", "symbol.fill", False])
See the symbol style section for the mapping between newstyle and styleval and whether the symbol.fill attribute needs changing.
- [CURVE] SYM s
-
set_curve(["symbol.size",s])
where 1 <= s <= 100.
- D n
-
current_plot("plotn")
So D 2 becomes current_plot("plot2").
- D all
-
current_plot("all")
- DELETE
-
delete_plot([id]) delete_curve([id]) delete_histogram([id]) delete_contour([id]) delete_line([id]) delete_label([id])
In the old ChIPS command language the object being deleted was given by the context of the command, so the two commands
C ALL DELETE D 2 DELETE
would delete all curves and the second drawarea respectively. The new language has separate delete commands for the different objects, so the above commands would be converted to:
delete_curve("all") delete_plot("plot2")
or
current_curve("all") delete_curve() current_plot("plot2") delete_plot()
- DISPLAY imagename
-
Use ds9 to view the file by saying
chips> !ds9 filename &
or display as a ChIPS image using one of
chips> add_image("filename") chips> make_figure("filename", "image")
- DRAWARA x1 x2 y1 y2
-
add_plot(x1,y1,x2,y2)
The order of the coordinates has changed.
- ERRS [X|Y] newcolor
-
set_curve(["err.color","newcolor"])
The use of the optional coordinate argument (i.e. "X" or "Y") is no longer supported, since the properties of the error bars are shared between all four bars (up, down, right, and left), except for the visibility, which can be changed individually.
- ERRS [X|Y] STANDARD
-
set_curve(["err.style","line"])
The use of the optional coordinate argument (i.e. "X" or "Y") is no longer supported, since the properties of the error bars are shared between all four bars (up, down, right, and left), except for the visibility, which can be changed individually.
- ERRS [X|Y] BAR
-
set_curve(["err.style","capped"])
The use of the optional coordinate argument (i.e. "X" or "Y") is no longer supported, since the properties of the error bars are shared between all four bars (up, down, right, and left), except for the visibility, which can be changed individually.
- ERRS [X|Y] SIZE v
-
set_curve(["err.caplength", v])
The size v does not have the same meaning in CIAO 4 as it did in CIAO 3; it now is an absolute value measured in pixels.
- ERRS [X|Y] BOTH|NONE
-
set_curve(["err.*", v]) set_curve(["err.down", v, "err.up", v, "err.left", v, "err.right", v])
where v is True for BOTH and False for NONE.
- ERRS X BOTH|NONE
-
set_curve(["err.left", v, "err.right", v])
where v is True for BOTH and False for NONE.
- ERRS Y BOTH|NONE
-
set_curve(["err.down", v, "err.up", v])
where v is 1 for BOTH and 0 for NONE.
- ERRS X UP
-
set_curve(["err.left", False, "err.right", True])
Changing the err.left value may not be necessary.
- ERRS X DOWN
-
set_curve(["err.left", True, "err.right", False])
Changing the err.right value may not be necessary.
- ERRS Y UP
-
set_curve(["err.down", False, "err.up", True])
Changing the err.down value may not be necessary.
- ERRS Y DOWN
-
set_curve(["err.down", True, "err.up", False])
Changing the err.up value may not be necessary.
- GRIDS [X|Y] ON|OFF
-
One of:
set_axis(["majorgrid.visible", v, "minorgrid.visible", v]) set_xaxis(["majorgrid.visible", v, "minorgrid.visible", v]) set_yaxis(["majorgrid.visible", v, "minorgrid.visible", v])
where v is True for ON and False for OFF.
- GRIDS MAJ [X|Y] ON|OFF
-
One of:
set_axis(["majorgrid.visible",v]) set_xaxis(["majorgrid.visible",v]) set_yaxis(["majorgrid.visible",v])
where v is True for ON and False for OFF.
- GRIDS MIN [X|Y] ON|OFF
-
One of:
set_axis(["minorgrid.visible",v]) set_xaxis(["minorgrid.visible",v]) set_yaxis(["minorgrid.visible",v])
where v is True for ON and False for OFF.
- GRIDS [MAJ|MIN] [X|Y] newcolor
-
One of:
set_axis(["majorgrid.color","color","minorgrid.color","color"]) set_axis(["majorgrid.color","color"]) set_axis(["minorgrid.color","color"]) set_xaxis(["majorgrid.color","color","minorgrid.color","color"]) set_xaxis(["majorgrid.color","color"]) set_xaxis(["minorgrid.color","color"]) set_yaxis(["majorgrid.color","color","minorgrid.color","color"]) set_yaxis(["majorgrid.color","color"]) set_yaxis(["minorgrid.color","color"])
In the old command language, changing the property of a grid would automatically display the grid. In the new language the visibility has to be explicitly turned on; it is not done automatically. So
GRIDS MAJ red
becomes, assuming the grid is not already visible,
set_axis(["majorgrid.color","red","majorgrid.visible",1])
- GRIDS [MAJ|MIN] [X|Y] newstyle
-
One of:
set_axis(["majorgrid.style","styleval","minorgrid.style","styleval"]) set_axis(["majorgrid.style","styleval",]) set_axis(["minorgrid.style","styleval"]) set_xaxis(["majorgrid.style","styleval","minorgrid.style","styleval"]) set_xaxis(["majorgrid.style","styleval",]) set_xaxis(["minorgrid.style","styleval"]) set_yaxis(["majorgrid.style","styleval","minorgrid.style","styleval"]) set_yaxis(["majorgrid.style","styleval",]) set_yaxis(["minorgrid.style","styleval"])
See the line style section for the mapping between newstyle and styleval.
See the GRIDS newcolor command for information on setting the grid visibility.
- INFO
-
There is no one command that displays similar information to the INFO command.
The info(), info_current(), info_depth(), info_coordinate(), and info_bound_axes() routines return a string containing information on what objects have been created. The info preferences control the content and appearance of the output of these routines.
Information on current objects - such as the line color or symbol type - can be found by saying
print (get_plot()) print (get_curve()) print (get_histogram()) print (get_contour()) print (get_line()) print (get_label())
- L n
-
current_label("lbln")
So L 2 becomes current_label("lbl2").
- L all
-
current_label("all")
- LABEL x y "text"
-
add_label(x,y,"text")
If the text contains any "\" characters then add the r qualifier before the string. For example add_label(2,5,r"y=\alpha^2").
See the Text Formatting documentation for the LaTeX-like commands suported by ChIPS.
-
L n [LABEL] ANGLE a
-
set_label(["angle",a]) set_label("lbln",["angle",a])
-
L n [LABEL] newcolor
-
set_label(["color","newcolor"]) set_label("lbln",["color","newcolor"])
-
L n [LABEL] SIZE s
-
set_label(["size",s]) set_label("lbln",["size",s])
where 1 <= s <= 100 and refers to the size of the text in points.
-
L n [LABEL] "new text"
-
set_label_text("new text") set_label_text("lbln","new text")
If the text contains any "\" characters then add the r qualifier before the string. For example set_label_text(r"y=\alpha^2").
See the Text Formatting documentation for the LaTeX-like commands suported by ChIPS.
-
L n [LABEL] COORDS x y
-
move_label(x,y)
- LEVELS l1 ... lN
-
set_contour(["levels", [l1,...,lN]])
-
LIMITS Y y1 y2LIMITS x1 y1 x2 y2
-
limits(X_AXIS, x1, x2) limits(Y_AXIS, y1, y2) limits(XY_AXIS, lo, hi)
The only way to change the limits on both axes at the same time is if the limits are the same. The AUTO symbol can still be used, so
will set the lower limit of the Y axis to 1e-5 and the upper limit to the maximum data value. The * symbol is not supported.limits(Y_AXIS, -1e5, AUTO)
- LINE x1 y1 x2 y2
-
add_line(x1,y1,x2,y2)
If you want a horizontal or vertical line you can also use the add_hline and add_vline routines.
-
LN n [LINE] newcolor
-
set_line(["color","newcolor"])
-
LN n [LINE] newstyle
-
set_line(["style","styleval"])
See the line style section for the mapping between newstyle and styleval.
-
LN n [LINE] WIDTH w
-
set_line(["thickness",w])
where 0.5 <= w <= 10.
-
LN n [LINE] x1 y1 x2 y2
-
If the line is to be shifted, but not rotated or stretched, then the move_line routine can be used.
-
[AXIS|AXES] LINEAR X[AXIS|AXES] LINEAR Y
-
lin_scale() lin_scale(X_AXIS) lin_scale(Y_AXIS) linear_scale() linear_scale(X_AXIS) linear_scale(Y_AXIS)
- LN n
-
current_line("linen")
So LN 2 becomes current_line("line2").
- LN all
-
current_line("all")
- LOCATION x1 x2 y1 y2
-
reposition_plot(x1,y1,x2,y2)
The order of the coordinates has changed.
-
[AXIS|AXES] LOG X[AXIS|AXES] LOG Y
-
log_scale() log_scale(X_AXIS) log_scale(Y_AXIS)
- PAGESIZE w h [unit]
-
One of:
set_preferences(["export.pagewidth", w, "export.pageheight", h]) set_preferences(["export.pagewidth", w, "export.pageheight", h, "export.pageunits", "unit"])
The allowed values for the pageunits attribute are: cm, mm, inches, and pixels.
It is also possible to set the output page size using a paper size by setting the export.pagesize preference to one of: letter, legal, executive, a3, a4, and a5.
The orientation of the output is controlled by the export.orientation preference setting. The supported values are "landscape" and "portrait".
The export.fittopage and export.keepaspect preference settings control how the output page is filled, when the output and window sizes are different. Further information can be found in the Export section.
The attributes can also be over-ridden when calling print_window(), but only for ps and pdf output formats:
print_window("fig1", ["pagesize", "letter", "fittopage", True])
-
PICKPOINTS n
-
pick(0) pick(n)
The escape key is used to end the selection early (or when n is 0).
The get_pick routine returns the selected positions as Python arrays.
- PLOTFONT GREEK|ITALIC|OLDENGLISH|ROMAN|TINY
-
There can now be multiple font types within a visualization. The choices are: helvetica, times, courier, and greek. There is only very-limited support for user-loaded fonts so only the in-built fonts will be considered here.
The preference settings for each font field have to be changed individually:
set_preferences(["label.font", f, "plot.title.font", f, "axis.label.font", f, "axis.ticklabel.font", f])
where f is one of "helvetica", "times", "courier", or "greek".
To change all existing text within a visialization to a font f use:
set_cascading_property(chips_window, "font", f)
Individual values can also be changed. For example
set_label(["font","times"]) set_axis(["label.font","courier"])
Note that LaTeX commands to change the font within a label override the font setting - e.g. the string label2 below will remain as times (roman) whatever the font setting is changed to for the label.
add_label(5, 5, r"label1 \textrm{label2}")
-
PRINT POSTFILE filename
-
One of:
print_window() print_window("filename") print_window("filename.ps") print_window("filename.eps") print_window("filename.pdf") print_window("filename.png") print_window("filename.jpg") print_window("filename.jpeg")
If no filename argument is given then the output will be sent to your default printer. If no suffix is given then the format is taken from the export.format preference setting.
The export.* set of preferences can be used to adjust the output. So, to create a PNG version called plot.png:
print_window("plot.png")
or to change the output size to US letter (here it will create plot.ps as the default format is "ps").
print_window("plot", ["pagesize", "letter", "fittopage", True])
- REDRAW
-
set_window(["display", True])
This does not exactly replicate the behavior of REDRAW, since it not only causes the update of the display but also leaves the redraw setting on. To update the display but make future changes hidden you need to turn the redraw setting back off.
- REDRAW ON|OFF
-
set_window(["display", v])
where v is True for ON and False for OFF.
-
REDO n
-
redo() redo(n)
-
RELATIVESIZE [n] x
-
One of:
adgust_grid_yrelsize(n,x) adgust_grid_xrelsize(n,x)
The row and column numbering - indicated by the n argument - starts at 1 at the top-left of the grid.
- RESTORE filename
-
load_state("filename")
See the STORE command for information on changes to the format of the state file.
- SPLIT [COLS] n
-
split(n)
You can also use the strip_chart routine if you need plots with bound axes (i.e. where the display range is the same in each plot for the shared axis).
- SPLIT ncol nrow
-
split(nrow,ncol)
Note that the argument order has changed. The ordering of the plots has also changed, from top to bottom then left to right to left to right then top to bottom
If you wish to change the gaps between the rows or columns then you can use the four-argument form of the routine:
split(nrow,ncol,ygap,xgap)
- SPLIT ncol nrow p
-
split(nrow,ncol) current_plot("plotp")
Note that the argument order has changed.
- SPLIT COLS a b ...x
-
add_frame() col_grid_objects([a,b,...,x], xgap, ygap, 1)
The add_frame call is not needed if a frame already exists. The easiest way to check for this is to call get_frame() and see if an error message is created.
The second and third arguments refer to the x and y gaps to use between plots, respectively. So
col_grid_objects([3,2], 0.05, 0, 1)
adds a small horizontal gap between the two columns but no vertical space between the rows.
- SPLIT GAP [X|Y] v
-
One of:
adjust_grid_xgap(v) adjust_grid_ygap(v) adjust_grid_gaps(v,v)
- SPLIT LOCATION x1 x2 y1 y2
-
pr = ChipsPlot pr.leftmargin = x1 pr.rightmargin = 1 - x2 pr.bottommargin = y1 pr.topmargin = 1 - y2 set_preferences(pr)
The plot.*margin preferences are used when deciding what parts of the frame to fill with a split. So, instead of calling SPLIT and then SPLIT LOCATION, you now change the preferences before calling split.
Note that the margin values indicate the distance from the edge, hence the need for 1-x2 and 1-y2 above.
- STORE filename
-
make_script("filename") save_state("filename")
The file(s) created by make_script() are in ASCII and so can be edited.
The file created by save_state() is in a binary format and is not human readable. It includes all the data needed to re-create the plot, as well as the command history, so you can use undo to step back through your changes.
- TICKS [MAJ] [X|Y] v
-
One of:
set_axis(["majortick.interval", v,]) set_xaxis(["majortick.interval", v,]) set_yaxis(["majortick.interval", v,])
- TICKS MIN [X|Y] v
-
One of:
set_axis(["minortick.interval",v,"minortick.mode","interval"]) set_xaxis(["minortick.interval",v,"minortick.mode","interval"]) set_yaxis(["minortick.interval",v,"minortick.mode","interval"])
- TICKVALS [X|Y] ON|OFF
-
One of:
set_axis_ticklabel_visible(v) set_axis_ticklabel_visible("ax1",v) set_axis_ticklabel_visible("ay1",v)
where v is True for ON and False for OFF.
The whole axis - including label - can be hidden or displayed using the hide_axis and display_axis routines.
- TICKVALS [X|Y] format|AUTO
-
One of:
set_axis(["tickformat",format]) set_xaxis(["tickformat",format]) set_yaxis(["tickformat",format])
where the default format is "%g" (e.g. if AUTO was specified).
Note that there are a number of improvements to the format support in ChIPS, including exponential notation (%z and %Z) and sexagesimal formats (ra and dec).
-
TITLE "text"
-
set_plot_title("") set_plot_title("text")
If the text contains any "\" characters then add the r qualifier before the string. For example set_plot_title(r"y=\alpha^2").
See the Text Formatting documentation for the LaTeX-like commands suported by ChIPS.
- TITLE newcolor
-
set_plot(["title.color","newcolor"])
- TITLE SIZE b
-
set_plot(["title.size",b])
The size is now given in points and can be 1 <= n <= 100.
-
UNDO n
-
undo() undo(n)
-
XLABEL "text"
-
set_plot_xlabel("") set_plot_xlabel("text")
If the text contains any "\" characters then add the r qualifier before the string. For example set_plot_xlabel(r"\Delta").
See the Text Formatting documentation for the LaTeX-like commands suported by ChIPS.
- XLABEL newcolor
-
set_xaxis(["label.color","newcolor"])
- XLABEL [SIZE] n
-
set_xaxis(["label.size",n])
The size is now given in points and can be 1 <= n <= 100.
-
YLABEL "text"
-
set_plot_ylabel("") set_plot_ylabel("text")
If the text contains any "\" characters then add the r qualifier before the string. For example set_plot_ylabel(r"\Delta").
See the Text Formatting documentation for the LaTeX-like commands suported by ChIPS.
- YLABEL newcolor
-
set_yaxis(["label.color","newcolor"])
- YLABEL [SIZE] n
-
set_yaxis(["label.size",n])
The size is now given in points and can be 1 <= n <= 100.
Python commands equivalent to S-Lang routines
The following S-Lang routines have Python equivalents. Please note that the Python routines raise an error if there is a problem rather than returning 0 or -1.
-
curve(x,y,dy);curve(x,y,dylo,dyhi);curve(x,y,dxlo,dxhi,dylo,dyhi);
-
One of:
add_curve(x,y) add_curve(x,y,dy) add_curve(x,y,[dylo,dyhi]) add_curve(x,y,[dylo,dyhi,dxlo,dxhi])
-
chips_label(x,y,text,newcolor);chips_label(x,y,text,newcolor,size);chips_label(x,y,text,newcolor,size,angle);
-
One of:
add_label(x,y,text) add_label(x,y,text,["color",newcolor,]) add_label(x,y,text,["color",newcolor,"size",s]) add_label(x,y,text,["color",newcolor,"size",s,"angle",a])
If the text contains any "\" characters then add the r qualifier before the string. For example add_label(2,5,r"y=\alpha^2").
See the Text Formatting documentation for the LaTeX-like commands suported by ChIPS.
As with the LABEL command the size value is now in points and is not a scaling factor.
-
chips_line(x1,y1,x2,y2,newcolor);chips_line(x1,y1,x2,y2,newcolor,width);chips_line(x1,y1,x2,y2,newcolor,width,newstyle);
-
One of:
add_line(x1,y1,x2,y2) add_line(x1,y1,x2,y2,["color",newcolor,]) add_line(x1,y1,x2,y2,["color",newcolor,"thickness",w]) add_line(x1,y1,x2,y2,["color",newcolor,"thickness",w,"style","styleval"])
where 0.5 <= w <= 10 and see the line style section for the mapping between newstyle and styleval.
The add_hline() and add_vline() routines can be used to create horizontal or vertical lines respectively.
- chips_split(ncol,nrow);
-
See the SPLIT ncol nrow command.
- chips_split(ncol,nrow,p);
-
See the SPLIT ncol nrow p command.
- chips_clear;
-
See the CLEAR command.
- chips_redraw;
-
See the REDRAW command.
- chips_auto_redraw;
-
See the REDRAW ON|OFF command.
- a = chips_pickpoints;
-
a = get_pick()
The Escape key is used to terminate the process.
The return value is no-longer a single array with values stored as [x1,y1,x2,y2,...,xn,yn], but is a 3 or 4-element array, where
- a[0] contains the X coordinates
- a[1] contains the Y coordinates
- a[2] indicates what was pressed (e.g. mouse button, key)
- a[3] indicates what key was pressed (not created if only mouse presses were recorded.
- a = chips_pickpoints(n);
-
a = get_pick(n)
The Escape key is used to terminate the process. See the chips_pickpoints() description for details on the format of the return value.
-
See the LIMITS command.
- chips_get_xrange()
-
a = get_plot_xrange()
The return value is a 2-element array, in minumum, maximum order.
- chips_get_yrange()
-
a = get_plot_yrange()
The return value is a 2-element array, in minumum, maximum order.
-
current_plot("plotn")
The chips.* preference settings
The number of preferences, and the system of setting them, have seen significant changes in CIAO 4, as discussed in the preferences ahelp documentation.
The mapping from old to new preference names is:
CIAO 3 | CIAO 4 |
---|---|
chips.curvestyle | curve.line.style |
chips.symbolstyle | curve.symbol.style |
chips.linestyle | line.style |
chips.curvecolor | curve.line.color |
chips.symbolcolor | curve.symbol.color |
chips.linecolor | line.color |
chips.linewidth | line.thickness |
chips.symbolsize | curve.symbol.size |
chips.font | label.font |
chips.font | axis.label.font |
chips.font | axis.ticklabel.font |
chips.font | plot.title.font |
chips.colorsys | export.colorscheme |
chips.pagewidth | export.pagewidth |
chips.pagelen | export.pageheight |
chips.unit | export.pageunits |
chips.padfactor | axis.pad |
chips.lowerloglimit | axis.logminimum |
The following fields are either not supported or no-longer relevant: chips.undo, chips.savevars, chips.tmpdir, chips.tmpdata, chips.fullautolimits, and chips.mingridsize.
It is possible to override the preference settings when creating an object; such overrids only affect the created object and not the preference values themselves. So
add_curve(x,y,["line.color","red","symbol.style","none"])
will draw the curve with a red line and no symbols, but will not change the curve.line.color and curve.symbol.style preference settings.
An alternative way to make these changes is to use the ChipsXXX objects rather than a list of name,value pairs as above:
ci = ChipsCurve() ci.line.color = "red" ci.symbol.style = "none" add_curve(x, y, ci)
It is still possible to create an object and then change its properties, and this can use a list, dictionary, or object approach:
add_curve(x,y) set_curve(["line.color", "red", "symbol.style", "none"])
or
add_curve(x,y) set_curve({"line.color": "red", "symbol.style": "none"})
or
add_curve(x,y) ci = ChipsCurve() ci.line.color = "red" ci.symbol.style = "none" set_curve(ci)
Unsupported commands
The following commands are not supported in the new version of ChIPS. Alternatives are given where possible.
-
C a,b,...,x
-
Only one curve or all curves can be current at any one time. The code will have to be re-written to work on each curve individually.
-
PLOT DATA filename ...
-
This option is not supported. Errors must be given when the curve is created.
- [CURVE] SCALE [X|Y] value
-
There is no way to change the data values once they have been plotted. The data has to be scaled prior to plotting, so
CURVE "foo.fits[cols X,Y]" SCALE Y 2
would become
tbl = read_file("foo.fits") x = copy_colvals(tbl,"X") y = copy_colvals(tbl,"Y") add_curve(x,y*2)
- [CURVE] STEP
-
In the old ChIPS command langauge the CURVE command could be used to plot (x,y) values as a histogram by using the STEP connector style. The new language treats histograms as a separate type of visualization.
The data should therefore be plotted using the add_histogram routine instead of add_curve. So
CURVE "hist.fits[cols xmid,y]" STEP
becomes
add_histogram("hist.fits[cols xmid,y]")
-
D a,b,...,x
-
Only one plot or all plots can be current at any one time. The code will have to be re-written to work on each plot individually.
- DEBUG [on|off]
- EDITMODE ...
- ERRS [X|Y] linestyle
-
It is not possible to change the line style of error bars. They are always drawn using a solid line.
- ERRS [X|Y] ABSOLUTE|RELATIVE
-
All errors are given as relative values.
-
L a,b,...,x
-
Only one label or all labels can be current at any one time. The code will have to be re-written to work on each label individually.
-
LN a,b,...,x
-
Only one line or all lines can be current at any one time. The code will have to be re-written to work on each line individually.
- PACK ...
-
Once an object has been created its name - such as crv1 for a curve - can not be changed.
- SKIP n
-
Use the data model filter #row=... to restrict the rows read in from a file.
- SPLIT GAP [X|Y] n v
-
There is no way to change the spacing of plots in a given column or row.
- SPLIT MAJ X|Y
-
This command is no longer required as the individual routines allow you to work with rows or columns. So
SPLIT 2 SPLIT MAJ Y
becomes
split(1,2)
- SURFACE ...
-
Surface plots are not supported in CIAO 4.7.
- TICKVALS [SIZE] [X|Y] s
-
There is no equivalent command since the scaling of axis elements is handled differently.
The label sizes are now given in points and can be changed with the "label.size" and "ticklabel.size" attributes of an axis.
The length of the major and minor tick marks are controlled by the "majortick.length" and "minortick.length" attributes of an axis.
- TYPE
- VERBOSE
- VIEWPOINT ...
- ZLABEL ...
- Any command referring to the Z axis
Unsupported S-Lang routines
The following routines are not available in CIAO 4.
-
Use the info_current routine to find out the selected objects.
-
The number of colors available in ChIPS has significantly increased in CIAO 4.
- chips_eval()