The xyplotter2 can plot text strings read from a table file. From the user's point of view, the only real difference is that what is usually used as the symbol type in the List.* file is now used as the column number to used for the text strings to be plotted. As we are always plotted text strings in the "text" mode, then we no longer need a specific symbol type.
To make the plot: % xyplotter2 List.1 Axes.1 N Here are the supporting files: % cat tab1.parlab x X value xe X error y Y value ye Y error pn Point Name xoff Xoffset yoff Yoffset % cat tab1.table # data 1.0 0.5 1.0 0.5 Hbeta 1.0 3.2 4.0 0.5 5.0 0.5 Dog 4.0 5.5 8.0 0.5 6.0 0.5 Cat 8.0 6.5 % cat tab2.parlab x X value xe X error y Y value ye Y error pn Point Name xoff Xoffset yoff Yoffset % cat tab2.table # data 6.0 0.4 1.0 0.5 A1 7.0 7.2 5.0 0.7 9.0 0.5 A2 5.5 7.4 % cat List.1 tab1.table 1 3 2 4 errorbar b . 1 errorbar tab1.table 1 3 0 0 point m o 50 point tab1.table 1 3 0 0 pointopen r o 150 pointopen tab1.table 1 3 0 0 line g - 1 line tab1.table 1 3 6 7 text k 5 30 text tab2.table 1 3 6 7 arrowtext k 5 10 arrowtext % cat Axes.1 Sample from xyplotter2 using the new "text" capability 0.0 10.0 X axis name 0.0 10.0 Y valueYou can click and drage the files and commands above to reproduce this plot (diplayed in the main section of this cocument).
I put together some notes on my xyplotter routines and they are archived below.
This file began as: /home/sco/xyplotter_disect/S/README.xyplotter_disect
I make a simple table file: tab1
When I run xyplotter_auto, I interactively specifiy that I which columns I
want to plot. If I specifiy that I want to plot error bars, then it asks me
the names of the columns I wan to use as error bars.
tab1.table 1 3 2 4 errorbar r . 1 PPP
a b c d e f g h i j
a = name of the table file to use as input
b = column number of the X value
c = column number of the Y value
d = column number of the X error (usually = 0)
e = column number of the Y error (usually = 0)
f = type thing to plot, can be: line, point, pointopen, errorbar
g = color designation (single letter)
h = style of symbol or line type
i = size of a symbol (integer)
j = name to be used in the symbol legend
****** Change as of Aug2020
When the plot typpe (f) is "text", then the calue
of column "h" is the column number in the table file
of the text string to be plotted.
The last thing that xyplotter_auto shows us is the command string that will
will be used to make the plot. This is the command line for the python coe
named pxy_SM_plot.py:
pxy_SM_plot.py STYLE 1.00000 8.00000 1.00000 6.00000 SHOW
After this first run, we have two new files present: Axes.1 List.1
We can change either of these files and rebuild the plot.
% cat Axes.1
Test
1.00000 8.00000 X value
1.00000 6.00000 Y value
% cat List.1
tab1.table 1 3 2 4 errorbar r . 1 PPP
At this stage I could change my files and replot calling only xyplotter. The xyplotter
file can be called multiple times and will progressively add lines to the List.1 file
as we add more data sets to be plotted. For now, I just cahnge a few properties and
plot the same three data points.
% cat Axes.1
Here is a second pass at the plot
0.0 10.0 X axis name
0.0 10.0 Y value
% cat List.1
tab1.table 1 3 2 4 errorbar b . 1 PPP
To make my new plot"
% xyplotter List.1 Axes.1 N
Now I want to add a second second set of data. Actually, I'l l
use the same three points. I just want to plot then as large open circles.
All I have to do is add a second line to the List.1 file that that specifies
this new addition:
% cat List.1
tab1.table 1 3 2 4 errorbar b . 1 PPP
tab1.table 1 3 0 0 pointopen r o 100 Line2
Likewise, to finish out the way we can plot things:
% cat List.1
tab1.table 1 3 2 4 errorbar b . 1 Line1
tab1.table 1 3 0 0 pointopen r o 100 Line2
tab1.table 1 3 0 0 line g - 1 Line3
If I run the above code in debug mode I can see the files made for running
the python code pxy_SM_plot.py:
% pxy_SM_plot.py STYLE 0.0 10.0 0.0 10.0 SHOW
% cat STYLE
Here is a second pass at the plot
X axis name
Y value
XY.plot.1
XY.plot.2
XY.plot.3
% cat XY.plot.1
errorbar b . 1
Line1
1.0 0.5 1.0 0.5
4.0 0.5 5.0 0.5
8.0 0.5 6.0 0.5
% cat XY.plot.2
pointopen r o 100
Line2
1.0 1.0
4.0 5.0
8.0 6.0
% cat XY.plot.3
line g - 1
Line3
1.0 1.0
4.0 5.0
8.0 6.0
The first file (named STYLE) is just setting up the axis labeling and ranges.
Then it just lists the input file built for each data set. Each data set will
be plotted in the pxy_SM_plot.py code by the function: def plot_a_set(infile,verbo)
In this call infile is the name of the file (listed in our STYLE file) and
verbo is a flag that tells the code to spit out verboze messages if desired.
Here is a good start
===========================================================
I wrote new version that uses "text" type: pxy_SM_plot2.py
I do this example in: /home/sco/xyplotter_disect/T1
% cat STYLE
Developing text mode
X new mod
Y new mod again
XY.plot.2
XY.plot.3
XY.plot.4
% cat XY.plot.2
text b . 40
Line1
1.0 1.0 1.5 1.5 P1
4.0 5.0 4.0 5.5 T2
8.0 6.0 8.5 2.5 Ng
% cat XY.plot.3
pointopen r o 100
Line2
1.0 1.0
4.0 5.0
8.0 6.0
% cat XY.plot.4
line g - 1
Line3
1.0 1.0
4.0 5.0
8.0 6.0
% pxy_SM_plot2.py STYLE 0.0 10.0 0.0 10.0 SHOW
===========================================================
Now I make xyplotter2 that will run pxy_SM_plot2.py.