Scatter49 v3 - Scatter Plots for the HP49

Luis Morales Boisset - Madrid. Spain. 2001/05/09

 

1. Overview

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.

 

2. Disclaimer

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.

 

 

3. Backup

This software has been tested by me and seems to be safe but like always please backup your memory before trying it. Its done 95% in SysRPL and 5% UserRPL (commands like COL ROW) with MASD so if there is any bug I havent detected you could loose you data L

 

 

4. History and Credits

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 ).

4.1 Version History

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 Im 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 Its 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.

5. Installation

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:

1745 DEATTACH [ENTER]

:port:1745 PURGE [ENTER]

 

Other way of accessing and uninstalling this library is with the 49s Filer which is pretty good in this. Look for it in the port were you stored it.

 

6. Command Description

 

SctPlots:

 

This command its 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 dont 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 its 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. Its done with the 49s command AUTO.

        Axes: If set the Axes are drawn at the end of the plot.

 

SctMenu

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 49s 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).

 

CIRCLEPLOT

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 plots 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

 

 

BOXPLOT

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 youll get:

 

BOX2PLOT

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).

 

 

DIAMANTPLOT

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).

 

 

 

TIMESPLOT

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).

 

 

TIMES2PLOT

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).

 

CROSSPLOT

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).

 

BALLPLOT

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).

 

 

ERRORPLOT

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.

 

Its intended to represent those magnitudes that got associated an error in the measure or in the calculation and its 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

 

BCGPLOT

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

LINEPLOT

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.

 

 

 

7. Final Remarks

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.

Its completely done in the HP49 with Masd, Emacs, InFormBuilder and the help of Nosy.

 

I really hope this will useful for you.

 

 

8. Acknowledgements

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 Erabless 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.

 

 

9. Contact

As I explain in the disclaimers part this is freeware but I spent a lot of time on it so Ill 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

lboisset@arrakis.es