STILTS-PLOT3D(1)
π« stilts-plot3d β the old-style 3D scatter plot β a Stilts command, bestie π«
okay so before we even get into it: this is a deprecated command. it still works! it's still cute! but the glow-up versions are plot2cube and plot2sphere, and honestly you should be using those if you can. anyway. sit down, grab a lil snack π, we're doing 3D scatter plots.
β¨ SYNOPSIS β¨
stilts plot3d [xpix=<int-value>] [ypix=<int-value>]
[font=dialog|serif|...] [fontsize=<int-value>]
[fontstyle=plain|bold|italic|bold-italic]
[legend=true|false] [title=<value>]
[omode=swing|out|cgi|discard|auto] [out=<out-file>]
[ofmt=png|png-transp|gif|jpeg|pdf|svg|eps|eps-gzip]
[inN=<table>] [ifmtN=<in-format>] [istreamN=true|false]
[cmdN=<cmds>] [xdataN=<expr>] [ydataN=<expr>]
[zdataN=<expr>] [auxdataN=<expr>] [xlo=<float-value>]
[ylo=<float-value>] [zlo=<float-value>] [auxlo=<float-value>]
[xhi=<float-value>] [yhi=<float-value>]
[zhi=<float-value>] [auxhi=<float-value>]
[xlog=true|false] [ylog=true|false] [zlog=true|false]
[auxlog=true|false] [xflip=true|false] [yflip=true|false]
[zflip=true|false] [auxflip=true|false] [xlabel=<value>]
[ylabel=<value>] [zlabel=<value>] [auxlabel=<value>]
[xerrorN=<expr>|[<lo-expr>],[<hi-expr>]]
[yerrorN=<expr>|[<lo-expr>],[<hi-expr>]]
[zerrorN=<expr>|[<lo-expr>],[<hi-expr>]]
[auxshader=rainbow|pastel|...] [txtlabelN=<value>]
[subsetNS=<expr>] [nameNS=<value>]
[colourNS=<rrggbb>|red|blue|...]
[shapeNS=filled_circle|open_circle|...] [sizeNS=<int-value>]
[transparencyNS=<int-value>]
[lineNS=DotToDot|LinearRegression] [linewidthNS=<int-value>]
[dashNS=dot|dash|...|<a,b,...>] [hideNS=true|false]
[errstyleNS=lines|capped_lines|...]
[grid=true|false] [antialias=true|false]
[sequence=<suffix>,<suffix>,...] [fog=<float-value>]
[phi=<float-value>] [theta=<float-value>]
π DESCRIPTION π
sooooo this section is describing a deprecated command. it still works, fr, but likeβ¦ you're advised to use the way more capable plot2cube or plot2sphere instead. i'm just the messenger π
plot3d makes three-dimensional scatter plots, and it either throws the output onto a graphical display OR writes it out to a file in some vector or bitmapped graphics format. you have to feed it values for one or more X, Y and Z datasets, expressed as table columns, and then it generates a plot with a point for each row. it's giving "one point per row, always." β¨
there are so many options for configuring the detailed appearance of the plot (you'll see, we're about to list all of them, every single one, no skipping), but in its simplest form the invocation is actually super straightforward. for more discussion on use of the plotting commands, see SUN/256. π
π OPTIONS π
xpix=<int-value>β the width of the output graphic, in pixels. that's it. that's the whole thing.ypix=<int-value>β the height of the output graphic, in pixels. sibling of the above, no drama.font=dialog|serif|...β picks the font used for textual annotation on the plot, which includes axes etc. at minimum you'll have these available:serifsansserifmonospaceddialogdialoginput
plus a whole range of system-dependent fonts, which might include:
dejavu_sansdejavu_sans_monodejavu_serif
fontsize=<int-value>β sets the font size used for plot annotations.fontstyle=plain|bold|italic|bold-italicβ gives a style in which the font is to be applied for plot annotations. your options are literallyplain,bold,italicandbold-italic. pick your fighter π«Άlegend=true|falseβ determines whether a legend is shown, telling you which plotting style is used for each data set. defaults totrueif there's more than one set, andfalseotherwise. it's smart like that.title=<value>β a one-line title to display at the top of the plot. main character energy for your chart πomode=swing|out|cgi|discard|autoβ determines how the drawn plot will be output β seeSUN/256. options are:swing: the plot will be displayed in a window on the screen. this plot is "live"; it can be resized and (except for old-style plots) navigated around with mouse actions in the same way as plots in TOPCAT. iconic behaviour tbh.out: the plot will be written to a file given byout, using the graphics format given byofmt.cgi: the plot will be written in a way suitable for CGI use direct from a web server. the output is in the graphics format given byofmt, preceded by a suitableContent-typedeclaration.discard: the plot is drawn, but discarded. there is no output. it's giving "did it even happen" πauto: behaves asswingoroutmode depending on presence ofoutparameter.
out=<out-file>β the location of the output file. this is usually a filename to write to. and ooh, special case: if it's equal to the special value-, the output gets written to standard output. πofmt=png|png-transp|gif|jpeg|pdf|svg|eps|eps-gzipβ graphics format in which the plot is written to the output file, seeSUN/256. one of:png: PNGpng-transp: PNG with transparent backgroundgif: GIFjpeg: JPEGpdf: Portable Document Formatsvg: Scalable Vector Graphicseps: Encapsulated PostScripteps-gzip: Gzipped Encapsulated PostScript
it may also default to a sensible value depending on the filename given by out. so it can just decide, and honestly good for it.
inN=<table>β the location of the input table. it can take one of the following forms:- a filename.
- a URL.
- the special value
-, meaning standard input. in this case the input format must be given explicitly using theifmtNparameter. heads up though: not all formats can be streamed in this way. β οΈ - a scheme specification of the form
:<scheme-name>:<scheme-args>. - a system command line with either a
"<"character at the start, or a"|"character at the end ("<syscmd"or"syscmd|"). this executes the given pipeline and reads from its standard output. this will probably only work on unix-like systems.
in any case, compressed data in one of the supported compression formats (gzip, Unix compress or bzip2) will be decompressed transparently. magic, lowkey β¨
ifmtN=<in-format>β specifies the format of the input table as specified by parameterinN. the known formats are listed inSUN/256. you can use this flag if you already know what format your table is in. if it has the special value(auto)(which is the default), then it'll attempt to detect the format of the table automatically. warning though: this can't always be done correctly, and when it can't, the program will exit with an error explaining which formats were attempted. π this parameter is ignored for scheme-specified tables.istreamN=true|falseβ if settrue, the input table specified by theinNparameter will be read as a stream. when you do that, you have to give theifmtNparameter. depending on the required operations and processing mode, this may cause the read to fail β sometimes it's necessary to read the table more than once, and that's just how it is. it is not normally necessary to set this flag; in most cases the data will be streamed automatically if that's the best thing to do. however, it can sometimes result in less resource usage when processing large files in certain formats (such as VOTable). this parameter is ignored for scheme-specified tables.cmdN=<cmds>β specifies processing to be performed on the table. the value of this parameter is one or more of the filter commands described inSUN/256. if you give more than one, they must be separated by semicolon characters (;). you can repeat this parameter multiple times on the same command line to build up a whole list of processing steps. the sequence of commands given this way defines the processing pipeline which is performed on the table. pipeline slay π§
commands may alternatively be supplied in an external file, by using the indirection character @. so a value of "@filename" causes the file filename to be read for a list of filter commands to execute. commands in the file may be separated by newline characters and/or semicolons, and lines which are blank or which start with a # character are ignored. a backslash character '\fR' at the end of a line joins it with the following line.
xdataN=<expr>β gives a column name or expression for the x axis data for table N. the expression is a numeric algebraic expression based on column names as described inSUN/256.ydataN=<expr>β gives a column name or expression for the y axis data for table N. the expression is a numeric algebraic expression based on column names as described inSUN/256.zdataN=<expr>β gives a column name or expression for the z axis data for table N. the expression is a numeric algebraic expression based on column names as described inSUN/256.auxdataN=<expr>β gives a column name or expression for the aux axis data for table N. the expression is a numeric algebraic expression based on column names as described inSUN/256.xlo=<float-value>β the lower limit for the plotted x axis. if you don't set it, a value will be chosen which is low enough to accommodate all the data. it's got you π«Άylo=<float-value>β the lower limit for the plotted y axis. if you don't set it, a value will be chosen which is low enough to accommodate all the data.zlo=<float-value>β the lower limit for the plotted z axis. if you don't set it, a value will be chosen which is low enough to accommodate all the data.auxlo=<float-value>β the lower limit for the plotted aux axis. if you don't set it, a value will be chosen which is low enough to accommodate all the data.xhi=<float-value>β the upper limit for the plotted x axis. if you don't set it, a value will be chosen which is high enough to accommodate all the data.yhi=<float-value>β the upper limit for the plotted y axis. if you don't set it, a value will be chosen which is high enough to accommodate all the data.zhi=<float-value>β the upper limit for the plotted z axis. if you don't set it, a value will be chosen which is high enough to accommodate all the data.
to be continuedβ¦ there's so much more and we are NOT done, bestie π
auxhi=<float-value>β the upper limit for the plotted aux axis π. If you don't set it, STILTS will just pick a value that's high enough to fit all your data, no stress.xlog=true|falseβ scale on the x axis.falseis the default and it's linear; flip it totrueand it goes logarithmic β¨.ylog=true|falseβ same deal for the y axis:false(the default) is linear,trueis logarithmic.zlog=true|falseβ and again for z π :falseby default β linear,trueβ logarithmic.auxlog=true|falseβ aux axis this time π¦:falseby default β linear,trueβ logarithmic.xflip=true|falseβ set ittrueand the x axis scale grows in the opposite sense from usual (so like, right to left instead of left to right) π.yflip=true|falseβ set ittrueand the y axis scale grows in the opposite sense from usual (right to left rather than left to right, etc.) π.zflip=true|falseβ set ittrueand the z axis scale grows in the opposite sense from usual (right to left rather than left to right, etc.) π.auxflip=true|falseβ set ittrueand the aux axis scale grows in the opposite sense from usual (right to left rather than left to right, etc.) π.xlabel=<value>β the label used to annotate axis x π·οΈ. If you don't supply a value for this parameter, a default based on the plotted data gets used instead.ylabel=<value>β the label used to annotate axis y π·οΈ. No value supplied? Then a default based on the plotted data steps in.zlabel=<value>β the label used to annotate axis z π·οΈ. Same story: skip it and a data-based default takes over.auxlabel=<value>β the label used to annotate axis aux π·οΈ. Skip it and, yep, a default derived from the plotted data is used.xerrorN=<expr>|[<lo-expr>],[<hi-expr>]β gives expressions for the errors on X coordinates for table N π€. These forms are permitted:<expr>: symmetric error value<lo-expr>,<hi-expr>: distinct lower and upper error values<lo-expr>,: lower error value only,<hi-expr>: upper error value onlynull: no errors
In every one of those cases, the expression is a numeric algebraic expression based on column names as described in SUN/256 π.
yerrorN=<expr>|[<lo-expr>],[<hi-expr>]β gives expressions for the errors on Y coordinates for table N π€. These forms are permitted:<expr>: symmetric error value<lo-expr>,<hi-expr>: distinct lower and upper error values<lo-expr>,: lower error value only,<hi-expr>: upper error value onlynull: no errors
Here too, the expression in each case is a numeric algebraic expression based on column names as described in SUN/256 π.
zerrorN=<expr>|[<lo-expr>],[<hi-expr>]β gives expressions for the errors on Z coordinates for table N π€. These forms are permitted:<expr>: symmetric error value<lo-expr>,<hi-expr>: distinct lower and upper error values<lo-expr>,: lower error value only,<hi-expr>: upper error value onlynull: no errors
And again, the expression in each case is a numeric algebraic expression based on column names as described in SUN/256 π.
auxshader=rainbow|pastel|...β decides how data from auxiliary axes gets displayed π. Basically it's always some kind of colour ramp. The available colour fixing options are:rainbowpastelstandardheatcolourhuegreyscalered-blue
and the available colour modifying options are:
hsv_hhsv_shsv_vintensityrgb_redrgb_greenrgb_blueyuv_yyuv_uyuv_vtransparency
txtlabelN=<value>β an expression that labels each plotted point π·οΈ. If you give one, the text (or number) that comes out of evaluating the expression gets written near every point that's plotted.subsetNS=<expr>β the selection criterion for the subset labelled "NS" π―. It's a boolean expression, and it can be the name of a boolean-valued column or literally any other boolean-valued expression. Rows where it evaluates true get included in the subset; rows where it evaluates false do not.nameNS=<value>β a name to use for a subset with the symbolic label NS π. This name is what shows up in the legend, if a legend is being displayed.colourNS=<rrggbb>|red|blue|...β defines the colour of the plotted markers π¨. The value can be a 6-digit hexadecimal number giving red, green and blue intensities, e.g."ff00ff"for magenta. Or it can be the name of one of the pre-defined colours β currentlyred,blue,green,grey,magenta,cyan,orange,pink,yellow,blackandwhite.
Also, for most purposes, either the American or the British spelling is accepted for this parameter name π.
shapeNS=filled_circle|open_circle|...β defines the shapes for the markers plotted in data set NS β. These shapes are available:filled_circleopen_circlecrossxopen_squareopen_diamondopen_triangle_upopen_triangle_downfilled_squarefilled_diamondfilled_triangle_upfilled_triangle_down
sizeNS=<int-value>β the marker size in pixels for markers plotted in data set NS π. If the value is negative, STILTS will attempt to use a suitable size depending on how many points there are to be plotted.transparencyNS=<int-value>β controls the transparency of plotted markers for data set NS π«₯. A value of <n> means opacity is only achieved (i.e. the background is only blotted out) once <n> pixels of this colour have been plotted on top of each other.
Minimum value is 1, which means opaque markers.
lineNS=DotToDot|LinearRegressionβ determines what line, if any, gets plotted alongside the data points π. The options are:null: no line is plotted.DotToDot: each point is joined to the next one in sequence by a straight line.LinearRegression: a linear regression line is plotted based on all the points which are visible in the plot. Heads up though β the regression coefficients take no account of points out of the visible range β οΈ.
linewidthNS=<int-value>β sets the line width in pixels for any lines drawn in data set NS π.
This only has an effect if the lineNS parameter is set to draw lines.
dashNS=dot|dash|...|<a,b,...>β defines the dash style for any lines drawn in data set NS ποΈ. To generate a dashed line the value can be one of the named dash types:dotdashlongdashdotdash
or it can be a comma-separated string of on/off length values, like "4,2,8,2". A null value means a solid line.
Only has an effect if the lineNS parameter is set to draw lines.
hideNS=true|falseβ says whether the actual markers plotted for each point should be hidden π. Normally this isfalse, but you might want to set ittrueif the point positions are being revealed some other way β for instance via error markers or lines drawn between them.errstyleNS=lines|capped_lines|...β defines how error bars (or ellipses, or...) get represented for data set NS when errors are being displayed π. Available options:nonelinescapped_linescapsarrowscuboidellipsecrosshair_ellipserectanglecrosshair_rectanglefilled_ellipsefilled_rectangle
grid=true|falseβtrueand grid lines are drawn on the plot;falseand they're simply not there β¨.antialias=true|falseβ controls whether lines get drawn using antialiasing, where applicable π§. If lines are going to a bitmapped-type graphics output format, setting this totruesmooths them out by using gradations of colour for diagonal lines, whilefalsejust sets each pixel in the line to on or off. For vector-type graphics output formats, or in cases where no diagonal lines are drawn, the setting of this parameter has no effect. Setting ittruemay slow the plot down slightly.sequence=<suffix>,<suffix>,...β lets you control the sequence in which different datasets and subsets get plotted π. This affects which symbols are plotted on top of β and therefore potentially obscure β which others. The value of this parameter is a comma-separated list of the "NS" suffixes which appear on the parameters that apply to subsets. The sets you name will be plotted in order, so the first-named one is at the bottom (most likely to be obscured). Note that if this parameter is supplied, then only those sets which are named will be plotted, so this parameter can also be used to restrict which plots appear (though it may not be the most efficient way of doing that π). If no explicit value is supplied for this parameter, sets get plotted in some sequence decided by STILTS (probably alphabetic by suffix).fog=<float-value>β okay so this one sets the level of fogging, which is literally just a visual indication of depth. Objects plotted further away from the viewer appear more washed-out by a white fog. The default value gives a bit of fogging; increase it to make the fog thicker, or set it to zero if no fogging is required. lowkey atmospheric π«οΈphi=<float-value>β angle in degrees through which the 3D plot is rotated around the Z axis prior to drawing. spin it, bestie πtheta=<float-value>β angle in degrees through which the 3D plot is rotated towards the viewer (i.e. about the horizontal axis of the viewing plane) prior to drawing. tilt it like you mean it β¨
π SEE ALSO π
If the package stilts-doc is installed, the full documentation SUN/256 is available in HTML format: file:///usr/share/doc/stilts/sun256/index.html
β¨ VERSION β¨
STILTS version 3.5.4-debian
This is the Debian version of Stilts, which lack the support of some file formats and network protocols. For differences see file:///usr/share/doc/stilts/README.Debian
no cap, that's the tea π«
π AUTHOR π
Mark Taylor (Bristol University)
That's the whole page, bestie π signing off from STILTS-PLOT3D(1), Mar 2017 edition. Stay iconic, stay Unix-y π¦π
π¦ where this page comes from
- ubuntu stonking: stilts 3.5.4-1 Β· LGPL-2.1-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms