© Luis Morales Boisset - Madrid. Spain. 2001/05/09
This is a library intended to plot
series of points with different styles of marks. The idea is to extend the
capabilities of the 49's scatter plot type. When you work in a laboratory -for
example- and got a series of measures it's impossible to plot them and
distinguish the points. Here comes this library to help you.
The library is distributed 'as is' and is subject to change without
notice. No warranty of any kind is made with regard to the software or
documentation. The author shall not be liable for any incidental error or
consequential damages in connection with the software and/or the documentation.
Scatter49 can be freely distributed provided this manual is distributed
with it without any modification. Scatter49 can't be used for any commercial
purpose without written permission from the author. This implies the user
shouldn't be charged for the use of this software.
Remember as well that I only work on RPN mode so no test is made for ALG
mode. But the few times I try to deal with matrix on this mode makes me suppose
it will be very complex to use in ALG mode if it will run.
English is not my native language so please excuse all my linguistic
mistakes.
This software has been tested by me
and seems to be safe but like always please backup your memory before trying
it. It’s done 95% in SysRPL and 5% UserRPL (commands like COLà ROWà) with MASD so if there is any bug I
haven’t detected you could loose you data L
The idea of this software is taken from one done for the HP48sx long
time ago: LabTools which is available in www.hpcalc.org
That one does more things that mine but this is what I found really useful.
So in July'1994 I did my first SysRPL version of that software for my
old sx and use it a lot in laboratory practices. Many years late comes the 49 and
I start porting it to my new calc but adding more mark styles.
So my credit goes for:
-
Lars
Andreas Gundersen ( Labtools in 1993 ).
v3 First
Public Release. Added two kind of GUIs.
More checks done.
v2 Private version. First stable version but no GUI.
4.2 To Do List
The most important thing to improve is the interface to the commands. This version comes with two different interfaces but I’m not satisfied with non of them. I have in mind an interface which will allow you two define and plot multiple series at the same time. Sizing the plot for all of the series. But It’s been complex for me. So I thing that it will very slow except there is good response for the people, so if you like this software and want more please tell me.
This program is a library. Its number is 1745 which I hope is not
used. To install it you should transfer
it to your HP in binary mode. Recall its contents and store it in any of your
ports. Now you can purge the variable from where you download it. Then you
should restart your HP.
At this point you could access to its menu in the Lib menu [LS][2] hint
[NXT] if necessary. Or using 1745 MENU.
To uninstall it you should do:
:port:1745 PURGE [ENTER]
Other way of accessing and
uninstalling this library is with the 49’s Filer which is pretty good in this.
Look for it in the port were you stored it.
SctPlots:
This command it’s the main command of the library. It displays an input
form which allows you use the plotters included in the library comfortably.
It let you select the mark style, fulfil the columns to use from DAT
(the variable where the data of the statistics system of the calculator is
stored), to decide few parameter of the plot and launch it.
J
The plotters in this library don’t
require any relation with the statistics system of the calculator this command
integrate them with it using its data to plot.
In the input form you have this
fields:
·
Type: To select the style of the plot. This is the mask to be used.
·
Cols: To specify the columns to be used
in the plot.
o
Horizontal: It sets which column is used for
the horizontal values.
o
Vertical: It sets the column used for the
vertical values.
o
Range: It says which column is used for
the range plots. It only takes place in the ERROR and BCG styles. But it’s
value is always checked (to be a valid column index).
·
Conn: If set the points are drawn
connected. So for example a SCATTER with this sets is a LINEPLOT.
·
Erase: If set the contents of PICT is
cleared before plotting.
·
Auto: If set PICT is adjusted to fit the
plot. It’s done with the 49’s command AUTO.
·
Axes: If set the Axes are drawn at the
end of the plot.
This command is for those ones (like
me) that feel better using softmenus. It displays a menu which helps in the
usage of the plotters. It got an entry to store, edit or recall the DAT
and following entries for all the command in the library.
If you press the menu label directly
it will plot the provide column arguments (referred to the data on DAT)
with the existing PICT configuration.
Pressing Left Shift [LS] menu label
it erases the picture, auto size the picture settings (using the 49’s default
capabilities) and then do the plot
adding the axes.
If you user Right Shift [RS] then it
cleans the PICT and then draws with the existing configuration (PPAR).
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a circle as mark style. It use the
current settings of PICT (PPAR data).
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
So if you start with the default
plot’s settings (or in an empty directory) and with a clean PICT you can check
the next:
àCIRCLEPLOT à LEFT ARROW à
And if you ERASE and try the
next:
à CIRCLEPLOT à LEFT ARROW à
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a small box as mark style.
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
If you do the same example but with
BOXPLOT you’ll get:
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a big box as mark style.
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a diamant as mark style.
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a small times-sign as mark style.
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a big times-sign as mark style.
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a small cross as mark style.
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
This command plots the given columns
of the given matrix (not required DAT!)
with or without connecting the points using a small ball as mark style.
Its stack diagram looks like this:
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values and finally the %connect is a real that says if the point should be
connected (1) or not (0).
This command plots the given columns
of the given matrix (not required DAT!)
with the provided error column and with or without connecting the points using
a cross which vertical element represent the real value of the error.
It’s intended to represent those magnitudes that got associated an error in the measure or in the calculation and it’s very useful to see if the solution approximated enters into the error band:
“2 ± .5”
Its stack diagram looks like this:
Level 5 |
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%error |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values. %error is the index of the columns of the error. And finally the
%connect is a real that says if the point should be connected (1) or not (0).
If you start with the default settings:
à ERRORPLOT à LEFT ARROW à
This plot style could be named differently in your specific field. What
it takes is a point and a value which gives a weight to the point and plots a
circle with a radius based on the weight.
Its stack diagram looks like this:
Level 5 |
Level 4 |
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
%weight |
%connect |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values. %weight is the index of the columns of the weight of the point; this
values are analysed and mapped in a range of radius between 2 and 30 pixels. And
finally the %connect is a real that says if the point should be connected (1)
or not (0).
If you start with the default settings:
à ERRORPLOT à LEFT ARROW à
This command does a line plot. This is the scatter plot with the dot
connected.
Its stack diagram looks like this:
Level 3 |
Level 2 |
Level 1 |
|
Level 1 |
[[data]] |
%x |
%y |
à |
nothing |
Where [[data]] is the matrix from
where the data is going to be taken. %x is a real indicating the index of the
column (in the matrix) of the horizontal values. %y is a real index of the vertical
values.
Library is ID 1745. Its size is 5695.5 bytes and its checksum is #EF9Fh.
The library have done in SysRPL but I use certain UserRPL commands.
It’s completely done in the HP49 with Masd, Emacs, InFormBuilder and the
help of Nosy.
I really hope this will useful for you.
I would like to thank to:
· Mika Heiskanen. His Entries.src
discovered me the insides of my 48sx.
· Alex Ramos. His RPL++ compiler let
me start to work in SysRPL without the complexities I found with HP ones.
· Detlef Mueller and Raymond Hellstern
for RPL48
· C.Bourgeois (BOUHP). The ‘Kernel’ stack replacement
discovered me a new work and force me to do a really good job on my sx.
· Jean Yves Avenard. StringWriter! How do you do it?
· Bernard Parisse. The ALGB (the
Erables’s father) makes me realize that the 48 could do magic.
· ACO for the Hp49.
· Carsten Dominik and Peter Geelhoed
for Emacs
· Jurjen N.E. Bos for Nosy.
· Steen S. Schmidt for InFormBuilder.
As I explain in the disclaimers part this is freeware but I spent a lot
of time on it so I’ll really thank any email telling me what do you think about
it of if you find any bug or have any idea to extend it.
Luis Morales Boisset