The CoPlot Manual

Just getting started with CoPlot? Please read the quick introduction.
See also: the Index, the list of Commands Not On The Menus, the list of Other Topics, and the CoStat Manual (costat.htm).
Copyright © 1998-2002 CoHort Software. Version 6.102.

Menu Tree

File
New Window
New
Open
Save
Save As
Page Setup
Print
1-9
Exit
Datafile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Create
Big Text
Dimension
Ellipse
Graph
  Graph Array
Image
Path
Text
  Rectangle
 
Bar Graph
Pie Chart
Edit
Pick One
 
Any Type
Big Text
Dimension
Ellipse
Graph
  Graph Array
Image
Path
Text
 
Objects
Points Move
Points Boxed Move
Change Color
Exchange B&W
Drawing
Background Color
Coordinates
  Draw Grid
Groups
List Of Files
Load Fonts
Other
Zoom Box
  Zoom 1
Screen
Redraw
Automatic Redraw
Dialogs Inside
Fix MenuBar
Font Size
Language
Path Aliases
Show CoText
Text-Only Buttons
Macro
Record
  Stop Recording
  Pause Recording
  Resume Recording
  Delay
Play
  Stop Playing
  Resume Playing
Edit
Button Bar 1/2/3/4 Visible
Clear All Buttons
Help
Lesson 1
Lesson 2
Lesson 3
Lesson 4
Lesson 5
Lesson 6
Switching From DOS
Online
Register
View Error Log
About


Menu Tree / Index

Other Topics

Topics Related to CoPlot in the CoStat Manual (costat.htm)


Menu Tree / Index  

Copyrights

Beyond meeting the legal requirements below, we also wish to thank the non-CoHort individuals and groups which have contributed to this software by making their graphics and Java code available. Their efforts and generosity have greatly improved this software.

The PPM and GIF image encoders in CoPlot are from the JPM package, and are copyright (C) 1996 by Jef Poskanzer (contact jef@acme.com or www.acme.com). All rights reserved. Redistribution and use of JPM in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

The PNG encoder in CoPlot is from J. David Eisenberg of www.catcode.com and is distributed under the GNU LGPL License (http://www.gnu.org/copyleft/lesser.html). To meet our obligation to that license, we hereby let everyone know that they can get the source code for the PNG encoder from www.catcode.com. We recommend one change to the code to dramatically speed up the encoding: on the line that sets "nRows =", change the constant "32767" to "1000000" or some other larger number. The disclaimer below also applies to the PNG encoder.

The JPG image encoder (and its associated classes) in CoPlot are Copyright (c) 1998, James R. Weeks and BioElectroMech (James@obrador.com or www.obrador.com). The disclaimer below also applies to the JPG image encoder.

The JPG image encoder in CoPlot is based in part on the work of the Independent JPEG Group (jpeg-info@uunet.uu.net), which is copyright (C) 1991-1996, Thomas G. Lane. All Rights Reserved except as specified below: the accompanying documentation must state that "this software is based in part on the work of the Independent JPEG Group". The disclaimer below also applies to the IJG code.

Toolbar Icons: The images used for most of the icons for the toolbar buttons in all the CoHort programs are copyright (C) 1998 by Dean S. Jones (contact deansjones@hotmail.com ) and are part of the Java Lobby Foundation Applications Project jfa.javalobby.org/projects/icons/index.html.

Icons: Most of the icons in CoPlot which are accessed via Create : Image : Browse : Icons were originally public domain icons, but we have revised many of them and created some original icons. If you know that one of the icons was not public domain and can't be redistributed, please let us know and we will remove it from the collection. The icons that we created and the Icons*.gif files are copyright (C) CoHort Software, 2000. We grant licensed users of our software permission to use the individual icons for any purpose when accessed via CoPlot, but we do not grant anyone the right to modify or redistribute the Icons*.gif files. If you need icons for some purpose other than use in CoPlot, please go to the public domain icon collections on the web (for example, www.MediaBuilder.com).

The external Windows program DATALOAD.EXE which is used by CoStat's File : Open : MS Windows procedure was written by and put in the public domain by David Baird (BairdD@AgResearch.CRI.NZ). Thank you, David Baird.

The remainder of CoText, CoStat, and CoPlot and their manuals are copyright (C) 1998-2002 by CoHort Software (contact info@cohort.com or www.cohort.com). All rights reserved.

Disclaimer

This software is provided by the author and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the author or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

License

The Java byte code (in the .class files which are collected in the cohort.jar file) used to distribute this software is the property of CoHort Software and its suppliers and is protected by copyright law and international treaty provisions. You are authorized to make and use copies of the byte code only as part of the application in which you received the byte code and for backup purposes. Except as expressly provided in the foregoing sentence, you are not authorized to reproduce and distribute the byte code. CoHort Software reserves all rights not expressly granted. You may not reverse engineer, decompile, or disassemble the byte code.

Further, CoHort Software authorizes licensees to use this software as they would use a book. Like a book, this software may be used by only one person on one computer at a time.

What does the license mean? Here are some examples of legitimate uses of the software:

Please buy a license. Please respect the license. Licenses can be purchased from CoHort Software (800 728-9878, info@cohort.com, www.cohort.com). CoHort Software is a small company whose employees earn a living writing, selling, and supporting this software. This is commercial software. If you like this software and want to use it, please buy a license. That pays us for the work we have done and allows us to keep working to improve the programs.


Menu Tree / Index  

Contacting CoHort Software

Please feel free to contact CoHort Software with any questions, comments, suggestions. See the contact information below.

   

Technical Support

Suggestions - We appreciate information about program bugs or suggestions for improvement. Our software has benefitted greatly from user and beta tester comments. Our thanks go out to all who have made suggestions in the past.

Free support - CoHort Software continues to offer free technical support by email, phone, fax, and mail. This encourages us to make good software and manuals.

Before you contact us about a problem, please:

  1. Look through the manual to see of you can find the solution there.
  2. Ask a friend who also uses the program. There are definite advantages to having a knowledgeable user sitting right beside you to help you work through a problem.
  3. Try to find a solution by experimenting with the software.
  4. If possible, make sure you can precisely describe and reproduce the problem.
  5. Use Help : About to determine the version number of your copy of the program.

Contacting CoHort Software for technical assistance (or any other reason):

Upgrade notices: Registered users will be mailed information when new versions are available. Information about our programs is always available at our web site: www.cohort.com.


Menu Tree / Index  

Acknowledgments

This version of the CoHort programs is gratefully dedicated to my parents, Jane and Bill Simons. Without their generosity and support, this version would not have been completed.

Thanks to my son, Nathan Simons, who brings so much joy to my life.

Thanks to all of the users who have sent comments and suggestions. The programs are vastly better because of the changes made as a result of those comments and suggestions.

Thanks to the translators who edited the machine translated help messages.

Thanks to the people outside of CoHort Software whose code or graphics is included in the programs (see the Copyrights section).

Thanks to all of the computer scientists, statisticians, authors, etc. for the work which has formed the basis of these programs. We "stand on the shoulders of giants".


Menu Tree / Index      

Getting Started

Welcome to CoPlot. This is the quick introduction. There are also lessons built into CoPlot (see Help : Lesson 1).

What is CoPlot? CoPlot is a program for making drawings, notably drawings with graphs. To use it, you create different types of objects (lines, filled areas, markers, text objects, graphs, etc.) and then edit the attributes of the objects till they look like you want them to look.

Installation - For Windows computers, insert the CoPlot CD into the computer and follow the on-screen instructions. For non-Windows computers, please download and install the trial version of CoPlot from www.cohort.com; it is actually the same as the CD version. The download pages at the web site also have information about command line options.

Importing Data (or typing it in) - Datafiles are the source of data to be plotted on graphs. CoPlot has slots to hold up to 15 datafiles. Choosing one of the slots on the Datafile menu lets you edit the datafile in that slot. The datafile editor that is built into CoPlot is called CoStat -- see the CoStat Manual (costat.htm). CoStat also has many options for editing and transforming the data and for doing statistical procedures (like regressions) with the data.

To load data into a datafile slot, choose the slot (Datafile : x), then use CoStat's File : Open to load data from an existing data file, or File : New to set up a new, empty, datafile (so you can type in the data).

After you have loaded data from a datafile, you can use CoPlot's Create : Graph to create a graph. The data will be available for plotting on the graph.

To clear a datafile slot, choose the slot (Datafile : x), then use CoStat's File : Close.

Create Drawing Objects - Use the options on the Create menu to create different types of drawing objects:

All of the objects except Path and Image objects have text labels. The text can include embedded text tags (which control bold, italics, underlining, font changes, size changes, etc; see the '<>' button on the dialog boxes) and character entities (HTML-like names for accented characters, Greek characters, and mathematical symbols; see the '&' button on the dialog boxes).

Edit Objects - There are many ways to edit existing objects, many of which are listed on the Edit menu:

The Drawing Menu has options that affect the entire drawing, including:

The Screen Menu has options which affect the appearance of the program and the drawing on your computer's screen. These preferences are automatically saved (in a file called coplot.pref) for the next time you use CoPlot.

The Macro Menu has options to let you record and play a macro (a series of user actions stored in a file so they can be replayed later).

The Help Menu provides different types of information about the program and lessons to help you get started using the program.

Hints

If you can't figure something out, try to find and read the relevant section of the manual (see the Menu Tree and the Index). If that doesn't work, ask a knowledgeable coworker or contact technical support.


Menu Tree / Index  

Known Bugs

Garbled Menu Bar Words -   Sometimes, when the program first loads, the headings on the menu bar are wrong (the text is from other places in the program and garbled). When the problem occurs, use 'Screen : Fix Menubar' to fix the menubar. In extreme cases, you need to use 'Screen : Fix Menubar' two or three times.


Menu Tree / Index        

Commands Not On The Menus

Listed below are the commands (often called shortcuts) which are not listed on the menus.

Right click on an object to edit it.
If no dialog box is active, you can edit an object by just clicking on or near the points used to create the object (just like Edit : Pick One). You can then edit that object's attributes. You can also pick additional objects of the same type to edit simultaneously.
Move the '+' cursor.    
The '+' cursor appears when the grid system is in effect (see Drawing : Coordinates). It indicates the location of the nearest grid point. When it appears, you can move it with your mouse or the arrow keys on your keyboard. You can also press Enter (like the left mouse button) or Esc (like the right mouse button). If you use the arrow keys and then move the mouse (even a tiny bit), the '+' will jump back to near the mouse's cursor.
Scroll bar scrolling:

Scroll a little up, down, right, or left.  
Click on the arrow buttons at the ends of the scroll bars.
Scroll up or down a screenfull.
Press the PgUp or PgDn keys. Or, click above or below the vertical scrollbar's active-area-bar.
Scroll to the top or bottom of the drawing.
Press the Ctrl PgUp or Ctrl PgDn keys. Or, drag the vertical scrollbar's active-area-bar to the top or bottom of its range.
Scroll left or right a screenfull.
Press the Home or End keys. Or, click to the left or right of the horizontal scrollbar's active-area-bar.
Scroll to the far left or far right of the drawing.
Press the Ctrl Home or Ctrl End keys. Or, drag the horizontal scrollbar's active-area-bar to the far left or right of its range.
+ - Buttons
Many dialogs have a textfield widget for entering a number and a '+' and a '-' button to the right. The buttons provide a fast way to increase or decrease the value. In most cases, if you click on the buttons, the program will change the value in the textfield to be a nice number (one with few significant digits) that is 10 - 20% larger or smaller.

Sometime, you might wish you could just press on the + or - button with your mouse and have the value rapidly increase or decrease. You can't, because mouse presses on buttons don't work that way. Instead, click on the button once (so it has focus) and then hold down the Enter key. That will have the desired effect.

. Buttons
Some dialogs have a textfield widget for entering a number and a "." button to the right. These buttons provide a fast way to return to the default value for that attribute.
Press Esc to close any dialog
Press the Esc (Escape) button to close any dialog box just as if you had clicked on the dialog's upper right close-window icon.

Keyboard Shortcuts in Dialog Boxes

You can use various keystrokes to navigate and manipulate the widgets in a dialog box:

In textfields, you can select text and do various things with the selected text. To select a block of text, drag with the left mouse button, or use the shifted arrow keys (Shift Left, Shift Right, Shift Home, Shift End). As you extend the selection, the caret moves, too. To select all of the text, press Ctrl A. After selecting text:


Menu Tree / Index  

Frequently Asked Questions

How do I install CoPlot? For Windows computers, insert the CoPlot CD into the computer and follow the on-screen instructions. For non-Windows computers, download and install the trial version of CoPlot from www.cohort.com; it is actually the same as the CD version. The web page includes information about command line options.

How do I get started using the program? I don't understand how this program works. Please read the lessons which are built into the program (start with Help : Lesson 1). It may be useful to read the lessons again after you have been using CoPlot for a few weeks or months; you will probably notice things you didn't notice the first time you read them.

Where is the 'cohort' directory? The cohort directory is the directory on your hard disk where you installed the CoHort program files. On Windows, this is often c:\cohort6 or c:\Program Files\cohort6. On Unix, this is often /bin/cohort6.

What were the design goals of CoPlot? CoPlot was designed to be a very flexible, easy-to-use program for making publication-quality scientific graphs and technical drawings. Given limited resources, we have put our efforts towards these goals and less effort toward fancy looking menus, etc. While CoPlot is very good for creating many other types of drawings (for example, flow charts, chemical symbols, and electrical schematics), CoPlot probably won't ever have all the features of programs dedicated to those purposes. So if you make flow charts all day long, every day, you might consider getting a program dedicated to that purpose. CoPlot can't be everything to everybody, but it can strive to be the best for making scientific graphs and most types of technical drawings.

How do you set your prices for CoStat and CoPlot? We have always tried to set a low price to encourage more people to use our programs. Also, we hope that low prices discourage people from using pirated copies - legitimate owners get printed manuals, technical support, notices of upgrades, and free minor upgrades. Although our software is more expensive than academic books, we consider our software to be a good deal: you get software (which is a lot of work to make, even if copying the disks is cheap), you get a manual, and you get technical support. The earnings from each version are used to fund the development of new versions and new programs.

Why don't you have an academic or government discount? We knew ahead of time that we would be selling the programs mostly to academics and the government, so we tried to set a low standard price.

Why is technical support free? This encourages us to write good manuals and good software and to offer efficient technical support. But more than that, we don't like it when we have to pay a small fortune for technical support for the software that we use at CoHort Software. We didn't want to do that to our customers.

We don't have a phone queue. When someone answers, they will immediately be able to help you. If you do get a busy signal, wait a few minutes and try again.

How should I cite your programs in my paper/book? We appreciate it when you cite our programs and when you send us copies of papers and books created in part with our programs. Citation formats vary, but you can use variations of:

   CoHort Software, 2002. CoPlot. www.cohort.com. Monterey, California.

We also appreciate it when you mention our software and have link to www.cohort.com on your web site.

What are the advantages to HTML-based online documentation?

Unfortunately, there are disadvantages, too:

While you may print a copy of the online manual for your own use, we discourage it. The printed manuals from CoHort Software are printed on both sides of the paper, are nicely bound, cost the same or less than the online manuals printed on your printer, and, most important, have page number references instead of hypertext links (which are useless on paper).

We offer both printed and online documentation. We encourage you to use the online version whenever possible, since it is more up-to-date. If you use the online version often, you might want to add a bookmark to coplot.htm in the cohort directory.

Raster vs. Vector: Why is there no Fat Bits option? Because CoPlot is an object-oriented (vector) drawing program, you will not find some of the procedures commonly available in pixel-based paint programs - notably block moves of pixels, "fat-bits" editing, and "paint bucket" fills. These options are replaced by superior features for an object-oriented system:

Does CoPlot come with any clip art? No, but you can import clip art from a variety of sources. The best clip art is vector-based (for example, .cgm and .eps files), since the images can be scaled to different sizes without degradation of quality. (Although some "vector" files were originally scanned images, so they do degrade when scaled.) These can be imported into the current drawing with Edit : Any Type : Add File. For image clip art, use Create : Image to display the images.

How do I get a drawing on paper (for example, a map) into CoPlot? There are two approaches:

  1. Use a digitizer to digitize it. This is the traditional way. Digitizers are boards (12x12 inches up to 4x5 feet) with a stylus or puck. You mount the drawing on the digitizer and then use the stylus/puck like a mouse to trace the drawing. If you already have a digitizer and the drawing isn't too complex, this is a good approach.
  2. Scan the image and display it with CoPlot's Create : Image. Then create other drawing objects (mostly Path and Text objects) to recreate the important features of the image. This works very well. And more people have access to a scanner than to a digitizer. And it is easier to have someone scan a drawing for you (it takes about 1 minute) than to borrow a digitizer for a few hours.

Doesn't CoPlot support freehand drawing? Freehand drawing (also called streaming mode and used for tracing) is where you move the mouse (or digitizer) and the program saves all mouse movement as a line. Sorry, no. Freehand drawing is easy to use, but dutifully records all of the little jiggles in your hand's movement. The result is very hard to edit. We think it is easier to create a Path object and mark just the important points. That way, it is all under your control. By setting the Path Type to Spline, you only need to mark a few points to get a complex, smooth curve. Later, that curve can be edited easily with Edit : Path : Move One Point -- moving any of the original points will adjust the line near that point.

What can I do about the dialog boxes obscuring the drawing? We recommend that you don't make the main window full screen. Leave it where it is and the size it is when it is first shown. Then, the dialog boxes will appear to the right of the main window and not obscure the drawing.

How do I change the xxx attribute of a yyy object? In almost every case, you need to pick the object that you want to change (via Edit : Pick One or some other means) and the desired attribute will be on that dialog box. The exceptions are:

Why are nearby parts of the drawing damaged when I make changes to this object? When you make changes to an object, CoPlot erases the old version of the object and then draws the new version. When the old version is erased, other parts of the graph that overlapped the old version will also be erased. Thus the drawing may appear to have imperfections after a change. To redraw the drawing perfectly, use the Redraw button on the toolbar.

These objects are right on top of each other. How can I pick the object I want to edit? Each of the Edit : Xxx dialog boxes has several Pick procedures. Different pick procedures are useful at different times. Pick One is fast and easy to use when the objects are separate and therefore easy to pick.

The pick option which is best at handling difficult situations is Pick List, which shows you a list of objects which a checkbox beside each object to indicate if it is picked or not. There is also a Make Invisible (Make Visible) button at the bottom of the Pick List dialog box which makes the currently picked objects temporarily invisible (or visible again).

This new object partly obscures this older object. How can I change that? Objects in a drawing are stored in a list. Initially, they are stored in the order in which they are created. When the drawing is redrawn, the objects are drawn in the same order as the list. To move an object to the beginning of the list, so it will be drawn first and be partially hidden by other objects (if they overlap), pick the object and then use the Hide button on the Edit : xxx dialog box.

There is also a button labelled Show which moves the picked objects to the end of the list, so that they will be drawn last and (possibly) hide other objects (if they overlap).

Related topic: You can change the order in which the parts of a graph are drawn.

How do change the drawing's position on the page? There are two approaches:

  1. Move the drawing area. This approach is more appropriate when the drawing area is small relative to the size of the page. This will not change the coordinates of the objects.
  2. Move all of the objects within the drawing area. This approach is more appropriate when the drawing area is large relative to the size of the page. This will change the coordinates of the objects.

Can I change the drawing object defaults? Currently, no. But for graphs, we recommend that you make a drawing with a graph in the style that you like. Then, whenever you want to make a new drawing with a graph, load that drawing file and rename it (so you don't overwrite it).

Can I combine two drawings? Yes. Use Edit : Any Type : Add File.

How can I export a drawing to another program? Use CoPlot's File : Save As to save the drawing file in some other file format. That section of this manual also includes recommended file types for exporting to different programs. Sorry, there is currently no mechanism to place the drawing on the clipboard.

When I export the drawing to Word, it takes up a whole page. Why? Use the 'Zoom -' button on the toolbar. This allows you to see the drawing area. The drawing area is the (usually) white area on the screen within a light gray area (the piece of paper). When you use File : Save As : WMF (or most other file types), the entire drawing area is stored in the .wmf file. Clearly, you need to make the drawing area smaller, so that it tightly crops the objects on the drawing. Select Drawing : Coordinates and drag the blocks at the edges of the drawing area inward, so that the drawing area is no larger than is necessary to contain the drawing objects.

How do I change the background color on the screen? Use Drawing : Background Color. Other attributes which apply to the entire drawing can be found on the Drawing menu.

Why do I have a white background on the screen but not when I export the drawing to a different program? Use Drawing : Background Color and select white. If the color labelled 'nd' (notDrawn) is selected, you will see white on the screen but no color information will be saved in a file saved with File : Save As. You must explicitly specify white to get a white background in the other program; otherwise, the background will be transparent.

When I have several changes to make to a drawing, do I have to wait for CoPlot to finish each revision? No. Uncheck Screen : Automatic Redraw. Then, changes will be shown on the screen only when you press the Redraw button on the toolbar. This is preferable when you have numerous changes to make and/or when you work with large datasets or maps, which redraw slowly.

Why is this x not being drawn?      
Why aren't my changes being shown on the screen?
If an object is not being drawn and you think it should be, here are some things to check.

  1. Make sure the Color of the object is something other than notDrawn.
  2. Make sure the position of the object is within the drawing area (try 'Zoom -' to see if it appears).
  3. Make sure the object's Group is visible (use Drawing : Groups : Visible Groups : All).
  4. If data are not being plotted, make sure all the necessary variables have been specified and that the data file actually has valid data within the range shown on the graph.
  5. When none of your changes result in changes to the drawing on the screen, make sure Screen : Automatic Redraw is checked. Or press the Redraw button on the toolbar.

The graphics cursor moves in big jumps, can I change that?  
How do I align objects?    
What is that '+' cursor (a horizontal and a vertical line) near the main cursor?
CoPlot drawings have a grid -- an array of points. When you create an object or move an object, it can only be positioned on a grid point. When the '+' cursor is visible, it tells you that the grid system is active for the current operation and shows you where the nearest grid point is. You can move the '+' cursor with the arrow keys. You can make the grid points visible (or not) with Drawing : Coordinates : Draw Grid. You can change the distance between grid points with Drawing : Coordinates : Grid Size, or by pressing the 'Grid +' or 'Grid -' buttons on the toolbar. If you make the grid size really small, it is as if the grid isn't there; you can position points anywhere. If you make the grid size somewhat coarse (0.1 inches or 0.5 cm), it makes it easy to line up objects by sight on the screen.

I select a Fill pattern but all I get is solid fill. Why? It is likely that the Fill Size attribute has been set too small and/or the line Fill Linewidth attribute has been set too big. The resulting lines that make up the hatch pattern are so close together that it looks like a solid fill. Change the Fill Size to a larger number (for example, 0.1) and/or line Fill Linewidth to a smaller number (for example, 0.003).

How can I set the default directory for my drawing files? You probably can't. The default directory is simply the directory of the most recently used drawing file (see File : 1).

Oops! I just overwrote an important drawing file. Can I recover it? Probably. Whenever CoPlot saves a drawing, it saves the old version of the drawing file as 'backup.draw' in the cohort directory. Here are two ways to recover it:

You should then be able to use CoPlot's File : Open to open the renamed file.

How can I change the size of the entire drawing? There are two approaches:

  1. If you want to make the objects be printed bigger but not change their coordinates, the easiest method (and least likely to cause trouble) is to reduce the Drawing : Coordinates : Scale.
  2. If you want to leave the objects the same size and with the same coordinates but you want to increase the size of the drawing area so that you can draw other things at the edges, the easiest method (and least likely to cause trouble) is to use the 'Zoom -' button and then choose Drawing : Coordinates. Then you can drag the blocks at the edges of the drawing outward to expand the drawing area (you are graphically changing X Min Bound, X Max Bound, Y Min Bound, Y Max Bound).
  3. If you really want to change the coordinates of all the objects:
    1. Use Edit : Any Type : Pick All : Move.
    2. Set the X Scale and Y Scale as desired.
    3. Specify the Origin X,Y carefully, since the expansion will be relative to that point.
    4. Specify the Destination X,Y (usually the same as the Origin X,Y).
    5. Press OK.
    The danger with this approach is that the coordinates of the objects may no longer be on grid points, and that may make future editing awkward.

Can I make a drawing "to scale" (for example, 1 inch = 1 foot)? Yes. See Drawing : Coordinates.

How do I get a mirror image of an object?

  1. Use one of the Edit : Xxx procedures and pick the object(s) you want a mirror image of.
  2. Choose Move or Copy.
  3. Set the X Scale to -1 if you want to flip the object in the x direction. Or set the Y Scale to -1 to flip it in the y direction.
  4. Specify the Origin X,Y and Destination X,Y carefully. If you want to flip it in place, the Origin and Destination should be at the center of the object.
  5. Press OK.

How can I export the drawing to another program? Use File : Save As.

How can I save part of a drawing for use in other drawings? To save part of a drawing:

  1. Use Edit : Any Type.
  2. Use the Pick options to pick the desired objects.
  3. Use Save In File.
To load a different drawing into the current drawing, use Edit : Any Type : Add File.

How can I get a hole in an object? For Path objects, see the Make Subpath button on the Create : Path dialog box. For Ellipse objects, see the Inner Size attribute on the Edit : Ellipse dialog box.

How can I find out which .draw files use a certain .dt file or have a certain piece of text in them? Since .draw files are ASCII files, you can use any file search tool to search them.

Mysterious file-related problems? Some mysterious file-related problems can occur if your hard disk has problems. Try using a program that checks your hard disk for errors.

Problems with floppy disks can usually be traced to dirty heads. Buy and use a disk cleaning kit.

Colored objects on the screen are being printed as light gray. Can I prevent that? Most printer drivers for black and white printers (like laser printers) convert colored objects (on the screen) into gray objects (on the printer). You can prevent this and draw all objects with black by using Drawing : Other : Draw Colors As : Black, which changes colors to black on-the-fly (not permanently).

What can I do to speed up the program? See Speed.

Why did the buttons stop working? Very, very rarely the buttons in the dialog boxes stop responding to mouse clicks (thereby making the program look frozen) but the program still responds to other user actions (like the keyboard). Try clicking the right mouse button. Then see if clicking the left mouse button works correctly.

Is the program frozen? The program will appear to be frozen if you hide a Print or File dialog box with the main window. The solution is to move the main window to uncover and then close the Print or File dialog box.

A CoHort program will sometimes also appear frozen for a few seconds (more, in extreme cases) when you are running a lot of programs on a computer with a modest amount of memory, especially when you have been using some other program and return to the CoHort program. In this situation, your computer's disk light will be on. The program will become unfrozen when the disk light goes off.

What if I still can't figure out something? If you can't figure something out, try to find and read the relevant section of the manual (see the Menu Tree and the Index). If that doesn't work, ask a knowledgeable coworker or contact technical support.


Menu Tree / Index  

Frequently Asked Questions Related To Graphs

How do I get started with graphs? I don't understand how this program works. Please read CoPlot's Help : Lesson 6. It may be useful to read the lessons again after you have been using CoPlot for a few weeks or months; you will probably learn things you didn't learn the first time you read them.

How are CoPlot's graphing capabilities different from spreadsheet/business graphing programs? CoPlot has several features which business/spreadsheet graphing programs do not, including:

Why do parts of graphs have two part names? It is a fairly simple way to organize all of the attributes for all of the parts of a graph. Hierarchical systems are a good way to organize a large number of objects; that's why scientists give genus and species names to plants and animals.

How should I arrange the data in the datafile for plotting? Often, there are a couple of formats which could be used. The simplest approach is: for each dataset (that is, a group of points that will be represented by a line or a set of markers on a graph), make two columns in the data file: one for the x data and one for the y data. In the Edit : Graph dialog box, choose Dataset : New Dataset to create a new dataset (which will subsequently be called Dataset 1). CoPlot will show you the dialog box with its attributes (which you can change). If you want to plot another group of data, choose Dataset : New Dataset to create a new dataset (which will subsequently be called Dataset 2). CoPlot will show you the dialog box with its attributes (which you can change). If you want to plot more datasets, keep adding pairs of columns to the data file and keep using Dataset : New Dataset to make create more datasets.

Alternatively, you may already have a data file from some other source, and you may want to plot a subset of the rows in one way (for example, with filled square markers) and another subset another way (for example, with unfilled square markers). The solution here is to use the Edit : Graph : Dataset : 1 : Keep If to specify an equation which selects the first subset of data and Edit : Graph : Dataset : 2 : Keep If to specify an equation which selects the second subset of data.

For other types of graphs (for example, bar graphs), it should be helpful to read the section of the manual with describes different Dataset : Representations.

Is there a way to plot part of a dataset on a graph? Yes. Use Edit : Graph : Dataset : x : Keep If and enter a boolean expression which will be applied to each row of the data file (for example, col(1)>20 and col(2)+5<col(1). This is also a useful technique for plotting part of a dataset with one type of marker and a different part of the dataset with another type of marker.

Why does CoPlot change my axis titles and ranges after I use the datafile editor or when I load a new datafile? At certain times CoPlot makes various changes to the graph automatically to make sure that the graph always plots all of the data, that the axes are appropriately labeled, and that the axis titles are appropriate. You can suppress these changes by entering specific values for specific parts of the graph (not just .=default). For example, starting from the Edit : Graph dialog box:

The labels on the axis overlap. What can I do?   If the labels on the X axes overlap (because you have lots of labels or because the labels are long or because the graph is small), set the Edit : Graph : X Axis : Labels : Angle to 270 or 315 degrees and the X Axis : Labels : H Align to Left. This turns the labels and allows you to put a large number of long labels in a very small area. Another alternative is to change the X Axis : Overview : Divisions 1 to a number that is larger than the default (for example, twice the default).

Why are parts of the graph erased when I make changes to a function? When you change a function (or any other part of a graph), CoPlot erases the old function and draws in the new function. When the old function is erased, other parts of the graph that overlapped the old function will also be erased. Thus the graph may appear to have imperfections after a change. To redraw the drawing perfectly, use the Redraw button on the toolbar.

When I have several changes to make to a graph, do I have to wait for CoPlot to finish each revision? No. Uncheck Screen : Automatic Redraw. Then, changes will be shown on the screen only when you press the Redraw button on the toolbar. This is preferable when you have numerous changes to make and/or when you work with large datasets or maps, which redraw slowly.

Can I plot a whole bunch of separate lines as one dataset? Yes, but all of the lines will have the same attributes. The basic approach takes advantage of the fact that CoPlot can leave a gap where there is a missing value: make sure Drawing : Other : Missing values make gaps is checked. Let's say you have 2 columns in the data file, x and y, and a large number of rows. Put the x,y values for the first line at the top of the column. Then leave a blank row. Then put the x,y values for the next line in the next rows. Then leave a blank row. Etc. When this dataset is plotted, there will be a gap in the line corresponding to every blank row in the datafile.

How do I make bar graphs? In CoPlot, bar graphs are not different types of graphs. They are just different Graph : Dataset : Representations on XY graphs (for example, BarGraph/100%, BarGraph/Grouped, BarGraph/Stacked). When Java CoPlot draws a graph, it notices if these representations are in use, looks for all of the datasets which are using each of these, and plots them appropriately. An advantage of this approach is that you can easily mix these representations with other representations on the same XY graph.

You can make bar graphs by using Create : Graph and then using Dataset : New Dataset repeatedly. But it is usually easier to use Create : Bar Graph.

If you want other types of bar graphs, or want a variation of one of the standard types of bar graphs, you can use an XY graph and the Dataset Representation called Bars/2D. This representation of data takes two data points for each bar, x1,y2 and x2,y2, which are the two endpoints of the bar. You can use this to draw horizontal bars, bars at irregular positions along the x axis, bars which go above and below y=0, bars which float above y=0, etc.

Can I get a correctly-sized error bar in the legend? It is a common situation to want one error bar to be drawn as a legend for the entire dataset. Sorry, CoPlot does not do this automatically in the legend. There are two work-arounds:

  1. Create a dataset with one data point. This is the preferred method, but you are limited to putting the error bar within the graph, not anywhere in the drawing area. Here is how to accomplish this:
    1. Use Datafile : 1 to get to your datafile.
    2. Use Edit : Insert Columns to create 4 more columns: X, Y, Low, High.
    3. On the first row of the data file, enter X,Y,Low,High values. X,Y defines there the error bar will be based. Low and High define the error values.
    4. Exit CoStat.
    5. Create a new dataset with Edit : Graph : Dataset : New Dataset.
    6. Set Representation: Marker.
    7. Set the marker Type to be Marker Font, character #48 (a blank).
    8. Make sure Drawing : Other : Draw error bars through markers is checked.
    9. Use Edit : Graph : Comment : New Comment to write a comment next to the error bar.
  2. You can draw the error bar any where in the drawing area with a Dimension object (use Create : Dimension and set the Arrow Angle to 180°.

This data representation uses many different colors. Why do only some of the colors show up in the legend? For data and function representations that use many different colors, you can select how many colors appear in the legend with Edit : Graph : Legend : Grid Colors

How can I export data to other programs? CoStat can create ASCII data files in different formats. Or, it put tab-separated ASCII values on the clipboard (if the file isn't too big). Use Datafile : 1 to get to CoStat. Then use File : Save As and select the desired File Type.

Why are there gaps in the line that draws this dataset? CoPlot usually puts gaps in a line where there are missing data points. You can make the gaps go away by un-checking Drawing : Other : Missing values make gaps.

Why isn't my function visible?

  1. Check all of the settings on the Edit : Graph : Function : x menu, notably Color (it should not be 'notDrawn'), Representation (Line is a safe bet), From (it should be '.') and To (it should be '.').
  2. If there is an error message regarding the function, correct the error in the function's text.
  3. Make sure the Edit : Graph : Y Axis : Overview : Low and High values are both set to '.'.
  4. Calculate a few values with CoStat's Statistics : Utility : Evaluate a function (or with a calculator) and see if the equation gives the values you expect.

Can I plot X, Y, DX, DY vector data? Not directly. You need to convert to the data to X, Y, Size, Angle data before you can use Edit : Graph : Dataset : 1 : Representation : Vector.

  1. Use Datafile : 1 : File : New to make a datafile with 6 columns: X, Y, DX, DY, Size, and Angle.
  2. Enter the X, Y, DX, DY data.
  3. Use Transformations : Transform (Numeric) to transform column 5: hypot(col(4), col(5))
  4. Use Transformations : Transform (Numeric) to transform column 6: atanXY(col(4), col(5))

Can I change the graph defaults? Currently, no. But for graphs, we recommend that you make a drawing with a graph in the style that you like. Then, whenever you want to make a new drawing with a graph, load that drawing file and rename it (so you don't overwrite it).

I created some Text objects to annotate my graph. But when I changed the axis ranges, the Text objects didn't move. What can I do? Use Edit : Graph : Comment instead. The location of a Graph Comments is specified in graph coordinates, not drawing coordinates. So if you change the axis ranges, Graph Comments will be repositioned appropriately.

Can I plot distance,angle data? Distance,angle data is generated by surveyors who start at a known point and measure the distance and angle to a second point. From the second point, they measure the distance and angle to a third point. The process is repeated many times. CoPlot can't use this data directly, but you can use the datafile editor to convert it to x,y data:

  1. Use Datafile : 1 : File : New to make a datafile with 4 columns: Distance, Angle, X, and Y.
  2. Enter the Distance and Angle data.
  3. Use Transformations : Transform (Numeric) to transform column 3:
    originalX + col(1)*cos(radians(col(2)))
    (but substitute the numeric value of originalX).
  4. Use Transformations : Transform (Numeric) to transform column 4:
    originalY + col(1)*sin(radians(col(2)))
    (but substitute the numeric value of originalY).
  5. Use Transformations : Accumulate to accumulate column 3.
  6. Use Transformations : Accumulate to accumulate column 4.

I moved my drawing file to another computer. Now CoPlot gives me a File Not Found error message for the datafile (or image file)! Data and images are kept in separate files, so you need to move them, too. CoPlot will automatically find the datafile or image files if they are in the same directory as the .draw file in the new computer; otherwise, you may need to reload the data and image files.

If you routinely move files from one computer to/from another computer, CoPlot has a system for dealing with the problem (see Screen : Path Aliases).

Why are datafiles and image files separate from drawing files? Two reasons:

  1. If a .dt file is used by more than one drawing, you save space on the disk. If the .dt file is large or you have many drawings which use it, the savings are large.
  2. If you detect and fix an error in the .dt file (for example, a mis-typed number), the correction can be made cleanly and will apply to all graphs which use that data.
Because of this, we are reluctant to change things so that the data is kept within the drawing file. We do encourage you to use a file naming system which make it obvious which data file belongs with which graphs: the first few characters of the file name should be the same. For example, wheat.dt might be used by wheat.gra, wheatcol.gra, wheat1.gra, and wheat994.gra. This also makes it easier to copy the necessary files to another directory or another computer.

How do I make changes to a graph that CoPlot's Graph objects can't make? Graph objects are very flexible, but there are a few things they can't do. (For example, you might wish that you could change where the city, state, or country names appear on maps.) In these cases, consider using Edit : Graph : Graph : Save As Drawing Objects which save the picked graph as large number of drawing objects, mostly Path and Text objects. You can then edit these drawing objects as you would edit other drawing objects.

How can I get bar graphs with horizontal bars? Use Edit : Graph : Graph : Overview : Angle : 270.

How can I get the numeric data from an already printed graph? (For example, from a graph printed in a scientific journal.)

  1. You need to get the printed graph into an image file (.gif, .jpg, .png, or .pcx). There are two approaches to this:
  2. Use Create : Image to display the image file on the screen. Increase its Size so that it basically fills the CoPlot window. If it is slightly tilted, change its Angle so that it is perfectly upright.
  3. Use Create : Graph to make a graph object. Edit the graph so that it mimics the original graph:
    1. Use Graph : Overview : X Axis Size and Y Axis Size so that the graph object is the correct size.
    2. Use X Axis : Overview : Low and High so that the X axis has the same range.
    3. Use Y Axis : Overview : Low and High so that the Y axis has the same range.
  4. Use Edit : Graph : Graph : Get.
    1. Set Get What to Graph Coordinates.
    2. Click on the data points.
    3. Mark a
  5. Create a data file from the results:
    1. Choose CoPlot's Datafile : 1
    2. Choose CoStat's File : Open : Clipboard
    3. Click on Replace Old Data.
    4. Use CoStat's File : Save As to save the datafile.

The Y axis range is [a] to [b]. Why doesn't the label for [a] show up?

I have a nice graph. Can I now make it the basis for a series of graphs by using Graph Array? Sorry. No. Graph Array makes it's own graph objects and can't incorporate existing graph objects.

However, you can use Edit : Graph : Copy and make multiple copies of you graph, setting the Origin X,Y and Destination X,Y values so that the new graphs are arranged in an array. This is almost as good as a Graph Array. Afterwards, you can use Edit : Graph : Pick One to edit one graph at a time. Or, you can use Edit : Graph : Pick All to edit all of the graphs simultaneously.

How do I get different axes and plot different datasets on the left and right Y axes? There are two approaches:

How do I get broken axes? (For example, 0, then a break, then 1 to 1000 on a log scale.) There are two approaches.

How can I plot data from 2 (or more) datafiles on 1 graph? Use Datafile : 1 and File : Open to open the first datafile. Use Datafile : 2 and File : Open to open the second datafile. When editing the graph, you can use Dataset : x : Datafile to specify which datafile should be use for which dataset.

How do I get hollow markers to erase what is beneath them? This isn't built into the program, but you can do it. Create two datasets. For the first one, set Representation to 'filled circle', set the Color to white (or whatever background color you want), and set Legend to nothing. For the second dataset, set the Representation to 'hollow circle' and the color to black.

How do I get tick marks and labels at specific, unevenly spaced locations? Use Edit : Graph : X Axis : Overview and set Divisions 1 to be a comma-separated-value list of where you want the labels and primary ticks to be.

Can I identify a data point on a graph or get other information from a graph? Yes. Use Edit : Graph : Graph : Get and set Get What to Data points. Then click on the data point you want more information about.

Can I plot functions over a limited X range? Yes. Use Edit : Graph : Function : x : From and/or To to specify the low and high ends of the range for the function.

How do I plot parametric equations? Parametric equations are representations of functions in which X and Y are each functions of an independent variable, e.g., T. For example, you could make a circle by plotting X=cos(t), Y=sin(t) over the range t=0 to 2pi. To do this,

  1. Use CoPlot's Datafile : 1 : File : New to create a datafile with 3 columns, T, X, and Y.
  2. Use CoStat's Transformations : Regular to transform column 1 into a series of values from t=0 to 2pi with an increment of 0.05.
  3. Use CoStat's Transformations : Transform (Numeric) to convert column 2 to be cos(col(1)).
  4. Use CoStat's Transformations : Transform (Numeric) to convert column 3 to be sin(col(1)).
  5. Use CoStat's File : Save As to name and save the data file.
  6. Use CoPlot's Create : Graph to create a graph.
  7. Use CoPlot's Edit : Graph : Dataset : New Dataset to create a new dataset which plots X=column #2 and Y=column #3.

Can I plot a slice of a 3D surface on a 2D graph? Yes. Let's say you have a gridded dataset with the gridded x,y,z data in columns 1, 2, and 3, respectively, and you want to get the slice where Y=3.

To get a slice in the other direction (for example, where X=5), set X: 2) Y and set Keep If: col(1)==5.

Can I identify data points with labels? Yes. There are two approaches:

  1. If you want to label most or all of the data points, use the dataset representation called Markers/labels to put a label beside each marker. The text for the labels comes from one of the columns in the datafile.
  2. If you want to label just a few of the data points, use Edit : Graph : Comment : New Comment to create comments which positioned in graph coordinates. One advantage to this approach is that the comments can have boxes (or other shapes) around them.

Can I calculate the volume of a 3D surface? It is often useful to know the volume defined by a 3D surface or the area of the surface which falls within a given range of elevations. While CoPlot does not yet have a feature to calculate these values automatically, you can do the calculation using existing procedures. To calculate the volume of a gridded data set:

  1. Use CoPlot's Datafile : 1 : File : Open to open the datafile.
  2. Use CoStat's Edit : Insert Columns to insert one double column (at the end) for temporary use. (Call it temp.)
  3. Use Transformations : Transform (Numeric) to calculate the volume associated with each data point. For example, if the gridded Z data is column #3 (measured in feet), and the new variable is column #4, and the distance between grid points on the X and Y axis is 300 feet, you would use an equation like column #4 = col(3)*300*300.
  4. Use Transformation : Accumulate to accumulate the values in column 4.
  5. Scroll to the last row of the spreadsheet in order to read the accumulated volume in column 4.

This is a pretty good estimate of the volume. To get a less good approximation of the surface area within a specific elevation range (for example, z=700 to 800), use Transformations : If Then Else (Numeric) in step 3 and use If col(3)>700 and col(3)<=800 Then 300*300 Else 0.

How can I create X and Y values for already gridded Z data? If you already have the Z values from a regular grid (but not the X and Y values), you need to create 2 columns of data with the appropriate X and Y values. You can do this with Datafile : 1 : Transformations : Make Indices.

Why isn't one of my datasets (or functions) appearing in the legend?
How can I make a dataset (or function) not appear in the legend?
Check Edit : Graph : Dataset (or Function) : x : Legend. If it is set to nothing, there will be no entry for that dataset (or function) in the legend.

Can I change the order in which parts of the graph are drawn? Yes. See Edit : Graph : Graph : Drawing Order.

Related topic: You can change the order in which the drawing objects are drawn, in order to control which drawing objects are partly obscured by other drawing objects.

Can CoPlot draw part of the graph, then draw some drawing objects, then draw the rest of the graph? No. All parts of a graph are drawn together. But there is another approach: make two graphs and Hide one of them. You can edit the 'hidden' graph so that it will draw part of the original graph and not the rest (set the Color for those graph parts to 'NotDrawn'). You can edit the second graph so that it will draw the other parts of the original graph (set the Color for the other graph parts to 'NotDrawn').

Related topic: You can change the order in which the drawing objects are drawn, in order to control which drawing objects are partly obscured by other drawing objects.

How do I set up a drawing for A4 paper? There are several attributes on CoPlot's Drawing : Coordinates dialog box which let you select A4 paper (Common Sizes : A4), change the drawing bounds to fill A4 paper, and change the units to cm. But the easiest thing to do is use File : Open : CoPlot (.draw) to open the metric.draw file in the cohort directory. This is a drawing file in which all of the changes have already been made to Drawing : Coordinates so that you can work in cm on A4 paper. Then, use File : Save As to give the file a new name.

What if I still can't figure out something? If you can't figure something out, try to find and read the relevant section of the manual (see the Menu Tree and the Index). If that doesn't work, ask a knowledgeable coworker or contact technical support.


Menu Tree / Index  

Suggestions

The goal of CoPlot is to provide you with an inexpensive, flexible way to produce your own high-quality scientific graphs and technical drawings. CoHort Software hopes that CoPlot helps you reach that goal.

General Comments - The most important advice for setting up graphs is: Keep it simple. Don't put too much on one graph. Make sure everything is as clear as possible. Make sure text is easily legible.

Try using macros for frequently performed operations. See Macro.

Posters - The best quality posters are "stats" or "PMT's" from a blueprint store. These are moderately expensive enlargements of your art work. Stats can be any size you want.

Many photocopy stores can now do a photocopy enlargement of 8.5"x11" drawings to 17"x22" or larger for a very low price, and the quality is quite good.

Slides - The best way to make slides is with a film recorder, a device specifically made for taking computer-generated images and recording them on film. There are numerous brands of film recorders. All film recorders can create slides from images stored in graphics files. The department in your university or company that maintains the film recorder will know what types of files can be used by the software that drives the film recorder. Many of the graphics file types that CoPlot can create are commonly used to send images to film recorders: WMF, HPGL/2, PostScript, and CGM.

If you don't have a film recorder, you can take slides directly off your computer screen. If possible, use a telephoto lens (80 to 135mm) to flatten the screen. Pick a slow film (such as ASA 64 or 100). Use a tripod and a cable (shutter) release (or the camera's self-timer if you don't have a cable release). You may need to use a close-up lens (an inexpensive lens that screws onto your regular lens) to be able to focus close enough. Make sure the film plane is parallel to the screen to avoid distortion. Set the screen contrast fairly high, but avoid blurring. Make sure the room is very dark (do it at night with the lights off and curtains closed). The shutter speed should be 1/4 second or slower to make the monitor's scan line invisible. Determine the approximate exposure by doing a test roll; try 1-second exposures at all apertures (although apertures in the middle or high end of the range give the best-quality photos). Do not depend entirely on your exposure meter; it will tend to overexpose graphs that don't have large filled areas. When you decide on an exposure setting, use the same setting for all graphs. (Advice from Allan Fertig, Agricultural Communications, University of Arizona.)

Slides from a laser printer - Another approach to making slides is to get a good quality printout (from your laser printer or plotter) and make slides from the output with a copy stand. Given the high resolution of commonly available printers, this is an excellent and inexpensive alternative to slide making machines. Many photo-finishing companies now provide 1-hour service for a minimal surcharge.

Polaroid makes 2 types of instant film that you may find useful. PolaBlue produces instant 35mm white on blue slides from black on white printout. PolaChrome produces instant color slides (good for photographing color screens directly).

Many copy stores now have special color laser copiers that can make slides directly from any original. The results from the new color printers are especially good.

Animated GIF and MPEG Movies - Animated .gif files and MPEG files can store a series of images in a file. The images in the file can later be displayed like a movie. Because animated .gif files do not change the images in any way (unlike MPEG files), they are usually more suitable for storing a series of images from CoPlot.

Although CoPlot currently can't create animated .gif files directly from its animations, it is still pretty easy to do. First, you need to use CoPlot to save the individual frames of an animation in separate .gif files (a macro may make this easier). Then you need to combine the individual .gif files into an animated .gif file with a separate program. We use and recommend "GIF Construction Set Professional", a $20 shareware program from Alchemy Mindworks Inc. (http://www.mindworkshop.com).

Style - Three excellent books about style in statistical graphics are The Visual Display of Quantitative Information (1983), Envisioning Information (1990), and Visual Explanations by Edward R. Tufte. Not only does he show you examples of superb and horrible graphics, he explains the rationale behind his judgments. He believes in minimizing "chartjunk" - the unnecessary lines and fill styles that clutter most graphics. He discusses how to emphasize the data, not the chart. He warns of techniques that compromise the integrity of graphics. We recommend his books highly. We at CoHort Software hope that CoPlot is sufficiently flexible that you can use it to explore non-standard, good graphics design.

Practical Graph Design - A great book about style in graphs is Elements of Graph Design by Stephen M. Kosslyn (1994). This is a very practical style manual which covers almost all standard types of graphs. The book has page after page of examples of the right way and wrong way to create different kinds of graphs.

The Elements of Graphing Data is an excellent book by William S. Cleveland. The book reflects his years of experience making technical graphs at AT&T Bell Laboratories. He makes good use of graph arrays.

False 3D and Perspective - CoPlot does not support adding a false third dimension to 2D text and 2D bars; we at CoHort Software believe it is unnecessary clutter that detracts from the readability of the graph, in addition to being misleading.

Plot a dataset twice for special effects - It is sometimes useful to plot a dataset twice, that is, to set the Dataset : 1 : X and Y variables to be the same as the Dataset : 2 : X and Y variables. You can then choose different representations for each dataset. For example, you could plot Dataset : 1 with Representation: Marker, with no lines between the markers, and Dataset : 2 with Representation : Fill zero. Such combinations are not possible without plotting the dataset twice.

Height vs. width of a graph - The shape of a graph (set by Edit : Graph : Graph : Overview : X Axis Size and Y Axis Size) can greatly influence a reader's interpretation of the data. The appropriate width-to-height ratio often depends on the precision of the measurements of the data along each axis. Graphs that are relatively tall emphasize changes in the y variable. Graphs that are relatively wide make changes appear to be slower and more gradual. Graphs should almost never be taller than they are wide. Time graphs with little precision along the X axis should be somewhat narrower, but they should rarely be taller than they are wide. Correlation matrix and scatterplot xy graphs should usually be square. Graphs with a large range of data along the X axis (e.g., a time series) should be wide - perhaps several times as wide as they are high. (Tufte, 1983)

Consider using tables instead of graphs - Some pie and bar graphs plot few data points and therefore convey relatively little information in a large amount of space. It can be a lot of trouble to read the legend to find out what's what. In many cases, it is more legible and takes less space to put the data in a simple table in a logical order.


Menu Tree / Index      

Switching From DOS CoStat, CoPlot, and CoDraw

Here are items of interest to people switching from DOS CoStat, CoPlot, and CoDraw to Java CoPlot.
DOS CoPlot and DOS CoDraw    
The features of DOS CoPlot and CoDraw are now combined in Java CoPlot. Java CoPlot works basically like DOS CoDraw did: it is a drawing program. You create drawings by creating drawing objects and manipulating their attributes. Java CoPlot has a new object type that DOS CoDraw didn't have, Graph. With it, you can create one or more graphs in the drawing. See CoPlot's Help : Lesson 1.
DOS CoStat  
The DOS CoStat is replaced very directly by Java CoStat, which exists as a separate program and as a fully-integrated part of CoPlot. CoPlot's Datafile menu lets you load and work with up to 15 data files per drawing. See CoStat's Help : Getting Started.
DOS CoText  
The DOS CoText is replaced very directly by Java CoText, which exists as a separate program and a fully-integrated part of CoPlot and CoStat (where it captures and displays results from statistical procedures). See CoText's Help : Getting Started.
Menus
The DOS programs had their own unique graphical user interface. Java CoPlot uses a more standard interface with a menu and various dialog boxes with standard widgets. See the Menu Tree.
What!? The DOS keystroke menu system is gone!
Yes. Sorry. We liked it, too. You could work very quickly if you knew the programs well and were a touch typist. But most users nowadays want to see a typical Windows/Mac/UNIX graphical user interface, so we have done our best to meld the two styles. Once you get used to it, you will see that all of the features of the DOS programs are still there, often with basically the same names, but with a somewhat altered interface.
DOS CoPlot's Graph : File and DOS CoDraw's Global : File Menus    
are replaced by Java CoPlot's File menu. For example, DOS CoPlot's Graph : File : Save is replaced by Java CoPlot's File : Save.
CoPlot's and CoDraw's Update Screen Menus    
are replaced by Java CoPlot's Drawing menu (for settings related just to the current drawing) and Java CoPlot's Screen menu (for settings related just to the screen and for all drawings).
DOS CoPlot's and CoDraw's Update Screen : Coordinates Menu    
is replaced by Java CoPlot's Drawing : Coordinates dialog box. That dialog box also controls the scaling and positioning of the drawing on the printed page (which used to be part of DOS CoPlot's and CoDraw's printing procedure).
DOS CoDraw's Line, Arrow, Bezier Line, Marker, Spline, Filled Area, Rectangle, Bezier Filled Area and Spline Filled Area Objects  
All of those DOS CoDraw object types are replaced by Java CoPlot's Path object type. A path is a series of points and a set of attributes describing how the object should be drawn. By changing the attributes, you can draw anything the DOS objects could have drawn, and much more. There is an attribute which specifies if the points should be connected by straight line segments, spline sections, or used as Bezier control and end points. There are separate attributes for the background color, fill (hatch) color, and line (perimeter) color. There are many other attributes.
DOS CoDraw's Circle and Pie  
are replaced by Java CoPlot's Ellipse object. Like the Path object, Ellipse objects have many attributes so they can be used to draw many different types of objects.
DOS CoPlot Always Had One Graph
In DOS CoPlot, there was always one active graph on the screen. But initially, Java CoPlot shows you an empty drawing with no drawing objects, not even a graph. If you want to draw a graph, you must first use Create : Graph (or press the graph icon on the left edge of the main window) to create a graph.
DOS CoDraw's and CoPlot's Menus    
In DOS CoPlot, there was only one active Graph, so the menu system was focused on that one graph. At any time, you could identify a part of a graph (for example, the X Axis : Title) and then edit the attributes of that part of the graph. In Java CoPlot, there may be many graphs (and other drawing objects) in the drawing, so you must first pick the graph (identify it as the drawing object you want to edit). Then you can identify a part of the graph (for example, X Axis : Title 1 on the Edit : Graph dialog box) and edit its attributes.
DOS CoDraw's Edit Procedure  
To pick an object by clicking on it, use Java CoPlot's Edit : Pick One procedure or the Pick One button on the toolbar. Or, if no dialog boxes are open, just right click on the object.
DOS CoDraw's Variety Edit Procedure  
To pick a variety of objects of different types, use Java CoPlot's Edit : Any Type procedure or the light blue 'E' button on the left side of the main window.
DOS CoDraw's Just Edit Procedure  
To identify a type of object and then click on objects of that type which you want to edit, use one of the light blue 'E' buttons on the left side of the main window.
DOS CoDraw's Individual Edit  
DOS CoDraw's Individual Edit offered a quick way to edit individual objects or individual points within an object. Those procedures are replaced by Java CoPlot's Edit : Objects and Edit : Points Move procedures. Procedures like these which are specific to Path objects (Insert Point, Delete Point, Break Path, Join Paths) can be found in the Edit : Path dialog box.
Importing .dra and .gra Files      
Use Java CoPlot's File : Open : CoDraw DOS (.dra), File : Open : CoPlot DOS (.gra), or File : Open : CoPlot DOS Group (.grg) to convert .dra, .gra, or .grg files into Java CoPlot's .draw file format. .dra imports work quite well. .gra and .grg imports work pretty well, but there may be small imperfections in the converted graphs that you will need to fix by hand. Java CoPlot's .draw files are ASCII files; so if you need to, you can edit them with a text editor.
.dt Data Files  
DOS CoStat encouraged you to describe the data file in terms of variables, replicates, and factors with treatments. Java CoStat just has rows and columns. DOS CoStat only stored double precision floating point numerical data. Java CoStat lets you store different types of data, including text data.
Importing .dt Files
Use Java CoStat's File : Open : CoStat (.dt) to import older .dt files into Java CoPlot's newer .dt file format. The new .dt files support many different data types (not just double precision real numbers), including Strings of any length. Strings are handy in CoPlot because they allow you to plot text labels beside data points.
DOS CoPlot's and CoDraw's .fnt Font Files
If you made your own custom fonts with DOS CoDraw, Java CoPlot can use the DOS .fnt font files if you copy them into the new cohort directory. It is best if you have three files for each font family: name.fnt (the regular weight font, for example, helvet.fnt), name-l.fnt (the light weight font, for example, helvet-l.fnt), name-b.fnt (the bold font, for example, helvet-b.fnt). DOS CoPlot and CoDraw's Update Screen : Font Load is replaced by Java CoPlot's Drawing : Load Fonts. Unfortunately, Java CoPlot does not yet have a character editor to replace the one in DOS CoDraw. Java CoPlot supports system fonts on screen and when saving to some types of graphics files (notably PostScript).
DOS CoPlot's .mp* Map Files
Java CoPlot can use the DOS .mp* map files if you copy them into the new cohort directory.
Saving Java CoPlot's .draw Files As .dra or .gra Files
Sorry. You can't. Java CoPlot has so many new features that it would be impossible to do even a reasonably good job of generating .gra files. It would be possible to do a simplistic job of generating .dra files, but too much information would be lost and the results would be hard to work with and not what you are hoping for. Please move forward to the new programs, not back to the old programs.
Saving Java CoStat's .dt Files As DOS CoStat .dt Files
Sorry. You can't. Java CoStat supports String data (DOS CoStat didn't), so data would be lost. If you really need to get data from Java CoStat into DOS CoStat, use Java CoStat's File : Save As : File Type : ASCII - Comma Separated. At least the numeric data can be transferred.
Colors    
In DOS CoPlot and DOS CoDraw, there were 9 palettes of 16 colors each. In Java CoPlot, there is one palette of 142 colors. And you can also create and use any custom color that you want.
CoPlot's Top X Axis and Right Y Axis    
If you just want to have the same ticks and labels on the Top X axis or the Right Y axis, use Java CoPlot's Edit : Graph : X (or Y) Axis : Overview : Visible : Both Axes. Or you can use the Visible : Both Axes setting for individual parts of the graph, for example the X Axis : Labels.

If you want a different axis range, different ticks, different labels or you want to plot a dataset with the Right Y axis, you need to make two graphs.

  1. Create one graph which plots one of the datasets and uses the left Y axis only.
  2. Press the X Axis button and set Low and High to specific numeric values.
  3. Use Copy on the Edit : Graph dialog box to make a copy of the graph without moving it.
  4. Now that the second graph is the picked graph, change the Dataset's Y variable and press the Y Axis button and set Visible to Opposite axis.
  5. For future editing, remember that you can use the Edit : Graph : Pick List procedure to pick either or both of the graphs.
DOS CoPlot's Graph : File : Group and Quick Switch    
Now that Graphs are just another type of drawing object, it is easy to have multiple graphs in a drawing. There is no longer a need for DOS CoPlot's Grouped Graph (to sort-of get multiple graphs on the screen) or Graph : File : Quick Switch (to quickly switch between several different graphs). In Java CoPlot, you can get multiple graphs in a couple of different ways:
DOS CoPlot's Graph : File : Save As Draw  
In DOS CoPlot, if you wanted to draw something other than a graph, you had to use Graph : File : Save As Draw and then use DOS CoDraw. In Java CoPlot, the graph is already part of a drawing, so you can use the various Create options to draw other things on the drawing. See Help : Lesson 1.

In DOS CoPlot, you also had to use Graph : File : Save As Draw to edit the parts of a graph in unusual ways in CoDraw. In Java CoPlot, you can use Edit : Graph : Graph : Save As Drawing Objects to convert a graph into a collection of drawing objects and immediately edit them.

DOS CoPlot's Origin Graph  
In DOS CoPlot, this was a separate graph type. In Java CoPlot, use an XY graph, but set Edit : Graph : Graph : Overview : Draw XY Graph As Origin Graph.
DOS CoPlot's Histogram and 3D Histogram Graphs  
In DOS CoPlot, these were separate graph types. In Java CoPlot, Histogram is just one type of dataset representation on XY graphs, and 3D Histogram is just one type of Dataset Representation on 3D graphs.
DOS CoPlot's Grouped Bars, Stacked Bars, 100% Bars Graphs  
In DOS CoPlot, these were separate graph types. In Java CoPlot, they are just different Dataset Representations on XY graphs. When Java CoPlot draws a graph, it notices if these representations are in use, looks for all of the datasets which are using each of these, and plots them appropriately. An advantage of this approach is that you can easily mix these representations with other representations on the same XY graph.
DOS CoPlot's N-Channel, Matrix, Multivariate Bar Graphs  
In DOS CoPlot, these were a separate graph types that were plotted as what looked like an array of XY graphs. In Java CoPlot, they are all replaced by Create : Graph Array which helps you set up and manage a 2D array of XY graphs. An advantage of this approach is that you can make different Y Axis ranges for each of the graphs. Or, you can put two datasets in one of the graphs.
DOS CoPlot's Data Indicates  
CoPlot and CoDraw's Embedded Text Commands    
DOS CoPlot's and CoDraw's embedded text commands which generated unusual characters are replaced by Java CoPlot's HTML-like character entities, which all start with '&' and all end with ';'. For example, &Aacute; generates 'Á'. In every situation where character entities can be used, Java CoPlot has a '&' button which pops up a window to help you pick the characters from lists. Or, you can just type the names into the textfields. All of the characters which were available in the DOS programs are available in Java CoPlot, and more.

DOS CoPlot's and CoDraw's embedded text commands which were formatting commands are replaced by Java CoPlot's HTML-like embedded text tags, which all start with '<' and all end with '>'. For example, '<b>' makes subsequent text bold and '</b>' makes subsequent text not bold. In every situation where tags can be used, Java CoPlot has a '<>' button which pops up a window to help you pick the tags from a list. Or, you can just type the tags into the textfields. All of the formatting commands which were available in the DOS programs are available in Java CoPlot, and more.

DOS CoStat's and CoPlot's Equations    
Java CoStat and CoPlot support equations which are very similar to DOS CoStat's and CoPlot's equations (see Using Equations in the CoStat Manual (costat.htm)), but the new equations support a much larger number of built-in functions and can be used for String processing as well as numeric processing. See also Differences from the DOS CoHort Equation Evaluator in the CoStat Manual (costat.htm).
Macros      
Macros in Java CoPlot and CoStat are just as easy to use as macros in the DOS programs (start recording with Macro : Record; later play them with Macro : Play). But the new macros can be greatly extended because they stored named commands (not just keystrokes) and because they use a language (see The Macro Language in the CoStat Manual (costat.htm)) which supports variables, control structures (if, else, for, while etc.), procedures, etc.

Because the DOS macros just stored keystrokes, there is no way for Java CoPlot or Java CoStat to automatically convert them for use in Java CoPlot or CoStat. We recommend you open the old macro files in a text editor (like CoPlot's Edit : Show CoText) so you can view them while recording replacement macros in Java CoPlot.

The DOS macros supported a feature called Display Yes/No/Off. Currently, there is no comparable feature in the new programs.

Technical Support
Technical support remains the same - free. You can call, email, fax, or mail your questions to CoHort Software (note our new address and fax number as we have moved).


Menu Tree / Index  

CoStat

CoStat is the datafile editor which is built into CoPlot. It can also do statistical procedures with the data. CoStat is run when you choose Datafile : x. With it, you can open a data file, view the data, transform the data, do regressions, etc. See the CoStat Manual (costat.htm) for more information. Results from the statistics procedure are put into a text editor called CoText. See CoText's Help menu for more information about using CoText.

CoPlot, CoStat, and CoText share the same memory allocation (in the CoStat Manual (costat.htm)).


Menu Tree / Index  

CoText

CoText is the text editor which is built into CoStat and which captures and displays statistical results. It pops up automatically when needed. With it, you can view results, annotate results, print results to a file, etc. The commands are similar to Microsoft Word. See CoText's Help menu for more information.

CoPlot, CoStat, and CoText share the same memory allocation (in the CoStat Manual (costat.htm)).

CoText doesn't appear? If you have minimized CoText (so that it is only an icon), it will not appear after you run a statistical procedure. You must un-minimize it (by clicking on the icon) to make it reappear.

CoText in CoPlot - You can also create and use a separate instance of CoText from within CoPlot with Screen : Show CoText. Sometimes it is handy to have easy access to a text editor. This is a different instance of CoText than the one used by CoStat to capture and display statistical results or CoStat's Screen : Show CoText.


Menu Tree / Index  

File

The File menu has all of the options related to opening, saving, and printing the drawings stored in CoPlot's .draw files.


Menu Tree / Index    

File : New Window

In the stand-alone version of CoPlot, this option opens a new, empty, .draw file in a new CoPlot window. The original window and file are not affected.

In some ways, the windows act like independent programs:

In other ways, the windows act like part of the same program:


Menu Tree / Index    

File : New

If the current document isn't empty, this first asks if you want to save the current file. Then it removes all drawing objects from memory and returns to the default Drawing Coordinates so that you have a new, empty, .draw file.


Menu Tree / Index      

File : Open

  1. File : Open has a sub-menu which lets you specify the type of graphics file to be loaded (for example, CoPlot's native .draw files, .gif files, .jpg files, Adobe Illustrator .eps files, Windows MetaFile .wmf files, DOS CoDraw's .dra files, DOS CoPlot's .gra or .grg files, etc.).
  2. After selecting the file type, if the current document isn't empty, CoPlot asks if you want to save the current file.
  3. File : Open then shows you a dialog box that lets you specify the file you want to load.
  4. CoPlot opens the file that you specified.

The 'File : Open' Button on the toolbar right below the menu allows you to open any supported type of file. It is an alternative to all of the 'File : Open' menu options. Initially, it shows you the "*.draw" files, but you can change that to see other file types (for example, "*.gif" or "*.wmf" or even "a*.wmf"). If you specify a file name without an extension, it appends ".draw" to the file name. After you specify the file's name, it tries to open the file. It guesses the type of file based on the extension of the file's name (for example, ".draw" or ".gif").

Error Messages - If errors occur while opening a file, the program tries to continue processing the file. Only the first error is reported. CoPlot also prints some diagnostic information to the console window (the text-only window associated with CoPlot). The diagnostic information can be useful to employees of CoHort Software when trying to track down problems.

Can I import graphs from Excel, SigmaPlot, Axum, Origin, SAS, ...? Sorry, CoPlot can't directly import the graph descriptions from these other files. The best you can do is use File : Save As in the other program to save the graph in a .wmf or .cgm file and import that into CoPlot with File : Open : Windows MetaFile (.wmf) or CGM.

File Types -

CoPlot (.draw)
This is CoPlot's native file format. Files can be opened and saved very quickly, with no loss of information.

The names of CoPlot's drawing files always end in ".draw". If you choose to open a .draw file and type in a file name that doesn't end in ".draw", CoPlot will add the ".draw" for you.

If you load a .draw file that has a graph which uses a data file and the data file is not found in the specified directory, the .draw file's directory will also be searched.
 

GIF (.gif)    
JPG (.jpg)    
PCX (.pcx)    
PNG (.png)    
PPM (.ppm)        
All of these procedures open an image file and make a drawing that has one image object (the file you specify). The drawing will be the exact size needed to hold that image.

To do this, these procedures create a drawing with one image object (see Create : Image). Then, they set several items on the Drawing : Coordinates dialog box:

The resulting drawing is like any other drawing: you can create new drawing objects (Path objects, Text objects, etc.) and you can edit existing drawing objects. For example, you could edit the image object that displays the image file you opened, changing its Contrast or Brightness setting.

These procedures are useful for loading an image, optionally annotating it, and saving it (perhaps in a different type of image file), while keeping the original size. For example, you could load a .pcx image and save it as a .gif image.

If you just want to use an image as smaller part of a drawing, use Create : Image instead.

Adobe Illustrator (.eps)        
CoPlot can correctly read in most, but not all, Adobe Illustrator .eps files. Many clip art libraries are in this format. Some clip art libraries are scanned in -- they often have problems and look crude when imported. Other clip art libraries have pictures that have been drawn -- they tend to import well and look good.
 
AutoCad (.dxf)        
CoPlot can correctly read in most, but not all, .dxf files.
 
CGM (.cgm)        
Computer Graphics Metafile is an ANSI standard, increasingly common, vector-based, drawing file format. Some clip art libraries are available in this format. CoPlot can correctly read in most, but not all CGM files. CGM is a large specification. Different companies have implemented subsets of it in different ways. This makes it difficult to import them all perfectly. CoPlot tries to follow the specification as closely as possible. Most CGM files will read in correctly.
 
CoDraw DOS (.dra), CoPlot DOS (.gra), CoPlot DOS Group (.grg)                                    
Importing DOS CoDraw's .dra files works well, since the new CoPlot mostly supports a superset of the attributes of the DOS CoDraw (an exception is viewports). Importing DOS CoPlot's .gra and .grg files works well for most files, but does not handle some unusual features.
 
Windows MetaFile (.wmf)        
wmf files are the standard graphics file type for Windows programs. CoPlot can read in most, but not all, wmf files.


Menu Tree / Index    

File : Save

This saves the current drawing (in CoPlot's native .draw file format) using the current name.

Datafiles - File : Save and File : Save As : CoPlot .draw automatically save any datafiles which have been changed. Other File : Save As options do not automatically save datafiles.


Menu Tree / Index                                                                  

File : Save As

Save As lets you save the current drawing in many different file formats. This is useful when you need to import a drawing in some other program or publish a drawing on the World Wide Web.

Recommendations - The suggested drivers for different purposes are:

For reuse in CoPlot...
CoPlot's native .draw format is by far the best format for saving CoPlot's drawing for future use in CoPlot.
 
For importing in Microsoft Word, PowerPoint, etc...      
Use the WMF driver. In Word and PowerPoint, for example, you can import the wmf file with Insert : Picture : From File.
 
For importing in Corel WordPerfect...
Use the WordPerfect .wpg driver.
 
For importing in Lotus AmiPro or WordPro...      
Use a CGM driver. See the CGM driver descriptions below.
 
For publishing on the World Wide Web in a way that looks good on screen but may be crude when printed...
Use the GIF driver. The images will look good on the screen. When printed, the images will appear a little blocky and crude; it isn't our fault; this is the way image files work. As PNG files become more widely supported in browsers, they will become an attractive alternative, but with the same drawback.

Unless your drawing includes a photo-like JPG Image object, don't use the JPG drivers. GIF is much more suitable for the kinds of drawings created by CoPlot than JPG is. JPG should only be used for photo-like images.
 

For publishing on the World Wide Web in a way that looks good on screen and good when printed, but requires a plug-in...
Use the PDF driver. Users will have to use the Adobe Acrobat plug in (free from Adobe at http://www.adobe.com). The drawing will look great on the screen and when printed.
 
To make a standard image file...
In general, whenever you need an image file, use the GIF driver, not the JPG drivers. GIF is much more suitable for the kinds of drawings created by CoPlot than JPG is. JPG should only be used for photo-like images.
 
To make a standard vector file...
In general, whenever you need a vector file, you can use the PDF driver (better) or the WMF or CGM drivers (okay). If those doesn't work, you need to compare the list of file types that the other program can import with the list of file types that CoPlot can generate (see below).

Colors - Unless otherwise specified, these drivers produce color images. In most cases, when the resulting files are printed on black and white printers, the colors are converted to shades of gray using dither patterns (patterns of dots). Or, you can use Drawing : Other : Draw Colors As to specify how non-white and non-black colors will be drawn temporarily: as colors, as grays, and as black. This is useful if you want to temporarily force a color drawing to be a grayscale or black and white drawing.

Quality - The resolution of these drivers is a constant (for example, the .cgm driver makes .cgm files at 600 pixels per inch of the drawing). If you want to increase the quality of the resulting graphics file (especially for vector graphics files), you can temporarily change the Drawing : Coordinates : Scale value. For example, making the scale value half as big makes the drawing twice as big, and doubles the apparent resolution of the resulting graphics file.

Save Text As ... - Some of the drivers have two variations which differ in how they store text. We recommend using the Save text as text drivers most of the time. If you have problems with the text being poorly positioned (words may appear too far apart or too close together, particularly on low resolution devices such as screens), use the Save text as graphics drivers (which will have coarser looking characters on the screen, but will never have text positioning problems).

Driver Descriptions - There are three categories of drivers: CoPlot's native format, image file formats, and vector file formats. The drivers are described below.

Comparisons - The descriptions indicate the time it takes to generate a file and the size of the file, based on a small, moderately complex test file that we use. Although times and sizes will vary for your files, the information should be useful for comparisons.

CoPlot's Native Format
This is the best format for saving CoPlot's drawing for future use in CoPlot.
CoPlot (.draw)
saves the drawing in CoPlot's native .draw file format, an object-oriented format that saves the information stored in CoPlot's data structures so that you can recreate or edit the drawing with CoPlot in the future. For this option only: using File : Save As to specify a new name for the .draw file changes the name for the current drawing. Since this is the native format, the files are generated very quickly (sample=0.1 s) and are very small (sample=2.1 KB).

When you save a drawing as a .draw file, CoPlot automatically saves any datafiles which have been changed. Datafiles are not automatically saved when you save the drawing in other formats.

Warning: If you make a change to a datafile which you want to keep but you don't want to save the .draw file, you must use CoPlot's Datafile : x : File : Save or File : Save As to manually save the changes to the datafile.

Zip (.zip)
Since the names of datafiles may change when the drawing is saved, you must save the drawing with the Save The Drawing button. Then, this dialog box shows you a list of the data files, image files, and the .draw file which are used by this drawing. If you press the Create Zip File button, CoPlot will compress and save these files in a .zip file. The zip file is a handy way to transmit the drawing and its associated files to your coworkers.

The zip file includes the directory names for the files, but not the drive letters. If you don't utilize the directory names when you unzip the file, CoPlot will still be able to find the data and image files because they will be in the same directory as the .draw file. The drive letters are not included because the .zip standard doesn't support them.

Image File Formats
An image file is the best choice if the most important use for the file is viewing it on a computer screen (not printing it on a printer). Along that line, GIFs are currently the best way to put CoPlot drawings on HTML web pages. GIF's compressed image files are very small. When viewed at their original size, the images look great -- exactly like they did in CoPlot. Image files have a couple of disadvantages compared to vector files.
  1. Speed - Large image files take longer to generate than vector files (because of the compression process).
  2. Memory - Large image files require a lot of memory. If you run out of memory, you can increase the amount of memory allocated to the program; see Memory (in the CoStat Manual (costat.htm)).
  3. Quality - Image files only look good at the size they were created. If you try to expand an image (for example, to print it on a printer) it may look blocky and crude. If you try to contract an image, parts of the image may disappear or look crude.
Gif89a (.gif)
saves an image of the entire drawing in a gif89a image file. Gif files are limited to 256 colors (usually not a problem if you just use colors from CoPlot's palette) and must be at least 8x8 pixels. Gif files are universally supported by web browsers. This driver has a "resolution" of 100 pixels per inch, the same as the CoPlot screen driver when you aren't zoomed in (Drawing : Zoom 1). Gif files take a long time to generate (sample=6.3 s), but are highly compressed (sample=6 KB, the smallest of any driver other than CoPlot's native .draw format and .png files).
JPG High Quality (.jpg) and
JPG Small File (.jpg)
save an image of the entire drawing in a jpg image file. JPG files support any number of colors. JPG files are universally supported by web browsers. This driver has a "resolution" of 100 pixels per inch, the same as the CoPlot screen driver when you aren't zoomed in (Drawing : Zoom 1). Both JPG drivers take a long time to generate the file (sample=16.7 s). The JPG High Quality driver produces better quality but larger files (sample=50 KB). The JPG Small File driver produces lower quality but smaller files (sample=27 KB).

Unlike .gif, .pcx, .png, and .ppm files, .jpg is a "lossy" format (information is lost). JPG files doesn't store the exact original image; they store an altered version. For photo-like images, the changes are barely noticeable. For drawings from CoPlot, the changes are annoying.

In general, you should use the GIF driver instead of either of the JPG drivers. GIF is much more suitable for the kinds of drawings created by CoPlot than JPG is. JPG is better for photo-like images.

PCX B&W (.pcx) and
PCX Color (.pcx)
save an image of the entire drawing in a pcx image file. PCX files are an older file format once widely used (notably by scanners and fax machines) but still with significant support. They have a simple compression scheme which works well with the kinds of drawings created by CoPlot. This driver has a "resolution" of 100 pixels per inch, the same as the CoPlot screen driver when you aren't zoomed in (Drawing : Zoom 1). Both PCX drivers are reasonably fast and produce small files.

The PCX B&W driver produces monochrome images (suitable for fax machines) (4.0 s, 7 KB). This driver uses dither patterns (like halftone dots) to simulate shades of gray.

The PCX Color driver produces color images (4.6 s, 18 KB). Color PCX files are limited to 256 colors so this driver always uses the nearest colors in the standard CoPlot palette.

.png
saves an image of the entire drawing in a png image file. png files are an increasingly common lossless image file type on the World Wide Web. This driver has a "resolution" of 100 pixels per inch, the same as the CoPlot screen driver (when you aren't zoomed in -- Drawing : Zoom 1). Because png files are lossless, they do a good job (better then .jpg files) at compressing drawings that don't have images in them. Unlike gif files (which are limited to 256 colors), png files allow any number of colors. The files are generated slowly (sample=16 s) but are very small (sample=6 KB, the smallest of any driver other than CoPlot's native .draw format and .gif files).).
.ppm
saves an image of the entire drawing in a ppm image file. ppm files are a commonly used intermediate image file type on Unix computers. There are free utilities to convert ppm files into many other types of image files; visit www.acme.com. This driver has a "resolution" of 100 pixels per inch, the same as the CoPlot screen driver (when you aren't zoomed in -- Drawing : Zoom 1). ppm files are not compressed, so they are generated pretty quickly (sample=3.7 s) but are very large (sample=542 KB)!

Vector File Formats
Vector files store instructions for drawing a drawing. They are usually the best choice when you are most concerned about the quality of the drawing when printed, although they look okay on a screen. Vector files can be scaled to any size (tiny or huge) and still look good. In most cases, the files are larger but are created more quickly than image files. Vector files have a few potential problems:
  1. The crude text on the screen problem: Except for the PostScript and PDF drivers, any text in vector files will appear crude when the vector file is displayed on a computer screen by another program. The good news is that when you print the files, the text will look very good.
  2. The colored line printing problem: Only the PDF and WMF drivers have this problem.) If you print a colored (non-black) line on a black and white printer, some programs will draw the lines as solid black instead of with a gray-like dither pattern. This is usually a minor problem, but it can be serious with colored text (which has lines drawn around the edges) and other objects. If this is a problem for your drawing, change the color of all Text objects to be black.
  3. The hollow object problem: If you make a solid filled path object with a subpath (to put a hole in the object) or an Ellipse object with Inner Size > 0 (to make a doughnut shape), the resulting vector files can be huge. The problem is that (currently) some of the drivers need to draw these shaped by filling in the filled area with lots and lots of lines.
  4. The Image object problem: Image Objects make the files huge. Currently, if your drawing includes a photo-like image file, the resulting vector file will be huge.
Acrobat .pdf
This driver creates version 1.0 .pdf files for Adobe's Acrobat program. These files can be viewed and printed with the Acrobat plug-in (available for free for most browsers from Adobe at http://www.adobe.com). The drawings look good on the screen and when printed. This driver uses the values from the Drawing : Coordinates : Page Width/Height and Left/Bottom Margin settings to position the drawing on the page. This driver has a resolution of 1200 dpi. Along with the PostScript driver, this is the fastest driver (sample=0.4 s) and generates very small files (sample=14 KB). Because this driver uses PostScript fonts when possible, text drawn with this driver has the best possible quality. PDF files suffer from the colored line printing problem. If you use Drawing : Other : Author, the author's name will be put in the .pdf file.
CGM Save text as graphics (.cgm)
CGM Save text as text (.cgm)
These drivers create version 1 .cgm files in the ANSI standard Computer Graphics Metafile format, which was until recently the only officially standard vector graphics file format. For the difference between the two drivers, see Save Text As .... CGM files can be imported into many other programs, notably all Microsoft programs (for example, Word and PowerPoint). This driver has a resolution of 600 dpi. The files are produced very quickly (sample=0.5 s) and are moderately sized (sample=50 KB). If you use Drawing : Other : Author, the author's name will be put in the .cgm file.

If you have trouble importing cgm files in MS Word or PowerPoint, you may need to reinstall your Microsoft programs to load the CGM graphics filter. This isn't as bad as it sounds. The installer knows about your current installation, and just needs to know what other features you want installed. In this case: install All (not just some) of the graphics filters.

HPGL/2 B&W
This driver creates HPGL/2 black and white files which can be printed on HPGL/2 printers, notably HP DeskJet and LaserJet printers and HP raster plotters (not pen plotters). Colors in your drawing are converted to shades of gray. This driver uses the values from the Drawing : Coordinates : Page Width/Height and Left/Bottom Margin settings to position the drawing on the page. This driver has a resolution of 1016 dpi. The files are produced very quickly (sample=0.8 s) and are very small (sample=40 KB).
HPGL/2 Color
This driver creates HPGL/2 color files which can be printed on HPGL/2 color printers, notably color HP DeskJet and color LaserJet printers and HP color raster plotters (not pen plotters). This driver uses the values from the Drawing : Coordinates : Page Width/Height and Left/Bottom Margin settings to position the drawing on the page. This driver has a resolution of 1016 dpi. The files are produced very quickly (sample=0.8 s) and are moderately sized (sample=42 KB).
PostScript .eps
This driver creates Encapsulated PostScript version 2.0 files. They are suitable for printing on PostScript printers (just copy them to the printer with a DOS command like copy myfile.eps lpt1: ). This driver uses the values from the Drawing : Coordinates : Page Width/Height and Left/Bottom Margin settings to position the drawing on the page. This driver has a resolution of 1200 dpi. Along with the Acrobat PDF driver, this is the fastest driver (sample=0.3 s) and generates very small files (sample=11 KB). Because this driver uses PostScript fonts when possible, text drawn with this driver has the best possible quality. If you use Drawing : Other : Author, the author's name will be put in the .eps file.

Many programs (like Microsoft Word) will let you insert an .eps file, but won't show you the drawing on screen and will only print it on a PostScript printer. There is a free (for non-commercial use) pair of programs called GhostScript (the non-graphical engine) and GhostView (the graphical frontend) (available at http://www.cs.wisc.edu/~ghost/) that allow you to view, convert, and print .eps files.

PCTeX lets you insert an .eps file in a document but may stretch the drawing if it isn't square. If this problem occurs, change the Drawing : Coordinates : Drawing Bounds to make the drawing square before using File : Save As : PostScript .eps.

By default, the screen size (the coarseness of the dots used to simulate shades of gray) used by eps files is quite fine. You may want to make it more coarse so that your printouts look better when photocopied. You can make the change by editing the .eps file with a text editor: After the line that starts with: "%%PageBoundingBox:", add a new line: "75 45 {dup mul exch dup mul add 1 exch sub} setscreen", where 75 is the dots per inch (dpi) of the screen (75 is medium coarse) and 45 is the angle (in degrees) of rotation for the screen. You may wish to use a different dpi value.

SVG Save text as graphics (.svg)
SVG Save text as text (.svg)
These drivers create version 1.0 SVG files. For the difference between the two drivers, see Save Text As .... SVG is the new standard from W3C (http://www.w3.org/TR/SVG/) for Scalable Vector Graphics. Someday, you will be able to refer to .svg files in HTML documents just as you currently can refer to .gif and .jpg files. Someday, HTML browsers will display these files without plugins. But right now, you need to get a plugin for your browser. The most common one is available from Adobe (http://www.adobe.com/svg/viewer/install/). Also available is a standalone viewer called Jackaroo (http://www-sop.inria.fr/koala/jackaroo/). Others are available on the web (search for "SVG viewer" with your favorite web search engine).

The SVG drivers have a resolution of 1000 dpi. The files are produced fairly quickly (sample=0.9 s) and are fairly large (sample=62 KB). The results look good on the screen and when printed. With the current driver, if your CoPlot drawing has an Image object, the .svg file will be huge.

WMF Save text as graphics (.wmf)
WMF Save text as text (.wmf)
These drivers create version 3.0 Windows MetaFiles. For the difference between the two drivers, see Save Text As .... They are an acceptable way of transferring images to many Windows programs (notably all Microsoft programs, for example, Word and PowerPoint), but suffer from the colored line printing problem. These drivers have a resolution of 1000 dpi. The files are produced very quickly (sample=0.5 s) and are moderately sized (sample=29 KB).
WordPerfect .wpg
This driver creates files in the DrawPerfect 5.1 format and is good for moving drawings into WordPerfect. This driver has a resolution of 600 dpi. The files are produced very quickly (sample=0.4 s) and are moderately sized (sample=27 KB).


Menu Tree / Index    

File : Page Setup

This dialog box lets you set the drawing size (within which you draw things) and coordinate system, the page size (for when the drawing is printed), and the page margins (which position the drawing on the printed page). Actually, it is the same dialog box as Drawing : Coordinates.

Currently, CoPlot ignores the page size setting on the File : Print dialog box. You must select the desired page size and orientation here (or with Drawing : Coordinates).


Menu Tree / Index    

File : Print

The File : Print dialog box lets you set up a print job. It lets you select:

Default Settings - Currently, the printer's default settings are not affected by the changes you make on this dialog box, so your changes won't be remembered from one print job to the next. If you want to change the defaults in MS Windows, use Start : Settings : Control Panel : Printers : your printer : Print : Properties and make your changes there.

Page Size and Orientation should be set up with File : Page Setup or Drawing : Coordinates (they are actually the same dialog box), not with File : Print. The settings for Page Size and Orientation on the File : Print dialog box are ignored (sorry, it is a quirk of Java). To print in landscape orientation, specify a Page Size where the Width is greater than the Height.

Printing Within a Macro - If you use File : Print while recording a macro, the macro will not record any changes you make on the file print dialog box. When you play that macro, the file print dialog box will not be shown and the default printer settings will be used for the print job.

Notes About Specific Printers

HP LaserJets without PostScript
You may need to check Properties : Graphics : Graphics Mode : Use Raster Graphics, not Use Vector Graphics. Some HP LaserJets don't have enough memory to handle printing complex drawings via vector graphics. Printing is also faster with Raster Graphics.

The Properties : Graphics : Dithering settings have little effect. All of the settings are too fine (even the Coarse setting). This is the driver's responsibility. There is nothing we can do about it. Consider finding a PostScript printer, which offers much better control over what it calls 'Halftoning'.

Remote Printing - CoPlot's File : Save As offers an alternative route to printing, notably for remote printing, since it can save the drawing in different types of graphics files which can be printed later or on a different printer. This can be useful when you want to send the drawing to other people so they can view and print it. For example, you can print via:

Adobe Acrobat Reader
Use File : Save As : Acrobat PDF to save the drawing in a .pdf file. Then anyone can use Adobe Acrobat Reader (available for free from Adobe's web site, www.adobe.com) to view and print the file.
HTML Browsers (for example, Internet Explorer and Netscape Communicator)
Use File : Save As : GIF89a (.gif) to save the drawing in a .gif file. .gif files can be viewed (good quality) and printed (poor quality) with any HTML browser.
Microsoft Word or PowerPoint
Use File : Save As : WMF to save the drawing in a .wmf file. Then anyone can use Insert : Picture : From File in Word to view and print the file.
PostScript printers
You can print to PostScript printers by using File : Save As : PostScript .eps to save the drawing in an .eps file. Then, in a DOS window in Windows, type copy myfile.eps lpt1: to copy the file to the printer (substitute your file name). If your printer is on the 2nd or 3rd parallel port, use lpt2: or lpt3:.
HP LaserJets (and compatibles)
You can print to most HP LaserJets (perhaps not some of the L models) by using File : Save As : HPGL/2 B&W to save the drawing in a HPGL (.hp2) file. Then, in a DOS window, type copy myfile.hp2 lpt1: to copy the file to the printer (substitute your file name). If your printer is on the 2nd or 3rd parallel port, use lpt2: or lpt3:.


Menu Tree / Index    

File : 1-9

Options 1-9 on the File menu first ask if you want to save the current file. Then they re-open a recently used .draw file.

Only files opened or saved as .draw files are placed on the list. Other file types (for example, .eps files) are not.

The list of recent files is automatically saved in the CoPlot.pref preference file (which is described in the CoStat Manual, costat.htm).


Menu Tree / Index    

File : Exit

This first asks if you want to save the current drawing file. Then it closes the CoPlot window. If multiple CoPlot windows are open (via File : New Window), the other CoPlot windows are not affected.


Menu Tree / Index  

Datafile

Datafiles are the source of data to be plotted on graphs. CoPlot has slots to hold up to 15 datafiles. Choosing one of the slots on the Datafile menu lets you load data into that slot and edit it. It is useful (but not required) to load the data before creating the graph. The data editor that is built into CoPlot is called CoStat. See the CoStat Manual (costat.htm). CoStat can also do statistical procedures (like regressions) on the data.

If the datafile slot you choose is empty, you can use CoStat's File : Open to load data from an existing data file, or use File : New to set up a new data file (so you can type in the data).

After you have loaded data into a Datafile slot, you can use Create : Graph to create a graph. After creating a graph, the Edit : Graph dialog box will pop up so that you can edit the graph until it looks like you want it to look. The Dataset options on that dialog box let you specify which columns of which datafile you want to plot on the graph.

Saving Data - If you make changes to a datafile and want to save the changes, use CoStat's File : Save or File : Save As to save the changes to a disk drive.

When you save a drawing as a .draw file, CoPlot automatically saves any datafiles which have been changed. Datafiles are not automatically saved when you save the drawing in other formats.

Warning: If you make a change to a datafile which you want to keep but you don't want to save the .draw file, you must use CoPlot's Datafile : x : File : Save or File : Save As to manually save the changes to the datafile.

Is the data stored in the .draw file? CoPlot's .draw files don't store the data from the data files. Instead, they just remember the name of the data file. Thus, data is always stored in a separate file. It was set up this way so that several graphs in one or more drawings can refer to one data file. Changes to that one data file (for example, fixing a mis-typed data value) will be reflected in all of the graphs which refer to that data file. This promotes data integrity (since there is only one copy of the data to maintain) and saves disk space (important for large data files). So if you want to email a .draw file which references a datafile, you need to email the .draw file and the datafile file.

A list of files used by the current drawing can be found at Drawing : List Of Files.

Removing a datafile from the list - To remove a datafile from the datafile list:

  1. Use CoPlot's Datafile : x to select the datafile.
  2. Use CoStat's File : Close to close the file.
  3. Close the CoStat window (File : Exit or the CoStat window's upper right 'X' button).


Menu Tree / Index  

Create

CoPlot is a program for making drawings, notably drawings with graphs. To use it:

The Create menu lets you pick which type of drawing object you want to create.

objects.gif

See:

Or, you can use the icons along the upper part of the left edge of the CoPlot window, which are shortcuts to the Create : Xxx menu options.


Menu Tree / Index    

Create : Big Text

Big Text objects are actually blocks of text drawn within shapes (for example, rectangles, triangles, circles), although you can draw the text alone (the default), or the shape alone. The size of the shape is (usually) automatically adjusted to accommodate the text.

Create : Big Text opens a simple dialog box. Basically, you just click on the position where you want the Big Text object to be created.

The Group For New Objects textfield lets you specify the group number for new Big Text objects.

When you create a new Big Text object, it will have the attributes of the last Big Text object that you created (or the default attributes if this is the first one).

Right after you create a Big Text object, the Edit : Big Text dialog box appears so you can edit the object's attributes.

Try Text instead? Big Text objects are usually multi-line blocks of text. When you edit a Big Text object, all editing is done in a text editor. If you want to work with a small piece of text (usually one or two lines), consider using Create : Text instead.


Menu Tree / Index    

Create : Dimension

Create : Dimension opens a simple dialog box. Follow the directions in the dialog box to create a dimension object. A dimension object is a piece of text with arrows extending from the left and right of the text to the two points that you specify.

The angle of the text is determined by the two points that you specify. If you turn your head so that the first point is on your left and the second point is on your right, the text will be "upright".

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Dimension objects support a special tag, dimension, which displays the distance between the two points, in Drawing Coordinates. The most common form of this tag is <dimension g> which displays the distance with a 'general' format number.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The Group For New Objects textfield lets you specify the group number for new dimension objects.

When you create a new Dimension object, it will have the attributes of the last Dimension object that you created (or the default attributes if this is the first one).

Edit - If you press Edit after creating a dimension object, you can edit the dimension object's attributes until it looks like you want it to look. The attributes include the line color, arrow type, and arrow size, and the initial font, text height, text color, etc.


Menu Tree / Index    

Create : Ellipse

Create : Ellipse opens a simple dialog box. Follow the directions in the dialog box to create an ellipse.

The Group For New Objects textfield lets you specify the group number for new ellipse objects.

When you create a new Ellipse object, it will have the attributes of the last Ellipse object that you created (or the default attributes if this is the first one).

Edit - If you press Edit after creating an ellipse object, you can edit the ellipse's attributes until it looks like you want it to look. Ellipses have a large number of attributes which allow them to be drawn many ways, for example: as circles, arcs, ellipses, pies, pie slices, doughnut (torus) shapes, etc. Ellipses can have text to identify the ellipse. The text can include a special embedded text tag (<arcdimension d g>) which displays the arc angle.


Menu Tree / Index    

Create : Graph

Create : Graph opens a simple dialog box. Follow the directions in the dialog box to create a standard XY graph.

The Group For New Objects textfield lets you specify the group number for new graph objects.

When you create a new Graph object, it will have the default attributes.

Right after you create a graph, the Edit : Graph dialog box will pop up so that you can edit the graph until it looks like you want it to look. There are a large number of editable options which allow you to change the type of graph, specify data and functions to be plotted, and change the appearance of each part of the graph (by specifying line types, line widths, colors, etc.).


Menu Tree / Index    

Create : Graph Array

Create : Graph Array opens a dialog box that lets you create and manage the Graph Array (a 2D array of Graph objects). This is useful when you want to make what appears to be a graph with 2 Y axes, a graph with multiple Y axes, an n Channel graph, a Correlation Matrix, or a 2D array of separate graphs. After creating the graph array, you can edit the graphs individually or simultaneously, as you would edit any other graphs (see Edit : Graph).

The Graph Array isn't a separate object, but rather a convenient way of working with a 2D array of graph objects. There is only one Graph Array per drawing.

Once the Graph Array has been created, you can use Create : Graph Array again to modify it. Or you can use Edit : Graph Array if you only want to change the size, shape, or position of the graphs.

The Red Graph Outlines - as you make changes to the attributes on this dialog box, CoPlot draws (in red) the outlines of the graphs that will result if you press Apply.

The options on the Create : Graph Array dialog box are:

Type
specifies the basic style of the graph array. Type: Layout Only manages the size and shape of the graphs, but makes no other changes to the graphs. All of the other Types make more changes to the graphs, including: The Type options are:
Center X, Y
specifies the center for the entire graph array. You can use the left mouse button to drag the block that appears on the screen at the center of the graph array. Or, you can enter the X, Y values (in Drawing Coordinates).
X, Y Axis Size
specifies the length of the graph's X and Y axes (in Drawing Coordinates). All graphs in the array will be the same size. This works by setting each graph's Graph : Overview : X Axis : Size and Y Axis : Size.
Between Columns, Rows
specifies the distance (in Drawing Coordinates) between the centers of the columns and the centers of the rows.
Y Axis Offset
For Type: Multiple Y Axes, this specifies the distance (in Drawing Coordinates) that Y axes are offset from one another.
Datafile
specifies which Datafile will provide data for the graphs.
n Columns, n Rows
specifies how many columns and how many rows of graphs the graph array will have. Column 1 (which uses the X1 data) is at the left. Row 1 (which uses the Y1 data) is at the top.
Xn, Yn
specifies which columns in the datafile will provide the x data for graphs in columns 1, 2, 3, ... and the y data for graphs in rows 1, 2, 3, ...

Although the dialog box only shows up to 10 x and y variables, nColumns and/or nRows can be bigger than 10. In this case, X11 is assumed to be the column in the data file to the right of the X10 column; X12 is the column after that; ... Similarly, Y11 is assumed to be the column in the data file to the right of the Y10 column; Y12 is the column after that; ...

Group For New Objects
lets you specify the group number for new graph objects.
Apply
creates the graph array as described by the settings above.
Edit the Graphs
takes you to the Edit : Graph dialog box, with all of the graphs in the graph array picked (so you can edit them simultaneously).
Undo All
resets all of the settings and changes all of the graph array's graphs to be as they were when you opened this dialog box.
Close
closes this dialog box. The current settings are remembered by the program (until another drawing is opened) and in this drawing's .draw file for the next time this dialog box is opened for this drawing.


Menu Tree / Index    

Create : Image

Create : Image opens a simple dialog box so you can create an image object. Image objects display images from standard image files (.gif, .jpg, etc.). CoPlot's .draw files store the file names, not the image data. Follow the directions in the dialog box to load an image from a file and specify the location where it will be drawn. The location is specified as the center of the image.

Does the .draw file store the image? No. CoPlot's drawing files just remember the name of the image file, they don't store the image data. So if you want to email a .draw file which references an image, you need to email the .draw file and the image file. A list of files used by the current drawing can be found at Drawing : List Of Files.

Browse - The browse button lets you browse through lists of specific types of image files: Icons, *.gif, *.jpg, *.jpeg, *.pcx, *.png, and *.ppm files.

The Icons option brings up a visual system for picking icons. Icons are small images (32x32 pixels) which come with CoPlot. If you pick one of the icons, it puts the icon's name (for example, Icons:Science:21) in the File Name field in the Create : Image dialog box, so that the icon will be displayed (not an image from a separate image file) when you create the image object. Icons look best at Size: 0.32, 0.64 and 0.96 inches. They look okay at Size: 0.3, 0.35, 0.65, and 1 inch. They don't look very good at larger sizes or when printed. If you downloaded CoPlot from the CoHort web site, the standard installation of CoPlot includes only a small number of icons. You can download the full set of icons from the CoPlot download page at www.cohort.com/javadownload2.html#icons. If you installed CoPlot from a CD, you have the full set of icons.

The Group For New Objects textfield lets you specify the group number for new image objects.

When you create a new Image object, it will have the attributes of the last Image object that you created (or the default attributes if this is the first one).

Edit - If you press Edit after creating an image object, you can edit the image's attributes: choose a different file, specify the attributes of the image (there are many), or specify a different location where it will be drawn, etc.


Menu Tree / Index    

Create : Path

Create : Path opens a simple dialog box. Follow the directions in the dialog box to create a Path object. A Path is basically a series of points and a set of attributes describing how the path should be drawn. The attributes allow Paths to be drawn many ways (for example, as simple lines, curved lines, curved lines with arrows, a series of markers, or as filled areas).

Buttons - For most Path objects, you will just use your mouse to click on the points that define the path, and double click on the last point to signify the end of the path. But this dialog also has 3 buttons to assist you in defining a path.

The Group For New Objects textfield lets you specify the group number for new path objects.

When you create a new Path object, it will have the attributes of the last Path object that you created (or the default attributes if this is the first one).

Edit - If you press Edit after creating a path object, you can edit the path's attributes until the path looks like you want it to look. The attributes include:


Menu Tree / Index    

Create : Text

Text objects are actually text drawn within shapes (for example, rectangles, triangles, circles), although you can draw the text alone (the default), or the shape alone. The size of the shape is (usually) automatically adjusted to accommodate the text.

Create : Text opens a simple dialog box. Follow the directions in the dialog box to create a text object.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

The Group For New Objects textfield lets you specify the group number for new text objects.

When you create a new Text object, it will have the attributes of the last Text object that you created (or the default attributes if this is the first one).

Edit - If you press Edit after creating a text object, you can edit the text object's attributes until it looks like you want it to look. The attributes include the initial font, text height, color, etc.

Try Big Text instead? Text objects are intended to be one line (or maybe a few short lines) of text. When you edit a text object, all editing is done in a small, one-line, text field. If you want to work with a larger block of text, consider using Create : Big Text instead.


Menu Tree / Index    

Create : Rectangle

This is a simple way to create a Text object with a (usually) rectangular shape. Unlike Create : Text, this dialog box does not insist that you enter text for the object, and the object's position is initially defined by two points (two opposite corners of the rectangle), not one. Afterwards, you can use Edit : Text to edit the Text object.


Menu Tree / Index    

Create : Bar Graph

Given a Datafile with a Labels column and one or more columns of numeric data, this dialog box simplifies the process of making a bar graph. Each row of the datafile provides the data for one group (or stack) of bars. The colors are assigned automatically. After the graph is created, you can edit it like any other Graph object.

Here is some data (from wheatmea.dt) representing the yields of 3 varieties of wheat (Dwarf, Semi-Dwarf, and Normal) grown at 4 locations (Butte, Shelby, Dillon, and Havre). If you have raw data that has not yet been summarized in this format, see CoStat's Statistics : Miscellaneous : Mean±2SD (for Bar Graphs).

Location    Dwarf   Semi-dwarf  Normal   
--------- --------- ---------- --------- 
Butte         58.39    43.4075   22.4725 
Shelby       25.245    25.5575    19.665 
Dillon      39.3725     33.155    27.165 
Havre         26.78     23.255   23.5225 
Here are the different types of bar graphs that can be created with this dialog box using the data shown above.

BarGraphs.gif


Menu Tree / Index      

Create : Pie Chart

Given a Datafile with a Labels column and a Data column, this procedure creates a pie chart (or plasmid map) by creating a set of Ellipse objects. Each row of the datafile provides the data for one slice of the pie. After you create the pie chart, you can edit the ellipses with Edit : Ellipse. Here is some sample data and the resulting sample pie chart (see pie.draw in the cohort directory):
Labels         Data 
--------- --------- 
Solutions         3 
Problems         97 

pie.gif

There are no Pie Chart objects in CoPlot. This dialog box is a "wizard" to simplify the creation of the ellipse objects which (taken as a group) look like a pie chart.

Multi-Pie Chart - After you create a pie chart, if you Edit the ellipses and set the Ellipse Inner Size attribute to something bigger than 0, you can get shapes that are like slices of a doughnut. You can use this to make a series of pie charts, each with the same center point but different Ellipse Size and Ellipse Inner Size attributes. The resulting multi-pie chart is useful for showing relative changes over time:

pie4.gif

Plasmid Map - Plasmid maps are used to diagram relevant parts of a plasmid. Usually, they are drawn as a thickened circle with different segments colored differently and identified with some text. Although plasmid maps are used for very different purposes than pie charts, they are drawn in a very similar way. The only difference is that the ellipse objects for a pie chart use an Ellipse Inner Size of 0, whereas the ellipse objects for a plasmid map use an Ellipse Inner Size of slightly less than the Ellipse Inner Size.

Here is a plasmid map (see also genetic.draw in the cohort directory):

genetic.gif

Initial Attributes - When you create a new pie chart, some of the attributes will be from the last Ellipse object that you created (or the default attributes if this is the first one). But most of the attributes will be a fixed set of attributes which are appropriate for pie charts.

Edit - Immediately after you create a pie chart, you can press the Edit button to edit the ellipse objects in that pie chart. Or, at any time, you can use Edit : Ellipse to edit the ellipses in a pie chart individually (use Pick List) or as a group (use Pick Box, Pick List, or Pick All). Attributes that you may want to change are:

The options on the dialog box are:

Datafile
specifies the Datafile which contains the data which will be used to create the pie chart.
Labels
specifies the column in the datafile with the labels for the pie slices.
Data
specifies the column in the datafile with the data which determines the relative size of the pie slices.
Keep If
specifies a boolean equation which is applied to each row of the data file and which determines which rows will be used when creating the pie chart. The result of the equation should be true or false; numeric values will be interpreted as 0 is false, everything else is true. The equation can refer to the numbers in the various columns (for example, col(2)>=20 & col(4)*2<col(5). See Using Equations in the CoStat Manual (costat.htm).
A  
This leads to a list of characters (#32 to #255, as defined by the ISO 8859-1 Character Encoding). If you click on a character, it will be inserted into the textfield at the current insertion point.
f()  
has a list of functions (and other things) that you can put in the equation. If you click on a function, it will be inserted into the equation at the current insertion point. See Using Equations in the CoStat Manual (costat.htm).
Initial Angle
This specifies the initial angle of the initial pie slice. Subsequent slices are drawn counterclockwise. If the labels for your pie slices are overwriting each other, you may be able to solve the problem by using a different Initial Angle. Otherwise, you may need to change the order of the rows of data in the datafile.
Legend Type
This specifies how the pie slices will be labelled.
Center X Y
When press Enter in one of these textfields or when you click on the position on the drawing where you want the pie chart to be drawn, the pie chart will be created.
Edit
This takes you to the Edit : Ellipse dialog box with the ellipses from the most recently created pie chart picked (so you can edit them simultaneously).
Undo
This lets you delete the pie charts you have just created, one-by-one.
Close
This closes this dialog box.
Group For New Objects
lets you specify the group number for new objects.


Menu Tree / Index  

Edit

The Edit menu leads to several different ways to edit the attributes of existing objects.

Picking Objects - Before you can edit an object, you have to pick it (that is, identify the object that you want to edit). There are several ways to pick objects (see below). Once you have picked an object, you will see an Edit : someType dialog box where you can see and change that object's attributes. You can also use the Pick options at the bottom of those dialog boxes to pick additional objects of the same type to edit simultaneously.

Or, Just Click On An Object - If no dialog box is active, you can pick an object by just right-clicking on or near the points used to create the object (just like Edit : Pick One).

Other Options on the Edit Menu:


Menu Tree / Index    

Edit : Pick One

Edit : Pick One lets you pick one object by clicking on or near the points used to create the object. You can then edit that object's attributes.

The options on the Edit menu below Pick One are similar, but they lead to the Pick One dialogs for specific object types (for example, Edit : Ellipse : Pick One). See:

Icon Buttons - The icon buttons with the light blue 'E's on the left side of the main window work as if you had selected one of the Edit : Xxx menu items and then pressed the Pick One button on that dialog box. Thus, they let you identify the type of object you want to edit and then pick items of the type by clicking on them.

Graph Array - The Graph Array is actually a group of separate graph objects. So if you use Edit : Pick One and click on a graph in the Graph Array, you can edit that graph. If you want to edit all of the graphs in the Graph Array simultaneously, use Edit : Graph Array and click on the Edit the Graphs button.

An Alternative - If no dialog box is active, you can edit an object by right-clicking on or near the points used to create the object (just like Edit : Pick One). You can then edit that object's attributes. You can also pick additional objects of the same type to edit simultaneously.


Menu Tree / Index    

Edit : Any Type

Edit : Any Type lets you pick one or more objects of different types and edit them simultaneously. Because different types of objects have different attributes, you can't edit their attributes, but you can move, copy, or delete them simultaneously.

The light blue 'E' button on the left edge of the screen is a shortcut to this dialog box. It works as if you had selected Edit : Any Type and then pressed the Pick One button once the dialog box was visible.

The options on the dialog box are:

Group
specifies the group number for the picked objects.
Pick One
lets you pick additional objects one-by-one, by clicking on or near them. Then, you can edit all of the picked objects simultaneously.
Unpick One
lets you unpick additional objects one-by-one, by clicking on or near them.
Pick Box
lets you pick additional objects by specifying a box. Any objects with one or more points in the box will be picked. Then, you can edit all of the picked objects simultaneously. This works faster than Pick One (because the algorithm is simpler), although the difference will only be noticeable on very complex drawings.
Pick List
lets you pick or unpick objects from a list of objects. A list is displayed with up to 10 objects, indicating if each one has been picked. You can easily pick or unpick an object by clicking on its checkbox. If there are more than 10 objects, there will be a Page option at the bottom of the dialog box which lets you select additional pages (each displaying another 10 objects).

Change the Text - For most types of objects, you can change the text for the object here. (Remember to press Enter after each change.) This isn't an option for path objects, since they don't have text associated with them. For Big Text objects, you can't change the text because the textfield just indicates the first few characters of the text. For graph objects the text is not the title of the graph; it is just text for identification purposes (since the Graph : Title 1 is often just ".") and is only visible and useful on this dialog box.

Pick Color
lets you pick additional objects by specifying a color. Any objects which use that color for the any purpose (Background Color, Line Color, Text Color, whatever) will be picked. (Although the colors used by parts of a graph and the colors in an image are not pickable.) Then, you can edit all of the picked objects simultaneously.
Pick Groups
lets you pick additional objects by specifying one or more group numbers (for example, "1-3, 5" or "all"). Any objects in those groups will be picked. Then, you can edit all of the picked objects simultaneously.
Unpick All
lets you unpick all of the picked objects. Presumably, you will then use one of the Pick procedures to pick objects to edit. There is no need to Unpick objects before closing the dialog box; that is done automatically.
Pick All
In the Edit : Any Type dialog box, this lets you pick all of the objects. In the Edit : Xxx dialog boxes other than Edit : Any Type, this picks all of the objects of the current type (for example, all Path objects). In all situations, this only picks objects which are in visible groups.
Move
lets you scale, rotate, and/or move all of the picked objects. A dialog box will let you specify:
X Y Scale
the scale factors for the x and y directions. This will change the size of the picked object(s) before it is rotated and moved. This may be a positive or negative, floating point value. For example, a value of 1 leads to no change; a value of 2 leads to double size; a value of 0.5 leads to half size; and a value of -1 leads to a mirror image (which works better for some object types than others).
Rotate (degrees)
specifies the angle (in positive or negative, floating point, counter-clockwise degrees) for the rotation. A value of 0 leads to no change.
Origin X, Y and Destination X, Y
specify how the object will be moved.
OK
to actually perform the Move.

Graphs - When you use Move and X/Y Scale to change the size of a graph, the parts of the graph (for example, the Graph : Title 1 : Height and Dataset : 1 : Size (Marker)) also change size. If you don't want the size of the parts of the graph to change, use Graph : Overview : Size, which just changes the size of the graph's rectangle (or cube for 3D graphs).

Copy
is like Move, except that you can make one or more copies of the original object(s). The original object(s) is left unchanged. The group of picked objects is redefined to be just the last copy of the object(s).
Delete
erases the picked objects (makes them invisible); asks you if you are sure you want to delete them; then deletes them (if you clicked on Yes).
Move One
lets you move individual picked objects by dragging blocks that are temporarily drawn at each picked object's first point. After dragging an object, you can move it more by typing a newer X,Y position or by using the + and - buttons.

There is an Undo button to undo the changes, one by one. One unusual feature is that each time you drag an object, two undo events (not just one) are generated. This is useful, because if you then press Undo once, the object is returned to its original position so you can use the + and - buttons to move it.

Hint for Aligning Objects - Use the 'Grid +' toolbar button to get a fairly coarse grid (for example, 0.1 inches or 0.5 cm). Then use Move One (or any of the other 'Move' options elsewhere in the program) to move the objects into alignment. With a coarse grid, you can get objects in perfect alignment even if you just do it visually (without looking at the coordinates).

Move All
lets you move all of the picked objects by dragging the block that is temporarily drawn at the first picked object's first point. Or you can directly specify a new X,Y position (so that all the objects will be moved relative to that change).
Move One Point
(for Path, Dimension, and Any Type objects) lets you move individual points in picked objects by dragging blocks that are temporarily drawn at each picked object's points. After dragging a point, you can move it more by typing a newer X,Y position or by using the + and - buttons.

There is an Undo button to undo the changes, one by one. One unusual feature is that each time you drag a point, two undo events (not just one) are generated. This is useful, because if you then press Undo once, the point is returned to its original position so you can use the + and - buttons to move it.

Insert Point
(for Path objects only) brings up a dialog box that lets you insert points in picked path objects by clicking and dragging on the line segment (or near the endpoint) where you want to insert a point. If the Path Type is Bezier, you should generally insert 3 points (2 control points and 1 endpoint) into the path in quick succession. See Bezier Paths.
Delete Point
(for Path objects only) brings up a dialog box that lets you delete individual points in picked path objects by clicking on the points you want to delete. If you delete the last point in an object, the object will be deleted.
Break Path
(for Path objects only) brings up a dialog box that lets you break a path object into two path objects by clicking on one of the points in the path. That point then becomes one of the end points of each of the resulting two path objects. If the Path Type is Bezier, you should generally break the path at one of the interior Bezier segment endpoints, not a control point. See Bezier Paths.
Join Paths
(for Path objects only) To combine two Path objects into one, drag the mouse from an endpoint of one path to an endpoint of a different path. The combined path will have the attributes of the first path. It is generally best not to join a Bezier path and a non-Bezier path. See Bezier Paths.
Hide
hides the objects. Objects in a drawing are stored in a list. When the drawing is redrawn, the objects are drawn in the same order as the list. Hide moves the picked objects to the beginning of the list, so they will be drawn first and partially hidden by other objects (if they overlap).
Show
shows the objects. Show is like Hide except that it moves the picked objects to the end of the list, so they will be drawn last and (possibly) hide other objects (if they overlap).
Make Invisible (and Make Visible)
erases (or draws) the picked objects. This does not delete them from the drawing, it just makes them temporarily invisible (or visible). It is useful to press this button twice when you want to verify which objects have been picked.

Screen : Redraw and the Redraw Icon Have Precedence - If the picked objects are currently invisible and you press Screen : Redraw or the Redraw toolbar button, all objects (including the picked objects) will be redrawn.

Save In File
This saves the currently picked objects in a .draw file. The file has all of the same settings as the main .draw file.
Add File          
(This is only available on the Edit : Any Type dialog box.) This procedure adds the drawing objects from another graphics file to the current drawing.
Visible Groups
Each object belongs to a group. Groups are numbered 0..65535. Visible Groups lets you choose which groups of objects are visible by specifying a list of visible groups (for example 0-3, 5 or All). See also Drawing : Groups.

Groups with picked objects will be automatically added to the list that you specify. For example, if you have picked an object in group 1 and you specify that you want to make groups 4,6 visible, CoPlot will make groups 1,4,6 visible. This is useful because it ensures that currently picked objects will remain visible.


Menu Tree / Index    

Edit : Big Text

There are several ways to get to the dialog box that lets you edit the attributes of a Big Text object:

Big Text objects are actually blocks of text drawn within shapes (for example, rectangles, triangles, circles), although you can draw the text alone (the default), or the shape alone. The size of the shape is (usually) automatically adjusted to accommodate the text. The size of the shape's features (for example, the size of the arcs at the corners of a rounded rectangle) is determined by the Text Height, even if no text is displayed. A shape's minimum height and width are determined by the Text Height and the Shape Border, even if no text is displayed.

Big Text objects have many attributes which you can change in order to make the Big Text look like you want it to look.

What is the difference between Text and Big Text? Text objects are intended to be for one line (or maybe a few short lines) of text. When you edit a text object, all editing is done in a small, one-line, text field. Big Text is intended to be for large blocks of text. When you edit a Big Text object, a text editor screen appears. Otherwise, they are identical.

The options on the dialog box are:

Text Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Text
opens up a text editor, CoText, which allows you to edit the text. In CoText, choose File : Save or File : Exit : Save? Yes when you want to save the changes that you have made to the text.

Big Text can include embedded text tags (which control bold, italics, underlining, font changes, size changes, etc.). The Edit : Insert Tag option in CoText lets you insert embedded text tags.

Big Text can also include character entities (HTML-like names for accented characters, Greek characters, and mathematical symbols). The Edit : Insert Character Entity option in CoText has a drop down list of character groups and an image showing the characters in that group. When you choose a character, the character's name is inserted in the text at the current insertion point.

Text Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Text Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Text Position
specifies the position for the text within the shape (if the shape is larger than necessary for the text). The horizontal component also specifies whether the text is initially left justified, centered, or right justified. The default is Center center.
Background Color
specifies the solid color to be used in the background of the shape. If this is set to notDrawn, the background won't be drawn.
Line Color
specifies the color for the line around the perimeter of the shape. If this is set to notDrawn, the line won't be drawn and none of the other Line attributes will be stored.
Line Type
specifies the dash-space pattern which is used repeatedly when the line is drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint). Disjoint is unusual in that it draws a line between points 1 and 2, 3 and 4, 5 and 6, etc., but not between points 2 and 3, 4 and 5, 6 and 7, etc.
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the line (in Drawing Coordinates).
Shape Type
specifies the type of shape which is drawn around the text. The default is Rectangle. The shape is only visible if Background Color or Line Color is not notDrawn.
Shape V Align
specifies the vertical alignment of the shape, relative to the object's location point. There are Shape V Align options related to the shape and options related to the text. The Above and Below options are useful when the Shape Type points up or down. The default is Shape Center.
Shape H Align
specifies the horizontal alignment of the shape, relative to the object's location point. There are Shape H Align options related to the shape and options related to the text. The Farther Left and Farther Right options are useful when the Shape Type points left or right. The default is Center.
Shape Width
specifies the width of the shape (in Drawing Coordinates). Shape Width will be the actual width if Shape Type is Rectangle, but many other shapes are somewhat larger. If the text needs more space than the Width setting specifies, the shape will be drawn as wide as necessary to accommodate the text. The default is "." (indicating auto-sizing, with no automatic word-wrap), but it may be any value greater than 0.
Shape Height
specifies the height of the shape (in Drawing Coordinates). Shape Height will be the actual height if Shape Type is Rectangle, but many other shapes are somewhat larger. If the text needs more space than the Height setting specifies, the shape will be drawn as tall as necessary to accommodate the text. The default is "." (indicating auto-sizing), but it may be any value greater than 0.
Shape Border
specifies the relative size of the border around the text, within the shape. The default is 1. [Added in 6.100.]
Shape Angle
specifies the angle for the shape (in floating-point, counter-clockwise degrees). This is usually 0, but may be any value.
Shape Shadow
specifies the shadow type for the shape. Shadows are always colored gray. The offset of the shadow is determined by the Text Height. There are options for single shadows and triple shadows (implying several objects). The default is (none).
Group
specifies the group number for the picked Big Text objects.

Buttons - There are several buttons at the bottom of the dialog box which let you pick additional Big Text objects, move, copy or delete the picked objects, and hide and show the picked objects. See Edit : Any Type.


Menu Tree / Index    

Edit : Dimension

There are several ways to get to the dialog box that lets you edit the attributes of a dimension object: A dimension object is a piece of text with arrows extending from the left and right of the text to the two points that you specify. Dimension objects have many attributes which you can change in order to make the objects look like you want them to look.

Dimension objects support a special tag, dimension, which displays the distance between the two points, in Drawing Coordinates. The most common form of this tag is <dimension g> which displays the distance with a 'general' format number.

The text will be drawn at an angle, as described by the path from the first point to the second point. If you want the text to be upside down from what you see, exchange the positions of the two points with Move One Point.

If there is more than one line of text, the text will be drawn left justified by default. Add "<center>" or "<right>" to the beginning of the text if you want the text centered or right justified.

The options on the dialog box are:

Text Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Text
specifies the characters to be written. If the text is too long to fit between the two points, it will be drawn beyond the second point and the arrows will point inwards.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc). Dimension objects support a special tag, dimension, which displays the distance between the two points, in Drawing Coordinates. The most common form of this tag is <dimension g> which displays the distance with a 'general' format number.

Text Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Text Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Line Color
specifies the color for the line. If this is set to notDrawn, the line won't be drawn and none of the other Line attributes will be stored.
Line Type
specifies the dash-space pattern which is used repeatedly when the line is drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint).
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the line (in Drawing Coordinates).
Arrow Type Start, Finish
specifies the type of arrowhead (notDrawn, Fancy, Filled or Line) for the first and second point. The color of the arrow heads is the line color. So if Line Color is set to notDrawn, the arrowheads won't be drawn.
Arrow Headsize
specifies the length (in Drawing Coordinates) along one edge of the arrowhead.
Arrow Angle
specifies the angle (in degrees, 0 - 360) of the arrow head.
Group
specifies the group number for the picked dimension objects.

Buttons - There are several buttons at the bottom of the dialog box which let you pick additional dimension objects, move, copy or delete the picked objects, and hide and show the picked objects. See Edit : Any Type.


Menu Tree / Index    

Edit : Ellipse

There are several ways to get to the dialog box that lets you edit the attributes of an ellipse:

By changing their attributes, ellipse objects can be made into various ellipse-like shapes (for example, circles, arcs, ellipses, pies, pie slices, doughnut (torus) shapes, and doughnuts with slices cut out). Ellipses can have text to identify the ellipse. The text can include a special embedded text tag (<arcdimension d g>) which displays the arc angle.

ellipse.gif

If there is more than one line of text and it is on the right side of the ellipse, it will be left justified. If text is on the left side of the ellipse, it will be right justified.

There are three types of attributes on the dialog box:

1) Ellipse attributes
determine how the perimeter of the ellipse object is drawn. These are the attributes that determine which ellipse-like shape will be drawn. For example, if Ellipse Width is 1, a circle will be drawn. But if Ellipse Width is 2, an ellipse will be drawn that is twice as wide as high.

When experimenting with Ellipse attributes, we recommend initially changing just one attribute at a time to be different from the defaults (which generates a circle). Then you can easily see the effect of that one change.

2) The various Color attributes
determine if a given component of the ellipse (the Background, Fill, Line, or Text) is to be drawn. For example, if Line Color is black, a black line will be drawn around the perimeter of the ellipse. But if Line Color is set to notDrawn, no line will be drawn.
3) The component's attributes
specify the details of how that component is to be drawn (provided the color for that component is not notDrawn). For example, Line Type, Line Dashsize and Line Width determine how the line will be drawn, if Line Color is not notDrawn).

Important: If a component color (for example, Line Color) is notDrawn, none of the component's other attributes (for example, Line Width) will be stored. Therefore, first set the component color to something other than notDrawn, then set the other attributes. For example, first set Line Color to red4, then set Line Width to 0.1, not vice versa.

The options on the dialog box are:

Ellipse Size
specifies the basic size (radius) (in Drawing Coordinates) of the ellipse.
Ellipse Inner Size  
specifies the size (in Drawing Coordinates) of an inner ellipse, which parallels the main ellipse. It is only visible if the value of Ellipse Inner Size is greater than 0 and if Background Color or Fill Color is not notDrawn. If it is visible, it lets you make a "torus" (a doughnut shape).
Ellipse Width  
specifies the width of the ellipse, relative to Ellipse Size (the height). A value of 1 generates a circle. Any other value generates an ellipse.
Ellipse nSides (2..360)
specifies the integer number of sides used to draw the ellipse (if Ellipse Start=0 and Ellipse Finish=360). Thus, ellipses are really polygons with any number of sides: 3 sides makes a triangle, 4 a square, 5 a pentagon, etc. If the ellipse object has a large number of sides, for example 90 (the default) or 180, it will look like an ellipse.
Ellipse Start (degrees)
specifies the angle (in floating point, counter-clockwise degrees) that the ellipse starts at. This should be 0 to draw a full ellipse. Changing this (and/or Ellipse Finish) lets you draw several shapes: arcs, pie slices, and doughnuts with slices cut out. If the Ellipse Finish angle is less than the Ellipse Start angle, the ellipse will be drawn counter-clockwise. If abs(finish-start)>=360, a full circle/ellipse will be drawn.
Ellipse Finish (degrees)
is like Start, except that it specifies the finishing angle.
Ellipse Angle (degrees)
specifies the angle (in floating-point counter-clockwise degrees) of the main axis of the ellipse. This lets you rotate the object. A value of 0 means that it isn't rotated.

When the ellipse's text is active, it is better to leave Ellipse Angle at 0 and use the Ellipse Start and Ellipse Finish angles to rotate the ellipse, because Ellipse Angle affects the way the text is drawn. Use Ellipse Angle to rotate the ellipse when you will be viewing the ellipse from a different angle. For example, Ellipse Angle: 90 is appropriate when you want to draw a pie chart and view it rotated (text and ellipses) to 90 degrees. Ellipse Angle is also useful when Ellipse nSides is a small number an you want to rotate the resulting polygon.

Ellipse Skew (degrees)
specifies the angle of the secondary axis relative to its standard position (90 degrees counter-clockwise from the main axis). Only in unusual circumstances will you want to change this from its default value of 0.
Background Color  
specifies the solid color to be used in the background of the object. If this is set to notDrawn, the background won't be drawn; otherwise it makes the ellipse look like a pie, pie slice, or torus.
Fill Color
specifies the color for the fill pattern (a hatch pattern or bit-mapped pattern). If this is set to notDrawn, the fill pattern won't be drawn and none of the other Fill attributes will be stored.
Fill Type
specifies a hatch pattern (a combination of horizontal, vertical, and diagonal lines) or a bit-mapped pattern. The bit-mapped patterns are only scaled to a limited number of sizes (integer multiples of the original pattern), so don't be surprised if a small change to Fill Size has no effect.
Fill Size
specifies the distance (in Drawing Coordinates) between lines in the hatch patterns or the unit size of bit-mapped patterns.
Fill Linewidth
specifies the linewidth (in Drawing Coordinates) used to draw the hatch patterns.
Line Color
specifies the color for the line around the perimeter of the ellipse. If this is set to notDrawn, the line won't be drawn and none of the other Line attributes will be stored.
Line Type
specifies the dash-space pattern which is used repeatedly when the line is drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint). Disjoint is unusual in that it draws a line between points 1 and 2, 3 and 4, 5 and 6, etc., but not between points 2 and 3, 4 and 5, 6 and 7, etc.
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the line (in Drawing Coordinates).
Arrow Type Start, Finish
specifies the type of arrowhead (notDrawn, Fancy, Filled or Line) for the start and the finish of the ellipse's path. The color of the arrow heads is the line color. So if Line Color is set to notDrawn, the arrowheads won't be drawn.
Arrow Headsize
specifies the length (in Drawing Coordinates) along one edge of the arrowhead.
Arrow Angle
specifies the angle (0 - 360 degrees) of the arrow head.
Text Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Text
specifies the characters to be written. The text is only visible if the Text Color is not notDrawn.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Text Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Text Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Text Position
specifies the position for the text. The default is '0) Horizontal, out'.
Group
specifies the group number for the picked ellipse objects.

Buttons - There are several buttons at the bottom of the dialog box which let you pick additional ellipse objects, move, copy or delete the picked objects, and hide and show the picked objects. See Edit : Any Type.


Menu Tree / Index    

Edit : Graph

There are several ways to get to the dialog box that lets you edit the attributes of a graph: Each graph has many, many attributes which you can change in order to make it look like you want it to look. There are attributes which allow you to change the type of graph, specify data and functions to be plotted, and change the appearance of each part of the graph (by specifying line types, line widths, colors, etc.).

Parts Of A Graph - The Edit : Graph dialog box is different from the Edit dialog boxes for other drawing objects because graphs have so many attributes. Each graph is composed of many parts and each part has its own attributes.

To edit graphs:

Each graph part has a two part name. The first parts of the names are Graph, Map, Dataset, Function, Comment, X Axis, etc. You can see the second parts of the names on the related drop-down lists. For example: choose X Axis : Title 1 to see a secondary dialog box with the attributes of the X Axis's primary title. When you close one of the secondary dialog boxes, you will again see the Edit : Graph dialog box. Or, just pick another part of the graph and the previous secondary dialog box will be automatically closed. Here is an illustration with many parts of the graph labelled:
parts.gif

The options on the Edit : Graph dialog box are:

More Buttons - There are several buttons at the bottom of the dialog box which let you pick additional graph objects, move, copy or delete the picked objects, and hide and show the picked objects. See Edit : Any Type.

Related Settings - Usually, all attributes related to a part of a graph can be found on the dialog box for that part of the graph (for example, Edit : Graph : X Axis : Title 1). Sometimes there are related settings in other dialog boxes.


Menu Tree / Index          

Edit : Graph : Graph : Overview

The Edit : Graph : Graph : Overview dialog box lets you specify the Graph Type, Color, and size and shape. The options on the Graph : Overview dialog box are:
Type  
specifies the type of graph:
XY
is the most common graph for plotting data and/or equations.

wheat.gif

3D
is the 3D version of the XY graph.

3dfunction.gif

Conic  
is used to make maps with Alber's Equal-Area Conic Projection. This projection is used extensively by the USGS, notably for all of the sectional maps of the U.S. It is good for mapping areas that are wider than high. It should not be used to make a map spanning the equator. Equal areas anywhere on the map are close to equal sizes. See Orthographic (below) for more details about map graphs.

conic.gif

Mercator
is used to make maps with the Mercator projection. Straight, parallel meridians and parallels make it good for navigational purposes. It is useful for maps of the whole world, but polar areas appear too large on these maps. See Orthographic (below) for more details about map graphs.

mercator.gif

Orthographic
is used to make maps with the Orthographic projection. This map is the view you would see if you used a telescope to view the earth from far, far out in space. It appears very realistic. All lines through the center point of the map are along 'great circles'. (A 'great circle' is the circle created when you pass a plane through the center of a sphere.) This makes it easy to plot the shortest route from the center point to any other point on the map.

ortho.gif

Here are some details that pertain to Conic, Mercator, and Orthographic maps.

  • The X axis is always used for Longitude (degrees East (+) or West (-) from the Prime Meridian) and the Y axis is always used for Latitude (degrees North (+) or South (-) from the equator). Map graphs are designed to always show the proper projection, so there are some restrictions for map graphs that don't apply to other graphs. For example, you can't set the X Axis : Overview : Low and High so that Low>High.
  • The axis types are always constrained to be Linear or Degrees. If you choose Degrees, the Divisions setting for the X and Y Axis Labels, Ticks, and Grids will be appropriate for degrees. For example, 20' (1/3 of a degree) divisions look good on a Degrees axis, but divisions of .33333333 would look bad on a Linear axis. If you choose Linear, the divisions will be appropriate for a linear axis with decimal numbers.
  • All graphs are sized to be as large as possible but centered within the area defined by Graph : X Axis Size and Graph : Y Axis Size.
  • The orthographic graph always shows the full world. The center of the graph will be the center of the X and Y axis ranges. Conic and Mercator can display various ranges on the X and Y axis.
  • For most parts of the orthographic graph's axes, the Visible setting is treated as 0=nothing, anything else is 'visible'. The X Axis : Axis Line is drawn as a line around the perimeter.
  • Orthographic uses crude clipping -- anything out of range is considered not clippable.
Polar
plots data and/or equations in polar coordinates.
  • The center of the graph is always y=0. The edge of the graph is yMax=max(abs(userSpecifiedLow),abs(userSpecifiedHigh)). This is done because negative y values project through the origin. The Y axis is always Linear.
  • The X Axis : Type can be Linear (0..360 equals one cycle) or Pi (0..2PI equals one cycle).
  • If Graph : Draw Polar Graph As Compass Graph is checked, x=0 is at 12 o'clock and the angles increase in a clockwise direction. Otherwise, x=0 is at 3 o'clock and the angles increase in a counterclockwise direction. Setting the range on the X axis so that Low>High will not change this.
  • If the axis range is greater than 360 (or 2pi), a framework of 0..360 (or 0..2PI) is drawn. Points are plotted where it is appropriate (-5 degrees -> 355 degrees). The user-specified axis range determines what range of the dataset/function will be plotted.
  • If the axis range is less than 360 (or 2pi), a framework of just that range is drawn. Thus, you can make a graph of x=0..180 degrees and you will just see the top half of the circle. The user-specified axis range determines what range of dataset/function is allowed.
  • If you want to display 0..360, but want to clip dataset/functions to a smaller range, use the individual Dataset : KeepIf and Function : Extent options.
  • Polar graphs clip correctly.

polar.gif

Triangle
(also called a ternary or tri-linear graph) is a very specialized graph. It is used to compare 3-component mixtures. The sum of the 3 components is always 100%. For example, different soil types can be described by their sand, silt, and clay components.
  • The Graph : X Axis Size determines the size of the graph.
  • Normally, the X axis will be 0 on the left and 100 on the right. If you check Graph : Draw Triangle Graph Reversed, the graph will be reversed (100 on the left, 0 on the right). The reversed form is the standard for the USDA soil classification charts.
  • The shape of the graph is always an equilateral triangle.
  • The Axis Type for all axes is constrained to be Linear.
  • The axis ranges are normally 0..100, but other values are possible. The axes always go from low to high. The axis range's are all always equal. The program constrains the y range is by adjusting yHigh so that the y range equals the x range. The z range is entirely constrained so that zMin=100-xMin-yMax, and zMax=100-xMin-yMin. So, it is important to change the xMin and xMax first; then yMin, then yMax.
  • Data is plotted by summing x+y+z and treating that sum as unity. Then you can plot x/sum, y/sum, z/sum on the x,y,z axes (which are always treated as percentages units). Thus, your raw data can be numbers that sum to 1, or 100, or whatever; they will plot the same.
  • Triangle graphs use crude clipping -- anything out of range is considered not clippable.

triangle.gif

Draw XY Graph As Origin Graph
This affects the way an XY graph is drawn. When this is checked, the (for example, X) axis line, ticks, and labels are drawn where the other axis (for example, Y) equals 0. Thus the axis lines will be drawn through the origin (x=0, y=0).
Draw Polar Graph As Compass Graph
This affects the way the polar graph is drawn. When this is checked, x=0 is at 12 o'clock and the angles increase in a clockwise direction. Otherwise, x=0 is at 3 o'clock and the angles increase in a counterclockwise direction. Setting the range on the X axis so that low>high will not change this.
Draw Triangle Graph Reversed
This affects the way the triangle graph is drawn. Normally, the X axis will have 0 on the left and 100 on the right. When this is checked, the graph will be reversed (100 on the left, 0 on the right). The reversed form is the standard for the USDA soil classification charts (as shown above).
Background Color
specifies the background color for the graph. If the Background Color is set to notDrawn, the graph's background will be transparent. See also Drawing : Background Color, which specifies for background color for the entire drawing.
Draw Color Arrays Dark To Light
When this is checked, the color arrays for many function and dataset representations are arranged so that the dark colors are used for the lower values and the light colors are used for the higher values. When this is not checked, the reverse is true.
Dataset Labels Font
The font to be used for datasets whenever text is needed ( Representation: Grid/2D/bold nth line, Grid/2D/bold nth spline, Markers/Labels, Markers/Labels3D, WindBarb, etc.). It is used for some function representations, too (Grid/2D/bold nth line, Grid/2D/bold nth spline).
Dataset Labels Font Style
This sets the style (Plain, Bold, Italics, or Bold Italics) for the font to be used for datasets whenever text is needed ( Representation: Grid/2D/bold nth line, Grid/2D/bold nth spline, Markers/Labels, Markers/Labels3D, WindBarb, etc.). It is used for some function representations, too (Grid/2D/bold nth line, Grid/2D/bold nth spline).
Center X Y
specifies the center of one of the picked graphs. If you change Center X,Y by dragging the block on the screen or by changing the X,Y values, all of the picked graph objects will be moved by the same relative amount.
Size  
The + and - buttons to the right of Size let you increase or decrease the size of the graph. They work by changing the X, Y, and Z Axis Size values.

When you use the Size buttons or X/Y/Z Axis Size, only the size of the graph changes -- the parts of the graph (for example, the Graph : Title 1 : Height and Graph : Dataset : 1 : Size (marker) don't change size. If you want the size of the parts of the graph to change too, use Graph : Move and set the X and Y Scale factors to something other than 1.

X Axis Size
specifies the length of the X axis in Drawing Coordinate units.
Y Axis Size
specifies the length of the Y axis in Drawing Coordinate units.
Z Axis Size
specifies the length of the Z axis in Drawing Coordinate units.
Angle      
specifies the angle of rotation for the entire graph (in floating-point, counter-clockwise degrees).
3D Spin Angle    
specifies the angle that the 3D graph is spun around the Z axis. With the Left and Right buttons, it helps to think of the graph as a 3D object -- you can spin the graph by pushing the front of the object to the left or right.
3D Spin Angle Animation  
These buttons (left, stop, and right) let you control 3D Spin Angle animation. Pressing the left (<) or right (>) buttons starts the graph spinning in that direction. Pressing the stop button ([]) stops the spinning.
Frames Per Second  
specifies the maximum speed of the animation. The animation won't go any faster than this speed, but if the frames take a long time to draw, the animation will go slower.
3D Attitude Angle    
specifies the angle of tilt for the XY plane of a 3D graph. With the Up and Down buttons, it helps to think of the graph as a 3D object -- you can change the attitude of the graph by pushing the front of the object up or down.


Menu Tree / Index    

Edit : Graph : Graph : Title

The Edit : Graph : Graph : Title dialog lets you specify the attributes of Title 1 (the primary title), Title 2 (the secondary title), or both simultaneously.

The options on the dialog box are:

Which Part
specifies whether you want to edit Title 1 (the primary title), Title 2 (the secondary title), or both simultaneously.
Text
specifies the text to be written. If you just enter a '.', the default title will be used. For Title 1, the default is the name of Datafile : 1 or the graph file's name.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

X Y Position
specifies the X Y position (in Drawing Coordinates) for the text. You can also drag the little block that appears near the title.
Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Font Style
specifies the initial font style for the text: Plain, Bold, Italic, or Bold Italic.
Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Angle
specifies the angle for the text (in floating-point, counter-clockwise degrees). This is usually 0, but may be any value.
H Align
specifies the horizontal alignment of the text, relative to the text's X Y Position. (The text's vertical alignment is always Center.)


Menu Tree / Index      

Edit : Graph : Graph : Drawing Order

The order of graph parts on the list in this dialog box indicates the order in which the graph parts will be drawn (top=first, bottom=last). To change the position of a graph part on the list, press the up (or down) arrow to the left of the part of the graph that you want to be drawn sooner (or later).

Graph parts which are drawn later may partially hide parts which are drawn earlier. This dialog box is needed because no single drawing order is appropriate for all graphs.

A common simple use of this dialog box is to move Dataset 1 and Dataset 2 above Function 1 and Function 2, so that the datasets are drawn before the functions.

Dataset 1 is separate from Dataset 2... so that you can manipulate Dataset 1 differently from the other datasets. This is commonly done when Dataset 1 is plotting a colored surface (thereby hiding all parts of the graph already drawn) and thus needs to be drawn before anything else. Function 1 is separate from Function 2... for the same reason. Map 1-6 is separate from Map 7... for the same reason.

The drawing order does not affect the order of items in the legend.

There are unusual situations in which even the flexibility of Graph : Drawing Order is insufficient. In these cases, you may want to make two graphs (use Edit : Graph : Copy). The original graph can have the parts of the graph that need to be drawn first, while the new graph has parts that need to be drawn later.


Menu Tree / Index      

Edit : Graph : Graph : Get

The Edit : Graph : Graph : Get dialog box lets you get various types of information from a graph. For example, you can click on a data point to get its numerical value and to find out what row it is on in the data file.

Get What specifies what type of information you want to get from the graph. The options on the dialog box vary according to which Get What option is selected. The Get What options are:

Data Area  
After you choose one of the Datasets, this calculates the area under the dataset.
Data Point
After you choose one of the Datasets and click on a point, this finds the closest plotted data point and moves the cross to that point. It displays the dataset number, the row number in the data file, and the X, Y, and Z values.
Data Interpolate X  
After you choose one of the Datasets and enter an X value, this searches for the first segment of the dataset containing X and then linear interpolates to find the related Y value.
Data Interpolate Y
After you choose one of the Datasets and enter a Y value, this searches for the first segment of the dataset containing Y and then linear interpolates to find the related X.
Drawing Coordinates  
gets the Drawing Coordinates of the point you click on. It also prints a point count, the time it was clicked on (relative to your choice of Get What), the distance from the last point, and the total distance.
Function Equals Y    
Given a Function, a Y value, and a point on the graph, this finds X where the function equals Y.
Function Evaluate  
Given a Function and a graph X value, this evaluates the function to find the corresponding Y value.
Function Integrate  
Given a Function and an X axis range, this numerically integrates the function. This uses the Romberg Rule for integration. A series of passes are made, each taking twice as long as the previous, in an attempt to converge on the answer. See Miller, 1981.
Function Maxima  
is like Function Minima, but finds a local maxima.
Function Minima  
Given a Function and a point on the graph, this finds a nearby local minima.
Functions Close
Given two Functions and a point on the graph, this finds the point nearby where they are closest (or where they intersect).
Graph Coordinates  
gets the graph coordinates of the point you click on. It includes the same count, time, and distance data as the Drawing Coordinates option above. This doesn't (can't) work for 3D graphs. See Digitizing Data From An Image File With A Graph for an example of using this.

Digitizing Data From An Image File With A Graph - Graph Get : Get What : Graph Coordinates can be used to digitize data from an image file with a graph. For example, you may have an image of a graph from a web site or you may have a printed copy of a graph (perhaps from a journal or from your pre-computer days) and you may wish that you had the original data file which was used to make that graph. The method below describes how to recreate that original data file. Unfortunately, the data won't be exactly the same as the original because of the imprecise nature of scanning and digitizing.

  1. Use a scanner to scan the printed version of the graph and make an image file (for example, .gif, .jpg, or .pcx). Don't make a high-resolution scan. A low resolution like 200 or 300 dpi is all that you need for working on screen, and it will save memory and disk space.
  2. In CoPlot, use Create : Image to display the image file.
  3. Press the Edit button on the Create : Image dialog box.
    1. Increase the image's Size so that it fills (but isn't bigger than) the main CoPlot window.
    2. If the graph isn't perfectly upright, change the image's Angle to make the graph perfectly upright.
  4. Use Create : Graph to create a graph.
  5. Using the procedures on the Edit : Graph dialog box:
    1. Modify the graph so that it exactly overlays and mimics the graph in the image file.
      1. Graph : Overview controls the graph's size and shape.
      2. X Axis : Overview has Type, Low, and High.
      3. Y Axis : Overview has Type, Low, and High.
    2. Use Graph : Get.
      1. Set Get What to Graph Coordinates.
      2. Click on the data points for one of the datasets in the graph in the image.
      3. They should appear in a copy of CoText that pops up.
      4. Go to CoText and modify that file:
        1. Change X and Y to more descriptive column names for that dataset.
        2. In preparation for the next dataset that you are going to digitize:
          1. Copy the column names row to the bottom row of the file.
          2. Change the X,Y names for the next dataset.
      5. The repeatedly:
        1. Click on the data points for the next dataset.
        2. Go to CoText and modify the file:
          1. Copy the column names row to the bottom row of the file.
          2. Change the X,Y names for the next dataset you are going to digitize.
      6. When you are done, edit the text file to remove the columns other than the X and Y column (which now has lots of better column names interspersed with the data).
      7. Use CoText's File : Save As to save the file. Write down that file directory and name so you don't forget it.
  6. Use CoPlot's Datafile : 1 to get to CoStat.
  7. Use CoStat's Screen : Show CoText to open the text file you created. Repeatedly,
    1. Mark a block of text in CoText with the information for one line and copy the block of text to the clipboard (Ctrl C).
    2. Use CoStat's File : Open : Clipboard and import that text (use Replace the old data the first time, then use Append new data to the right for subsequent times).
    3. Use CoStat's File : Save As to save that data file as a CoStat .dt file.
  8. Use CoPlot to plot the data on the graph.
    1. Use the Edit : Graph icon button on the left side of the screen and pick the graph.
    2. Use Dataset : New Dataset.
    3. Specify the X and Y columns.
  9. Since both the image of the graph and the new graph object are visible on the screen, you can easily verify that the data was digitized correctly.
  10. Eventually, you can hide the image of the graph by putting the image object in another Group and using Drawing : Groups to make that group not visible.


Menu Tree / Index        

Edit : Graph : Graph : Make Map

CoPlot has three Graph : Types for making maps with different projections: Orthographic, Mercator, and (Alber's) Conic. You can also use XY graphs to make maps.

World Maps - CoPlot comes with several world map data files with specially encoded data for drawing nations, states, cities (major world cities and U.S. cities with >1000 people), oceans, rivers, and lakes for the entire world. These maps data files are small enough (about 3 MB) to be searched and plotted quickly, yet detailed enough to be useful for maps of areas as small as roughly 2°x2° or 100x100 miles. These files are on the CoPlot CD-ROM and are also available from the CoHort Software web site (www.cohort.com).

Detailed maps - CoPlot comes with a second set of detailed map data files with additional, highly detailed information (from the United States Geological Survey) for a small area of the United States (usually one or two states). These files include data for nations, states, counties, oceans, rivers, lakes, parks, and roads (major and minor highways, but not local roads or streets). These files are on the CoPlot CD-ROM and are also available from the CoHort Software web site (www.cohort.com).

Control of what is visible on the map - Edit : Graph : Map let you control what geographic information appears on the map. Each layer controls the display of one type of information (for example, the boundaries of nations). The layers are analogous to Datasets 1... in that they have a series of attributes that you can set. When the map is drawn, layer 1 is drawn first, then layer 2,.... A typical map might have 5 layers: Ocean, Lake, River, Nation, and State. Each layer has separate controls for background color, line color, line width, text color, text height, etc.

Maps are just like other graphs -     You can use standard CoPlot commands to create the map you want. Maps have grid lines (latitude and longitude lines) and axis ranges (in degrees). You can specify the size and shape of a map as with other graphs. Data and functions can be plotted on maps just as you would plot them on XY graphs.

Ellipsoid - The earth is not spherical; it is elliptical. The Conic and Mercator maps in CoPlot use ellipsoid formulas to plot the maps. The Orthographic map uses spherical formulas to plot the maps. Over the years there have been several measurements of the equatorial radius, r, and the flattening value, f. In the past, all U.S. Geological Survey sectional maps used the Clarke 1866 ellipsoid. In the last few years, map makers have been switching to GRS 1980, the new international standard. CoPlot always uses GRS 1980. See Snyder, 1983.

The Edit : Graph : Graph : Make Map dialog box has several options which simplify setting up a graph that displays map data. For example, you can enter a place name (for example, France) and have CoPlot make a map featuring that place. This dialog box also has a few options related to the specifics of how the map is to be created (for example, you can specify the two standard parallels for a conic projection).

The options on this dialog box are:

Search For
If you type a place name (for example, California) and press the Go button, CoPlot will search all available map files and compile a list of geographic names that match the text that you typed. When you then pick your choice (see Pick below), CoPlot will make a map featuring that place. This procedure resets the X and Y axis ranges, divisions, and labels to appropriate values.

It doesn't matter if you enter upper or lower case characters. It doesn't matter if you type a portion of the name. For example, typing fran would find San Francisco. Diacritics (for example, ~ and `) are ignored in the search text and the place names, so you need not bother to enter them. The data files often store alternate spellings (for example, Peking and Beijing), so CoPlot should be able to find what you want.

CoPlot only compiles a list of the first 100 matches that it finds. So asking for South will only generate the first 100 items that have "South" in their name.

For some geographic names (notably continents, countries, and states), CoPlot has the suggested X and Y axes ranges encoded with the name. (You may see something like [12N 10E 20N 20E] which is the latitude and longitude (y,x) location for the lower left and upper right corners of a map.) For other places, CoPlot will make a graph with the X and Y axis ranges set to 20 degrees and centered at the place you requested.

A common problem is that no matching names are found for any place name you enter. This occurs when the world map data files (for example, ocean.mpx, nation.mpx, city.mpx, etc.) have not been installed. They should be in the cohort directory.

Several abbreviations are used in the data files: f.=formerly, I.= Island, Is.=Islands, R.=River, and L.=Lake.

Pick
After you have used Search for, this option lets you pick a place name from the list of matching names.
Center X, Y
This lets you enter the longitude (X) and latitude (Y) for the center of the graph. The X and Y axis ranges are not changed.
Range X, Y
This lets you enter the extent of the graph along the X (longitude) and Y (latitude) axes. The center point of the graph is not changed. Thus you can quickly zoom in or zoom out by decreasing or increasing these values. For example, if the X and Y axis ranges are originally 20°, you could change them both to 5° to zoom in. This is much preferred to using Drawing : Zoom Box, which hides the axis labels and doesn't draw finer details.
Conic Parallel 1, 2  
For the Conic projection, this lets you set the two standard parallels. Along these parallels, the scale is exactly correct. Some map makers suggest using parallels that are 1/6 of the way inward from the southern and northern edges of the graph. The U.S. Geological Survey uses 29.5° and 45.5° for the two standard parallels for all of maps of the contiguous 48 states. You can enter '.' to get the defaults (the 1/6th system), or enter actual values. For the northern hemisphere, enter the low value first, then the high value. For the southern hemisphere: enter the high value, then the low value. In other words, always enter the parallel close to equator first, then the parallel close to pole. (If you do the reverse, or set the two parallels on different sides of the equator, the graph becomes a point!)
Line Detail  
In order to speed up the drawing of lines and filled areas on a map, CoPlot plots only the points that make a visible difference on the map. The points in the map files that define boundaries are coded to identify the most important points (1's) and the least important points (9's), and points in between. If you set Line Detail to 0) automatic, the program will use the detail level that it feels is appropriate based on the axes ranges. Or, you can get a specific level of detail by setting Line Detail to a number, 1) coarse through 9) fine.
Make XY Graph Isotropic  
This option lets you force XY graphs with linear (or linear-like) axes to be isotropic. On isotropic graphs, the X and Y axes have the same scale (length per unit). For example, if the range on the X axis is 8, and the range on the Y axis is 4, the graph's axes will be resized so that the X Axis Size is twice the Y Axis Size. The procedure works by shortening the length of the axis which is (relatively) too long. The resulting graph is centered relative to the old position. Due to the decrease in size, you may to increase the size of the graph with Edit : Graph : Graph : Overview : Size +.

This procedure is useful in many situations other than making maps (for example, for graphs for mathematics).

This procedure is also done automatically when you use some of the options on the Make Map dialog box (for example, Pick, Center X Y, and Range X Y).


Menu Tree / Index      

Edit : Graph : Graph : Save As Drawing Objects

Edit : Graph : Graph : Save As Drawing Objects is a procedure that most people will never need to use. It lets you save all of the parts of the currently picked graph(s) as drawing objects (mostly Path and Text Objects). Then, you can edit the drawing objects in unusual ways that the Graph dialogs don't allow. This procedure also sets Edit : Graph : Visible to unchecked so that you will see the new drawing objects instead of the original graph.

For example, you might make a graph with some Map layers, and you might want to further edit the appearance of the map layers by hand. For example, city names often overlap, so you could remove some of the city names using Edit : Objects : Delete.

Details -


Menu Tree / Index      

Edit : Graph : Map

The Edit : Graph : Map dialog box lets you create and edit map layers. Each map layer has attributes which specify which type of map data will be drawn on the graph and how it will be drawn.

When you create a graph, it initially has no map layers. To create a new layer, you must drop down the Map list on the Edit : Graph dialog box and click on New Layer. Then, Layer 1 will be created and added to the list.

The first time you call up this dialog box (within each CoPlot session), it may take a few seconds for CoPlot to search the cohort directory to find the available map data files.

The options on the dialog box are:

Which Map Layer
lets you specify which layer to edit (All, or 1 - n).

To create a new layer, you must drop down the current list of layers and click on New Layer. Another number (n+1) will be added to the list.

Up
moves the currently selected layer up one slot. The order of layers in the list determines the order in which they are drawn whenever the drawing is redrawn. Earlier layers may be partially or completely hidden by later layers.
Down
moves the currently selected layer down one slot. The order of layers in the list determines the order in which they are drawn whenever the drawing is redrawn. Earlier layers may be partially or completely hidden by later layers.
Copy
makes a new layer which is a copy of the currently selected layer. The new layer is inserted in the list right after the currently selected layer, and it becomes the currently selected layer.
Delete
deletes the currently selected layer.
Map File
specifies which map data file will provide the information for this map layer. See Map Data Files for the details of what information is in each map file.
Object Detail
specifies which types of items from the map file will be drawn. Enter a comma separated value list of types (for example, "1, 3, 5") or "." for the default. The list can include ranges of numbers (for example, "1-3,5"). Use the Help button or see Map Data Files for the details of what information is in each map file.
Background Color
specifies the solid color to be used in the background of filled map objects (if any). If this is set to notDrawn, the background won't be drawn. If this is set to mapDefault, the colors specified in the map data file will be used.
Line Color
specifies the color for the line objects in the map data file. If this is set to notDrawn, the lines (if any) won't be drawn. If this is set to mapDefault, the colors specified in the map data file will be used.
Line Type
specifies the dash-space pattern which is used repeatedly when line objects are drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint).
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the lines (in Drawing Coordinates).
Marker Color
specifies the color for the marker objects in the map data file. If this is set to notDrawn, the markers won't be drawn. If this is set to mapDefault, the colors specified in the map data file will be used. Currently, none of the map data files created by CoHort Software contain markers.
Marker Size
specifies the basic marker size (the height in Drawing Coordinates of a full-sized marker).
Text Detail
specifies which types of text items from the map file will be drawn. Enter a comma separated value list of types (for example, "1, 3, 5") or "." for the default. The list can include ranges of numbers (for example, "1-3,5"). Use the Help button or see Map Data Files for the details of what information is in each map file.
Text Color
specifies the color for the text. If this is set to notDrawn, the text won't be drawn. If this is set to mapDefault, the colors specified in the map data file will be used.
Text Height
specifies the height for capital letters (in Drawing Coordinates).


Menu Tree / Index  

Edit : Graph : Map :: Data Files

CoPlot comes with several map data files with specially encoded geographic feature data. There are two categories of map data files.

To make a map of a large area, for example, the world or the western U.S., use the world map data files (the ones without a two digit number at the end of the file name, for example, OCEAN, NATION, STATE, RIVER, LAKE, CITY). These data files have data for drawing ocean boundaries, national boundaries, state boundaries, cities, rivers, lakes, and cities for the entire world. These data files are small enough to be searched and plotted quickly, yet detailed enough to be useful for maps of areas down to roughly 2°x2° or 100x100 miles.

To make a very detailed map of a small area of the United States, for example one state or a smaller area, use the detailed map data files (the ones with two digit numbers at the end of the file name, for example, NATION01 and STATE_01). These map data files have highly detailed information for a small area of the United States (usually one or two states). Usually, when you buy CoPlot, you will be sent the world map files and the detailed map files for your state. Detailed maps of other areas in the United States are available from CoHort Software. Currently, there are no detailed CoHort map data files available for places outside the United States.

This system of putting the information in world map data files vs. detailed map data files gets you the desired detail level while reducing the amount of data the program must scan each time it redraws the data (for example, 0.5 MB of data files instead of 20 or 200MB for the entire world in detailed form). It is assumed that most people will make coarse maps of different parts of the world or the U.S., or detailed maps of their part of the U.S. But the option is open to load all of the detailed maps.

DISCLAIMER - When we created these map data files, we made an effort to ensure the accuracy of the original data sources and our modifications to the data. However, there are likely to be some small and large errors in the map files. Geographic locations don't change, but political boundaries do. Now, the map data is now somewhat out-of-date (for example, the USSR is still intact on our maps!).

SUITABILITY - CoPlot's map making facilities are suitable for:

  1. Making maps for educational purposes.
  2. Making background maps for plotting data.

CoPlot's map making facilities are not suitable for:

  1. Navigational purposes.
  2. Other purposes where the accuracy of the maps is critical to human safety.
  3. Legal purposes.

In any case, it is up to you to determine the suitability of the map data for your purposes. In all cases, the data were generated by digitizing maps. As with all map data, the vertices are not exact locations, but are approximations.

Map file names - The main file name indicates the type of information in the map file, for example, ocean, lake. If the name ends in a two digit number it is a detailed map of a portion of the U.S. (for example, NATION01); otherwise it is a world map (for example, NATION).

All map file names have an extension indicating the part of the world for which they have data:
North America: .MP1 has items visible when x<-30° y>15°
Europe: .MP2 has items visible when x>-30° y>15°
South America: .MP3 has items visible when x<-30° y<15°
Africa/Australia: .MP4 has items visible when x>-30° y<15°

This system lets CoPlot quickly determine which files have the data necessary for the current graph. This dramatically speeds up the drawing of most maps.

Map file directory - The map files need to be in the cohort directory.


Menu Tree / Index  

Edit : Graph : Map :: World Map Data Files

CoPlot comes with a set of map data files which contain information about the entire world. This data is meant to be used for maps of large areas, from the entire world down to areas as small as 2°x2° or roughly 100x100 miles. The main part of the file name for these files does not end in a two digit number (for example, OCEAN is a world map data file).

Source of the Data - The source of some of this data is the Micro World Data Bank II, 1989. Original coordinate data was created by the Central Intelligence Agency. Minor points were removed from the data files and then the data was placed in the public domain by Fred Pospeschil and Antonio Riveria. There were numerous little problems in the MWDB files (crossed line segments, gaps, missing boundaries, etc.). We have corrected many of these problems as best we could. Also, the dataset does not contain many small islands.

The data for the City map files comes from the 1989 UN Demographic Yearbook (U.N., 1991), the USGS National Geographic Names Database, and the 1980 Census. Capital cities are in all capital letters. The cities are ranked by the population of the city, proper. Or if that data was unavailable, by the population of the metropolitan region. In general, the name which will be used on a map is the name which has been traditionally used on maps in the United States. Alternative names and spellings were added when possible; they can be searched for with Edit : Graph : Graph : Make Map : Search For, but will not appear on the map. For the spellings of the names, we used Webster's New Geographical Dictionary (1988) as the final arbiter. For the U.S., places with greater than 1000 people are included. For the rest of the world, only major cities are included.

We apologize to CoPlot users in other countries for putting the American versions of place names on maps; the choice of which names will be used on a map is not an easy one. They can be changed by using Edit : Graph : Graph : Save As Drawing Objects and then editing the text objects for the place names.

The standard world maps are (where x denotes 1, 2, 3, or 4):          
OCEAN.MPx oceans, seas, great lakes lines in layer 1; ocean names in layers 1,2; land names in 5,6
LAKE.MPx major lakes lines and fills in layer 1; names in layers 1,2
RIVER.MPx major rivers lines and fills in layer 1; names in layers 1,2
NATION.MPx all nations lines and fills in layer 1; names in layers 1,2
STATE.MP1 U.S.A. states lines and fills in layer 1; names in layers 1
CITY.MPx major cities no lines or fills; names in layers 1..9

Layers in CITY.MPx files:
Layer Population
1 Major Capitals (large
geographically or "important");
large circle marker (filled if capital city)
2 >=1,000,000
(and all other Capitals)
large circle marker (filled if capital city)
3 >=500,000 small circle marker
4 >=200,000 small circle marker
5 >=100,000 small circle marker
6 >=50,000 dot marker
7 >=20,000 dot marker
8 >=10,000 dot marker
9 <10000 or unknown dot marker

Different layers can be selected with the Object Detail and Text Detail options on the Edit : Graph : Map : x dialog boxes.

Ocean, states, and nations have names which are centered. Lakes, rivers, and cities have names which are left justified. The City markers are part of the text which is left justified and so are very close, but not perfectly centered on the city's true center.

City names may overlap - No effort has been made to modify the angles or justification of the text for city names to avoid overlapping. It is a difficult problem, since the map data may be used to make maps of widely different scales and with different Text Detail settings. The best simple solution is to work with the Text Detail setting to get an appropriate number of city names for your map's scale. If you really need to move or delete some of the city names, use Edit : Graph : Graph : Save As Drawing Objects and edit the resulting text objects with the city names.


Menu Tree / Index  

Edit : Graph : Map :: Detailed Map Data Files

The main file name indicates the type of information in the map file, for example, ocean, lake. If the name ends in a two digit number it is a detailed map data file of a portion of the U.S. (for example, NATION01); otherwise it is a world map data file (for example, NATION).

What is the source of the data? The data was extracted by CoHort Software from the "1:2,000,000-Scale Digital Line Graph (DLG) Data" on CD-ROM from the U.S. Geological Survey (Earth Science Information Center, 1986). "The data files are derived from the sectional maps of the 1970 National Atlas of the United States of America." To reduce file sizes and make the data easier to manage, the USGS divided the U.S. into 21 areas (1 - 21); CoHort Software maintained this system when converting the files to our format. To reduce the file sizes further, CoHort Software removed points that caused deviations of less than 0.001° from the lines. This process removed roughly 60% of the original data, without removing much information.

Do CoPlot .MP? files have all of the USGS data? CoHort software tried to incorporate most of the types of information from the USGS files. The only major types not utilized were airfields, the Alaska pipeline, railroad information, and city/metropolitan area information. The City.MP1 world data file has U.S. city locations and names from non-USGS sources.

Do the files have names of the objects? The USGS DLG data does not include names. Currently, none of the detailed map files have text objects.

Alterations to USGS files - The USGS files do not differentiate between lake boundaries and island boundaries. This looked odd, so CoHort Software moved all of the island boundaries from the LAKE_xx.MP1 files to the OCEAN_xx.MP1 files by hand.

Which data is in which layer of the detailed map files? Below is a description of how the data from the USGS files has been organized into the layers in each of the CoPlot .MP1 files. The USGS organized the data by major codes (for example, 290=political boundaries) and minor codes (for example, 6002=National Water Boundaries). The xx in the file names below denotes a number from 01 through 21, corresponding to a section of the U.S.

The detailed map data files are divided into sections 1 - 21:

usgs.gif

OCEAN_xx.MP1 - lines  
Layer Major,Minor Description
1 290,4000 U.S. Coastline including Great Lakes; also ocean and lake islands of all sizes;

LAKE__xx.MP1 - lakes (color=6) and islands (color=2) stored as filled areas
Layer Major,Minor Description
1 290,4014 Perennial lakes, reservoirs; >80 km.
2 290,4011-4013 Perennial lakes, reservoirs; 40-80 km.
3 290,4008-4010 Perennial lakes, reservoirs; 20-40 km.
4 290,4005-4007 Perennial lakes, reservoirs; 8-20 km.
5 290,4001-4004 Perennial lakes, reservoirs; 0-8 km.
6 290,4034 Intermittent lakes, reservoirs; >80 km.
7 290,4031-4033 Interm. lakes, reservoirs; 40-80 km.
8 290,4028-4030 Interm. lakes, reservoirs; 20-40 km.
9 290,4025-4027 Interm. lakes, reservoirs; 8-20 km.
10 290,4021-4024 Interm. lakes, reservoirs; 0-8 km.
11 290,4040-4045 Marsh/swamp and salt marsh; all sizes
12 290,4050-4053 Dry lake and alkali flat; all sizes
13 290,4060-4066 Glacier; all sizes

RIVER_xx.MP1 - lines and filled areas
Layer Major,Minor Description
1 290,3001 River/stream ("double line" -> fills)
290,3016 River/stream (single line); >350 km.
2 290,3013-3015 River/stream (single line); 200-350 km.
3 290,3010-3012 River/stream (single line); 100-200 km.
4 290,3007-3009 River/stream (single line); 40-100 km.
5 290,3003-3006 River/stream (single line); <40 km.
290,3060-3063 Braided stream; all sizes
6 290,3030 Intermittent river/stream; >350 km.
7 290,3027-3029 Intermittent river/stream; 200-350 km.
8 290,3024-3026 Intermittent river/stream; 100-200 km.
9 290,3021-3023 Intermittent river/stream; 40-100 km.
10 290,3007-3020 Intermittent river/stream; <40 km.
11 290,3070-3086 Canal and ditch; all sizes
12 290,3095 Intercoastal waterway

NATIONxx.MP1 - lines
Layer Major,Minor Description
1 290,6001-6002 National, land and water boundaries

STATE_xx.MP1 - lines
Layer Major,Minor Description
1 290,6005-6006 State, land and water boundaries

COUNTYxx.MP1 - lines
Layer Major,Minor Description
1 290,6009-6010 County, parish, AK borough

ROAD__xx.MP1 - lines
Layer Major,Minor Description
1 290,5001-5002 Interstate; Major U.S.; limited access
2 290,5003-5004 Major State and other; limited access
290,5009 Interstate, under construction
3 290,5013-5014 Other U.S.; >500km.
4 290,5015-5020 Other U.S.; <500km.
5 290,5021-5024 Parallel roads
6 290,5028 5031 State secondary, light duty; all weather
7 290,5041 Unimproved (fair or dry weather)
8 290,5061-5062 Tunnel; Ferry

PARK__xx.MP1 - filled areas
Layer Major,Minor Description
1 290,6021-6025 National park; all sizes
2 290,6026-6030 National monument; all sizes
3 290,6031-6035 National seashore/lakeshore; all sizes
4 290,6036-6040 National recreation area; all sizes
5 290,6041-6045 National wilderness area; all sizes
6 290,6051-6055 National forest; all sizes
7 290,6056-6060 National grassland; all sizes
8 290,6061-6065 National wildlife refuge; all sizes
9 290,6066-6070 Federal Indian reservation; all sizes
10 290,6081-6082 Federal Military reservation; all sizes


Menu Tree / Index      

Edit : Graph : Dataset

The Edit : Graph : Dataset dialog box lets you create and edit datasets. Each dataset has attributes which specify which columns of data from which datafile will be used and how they will be plotted on the graph. See also the separate list of Dataset Representations.

When you create a graph, it initially has no datasets. To create a new dataset, you must drop down the Dataset list on the Edit : Graph dialog box and click on New Dataset. Then, Dataset 1 will be created and added to the list.

Related Settings - Usually, all attributes related to a part of a graph can be found on the dialog box for that part of the graph (for example, Edit : Graph : Dataset : 1). Sometimes there are related settings in other dialog boxes.

The options on the dialog box are:

Which Dataset
lets you specify which dataset to edit (All, or 1 - n).

To create a new dataset, you can drop down the current list of datasets and click on New Dataset. Another number (n+1) will be added to the list.

Or, you can create a new dataset which is a copy of the currently selected dataset by using Copy (below).

Regression...
opens up a small dialog box which lets you perform a regression on the current dataset. This will create or modify a Graph : Function and plot the resulting equation. See Graph : Dataset : Regression for a complete list and description of the options.
Up
moves the currently selected dataset up one slot. The order of datasets in the list determines the order in which they are drawn whenever the drawing is redrawn. Earlier datasets may be partially or completely hidden by later datasets.
Down
moves the currently selected dataset down one slot. The order of datasets in the list determines the order in which they are drawn whenever the drawing is redrawn. Earlier datasets may be partially or completely hidden by later datasets.
Copy
makes a new dataset which is a copy of the currently selected dataset. The new dataset is inserted in the list right after the currently selected dataset, and it becomes the currently selected dataset.
Delete
deletes the currently selected dataset.
Representation
specifies how the data for this dataset will be drawn (for example, as lines, as markers, or as a filled area). See Graph : Dataset : Representations for a complete list and description of the options.
Datafile
specifies which datafile will be the source of data for this dataset. See Datafile for information on loading data into the datafile slots.

All of the data for one dataset must be from one datafile (for example, you can't plot X from datafile 1 and Y from datafile 2). If the data you need is in different datafiles, you must merge the data files (see CoStat's File : Open : Mode : Append to the right).

X, Y, Low Error, High Error, Left Error, Right Error, etc.
specify which columns in the datafile have which types of information. For example, the X data may be in column 4 and the X data may be in column 6. The options vary, depending on the Representation selected. Options with names that end in "(Opt.)" are optional (for example, error bar columns). If not all of the non-optional columns have a column selected, the dataset won't be plotted.
Y Animation    
This animates the graph by repeatedly increasing (or decreasing) the Y column number. This is useful if you have a data file with X, Y1, Y2, Y3, etc. columns and are plotting the dataset on a 2D graph.
Z Animation    
This animates the graph by repeatedly increasing (or decreasing) the Z column number. This is useful if you have a data file with X, Y, Z1, Z2, Z3, etc. columns and are plotting the dataset on a 3D graph, or a 2D graph with a Representation that uses a Z column.
Frames Per Second  
specifies the maximum speed of the animation. The animation won't go any faster than this speed, but if the frames take a long time to draw, the animation will go slower.
Background Color
specifies the solid color to be used in the background of the Dataset Representation (if appropriate). If this is set to notDrawn, the background won't be drawn.
Color
specifies the color for the marker, fill and/or line parts of the representation. If this is set to notDrawn, nothing will be drawn (and it is therefore a quick way to temporarily not draw this dataset, without losing the attributes).
Marker Type
specifies which character in which font (see Drawing : Load Fonts) will be used for the markers.
Size (Marker) or Size (Fill)
specifies the basic marker size or the unit size of the fill pattern (in Drawing Coordinates), depending on the current Representation.
Fill Type
specifies a hatch pattern (a combination of horizontal, vertical, and diagonal lines) or a bit-mapped pattern. The bit-mapped patterns are only scaled to a limited number of sizes (integer multiples of the original pattern), so don't be surprised if a small change to Size (Fill) has no effect.
Line Width
specifies the width of the lines (in Drawing Coordinates). If the line width is 0, the lines will not be drawn.
Line Type
specifies the dash-space pattern which is used repeatedly when representations with lines are drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint). Disjoint is unusual in that it draws a line between points 1 and 2, 3 and 4, 5 and 6, etc., but not between points 2 and 3, 4 and 5, 6 and 7, etc.
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Error Width
specifies the width of the error bar lines (in Drawing Coordinates).
Z Division 1, 2 (.list)  
This is used by most of the Grid Dataset Representations to indicate where to divide the Z axis into different levels (for example, where contour lines are drawn). The Z Division 1 values are used for primary divisions (for example, bolder and labelled contour lines). The Z Division 2 values are used for secondary divisions. You can enter different things in these fields:
Legend
specifies the text that will be used to identify this dataset in the Legend. If this is ".", the default will be used (usually, the Y or Z variable). If this is "" or if the text is just one big HTML comment (starting with "<!--" and ending with "-->"), there will be no entry in the legend for this dataset.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Because this legend entry will become part of the complete legend, it is important that all attribute starting tags (for example, '<b>') have matching attribute ending tags (for example, '</b>') so that the attributes don't apply to all subsequent entries in the legend.

Dataset: Legend handles most tags correctly, even tags that make the text more than one line (for example, <BR> and <P>).

Keep If
specifies a boolean equation which is applied to each row of the data file and which determines which rows will be used when plotting the data. The result of the equation should be true or false; numeric values will be interpreted as 0 is false, everything else is true. The equation can refer to the numbers in the various columns (for example, col(2)>=20 & col(4)*2<col(5). See Using Equations in the CoStat Manual (costat.htm).

For Grid/2D and Grid/3D dataset representations, when Keep If is false for a given row, it is as if the z value for that row is a missing value. Keep If does not act as if that row of data were removed, since that would destroy the integrity of the grid.

A
This leads to a list of characters (#32 to #255, as defined by the ISO 8859-1 Character Encoding). If you click on a character, it will be inserted into the textfield at the current insertion point.
f()
has a list of functions (and other things) that you can put in the equation. If you click on a function, it will be inserted into the equation at the current insertion point. The list includes: See Using Equations in the CoStat Manual (costat.htm).


Menu Tree / Index      

Edit : Graph : Dataset : Representations

Datasets can be represented (drawn) in many ways on a graph (for example, as lines, as markers, or as a filled area). Most representations are only available on some types of graphs (for example, Bars/3D is not available on 2D graphs). Representations are specified with the Representation attribute on the Edit : Graph : Dataset dialog box.

Speed - There is considerable variation in the time required to draw the data with different representations. If you are working with a large datafile, you may want to choose a faster representation while setting up a graph and switch to a preferred but slower representation when printing the graph.

Related Settings - Usually, all attributes related to a part of a graph can be found on the dialog box for that part of the graph (for example, Edit : Graph : Dataset : 1). Sometimes there are related settings in other dialog boxes.

Labels?   Many representations (for example, most of the Bar representations, Markers/labels and Wind barb) support an optional Label column which provides numbers or text strings to be used as labels for the data points. For all of these representations, the text strings can include HTML-like embedded text tags (like '<b>' for bold) and character entities (like "&alpha;" for the Greek letter alpha). The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style.

3D Graphs - Many representations can be used on 2D and/or 3D graphs.

If a 2D-only representation is drawn on a 3D graph,
it will be drawn on the XY plane. For example, Bars/2D works this way.
If a 2D/3D representation is drawn on a 2D graph,
the Z column data (if any) is ignored. For example, Line works this way.
If a 2D/3D representation is drawn on a 3D graph,
if a Z column is specified, the 3D form of the representation will be used; otherwise, the 2D form is drawn on the XY plane. For example, Line works this way.

Data For Grid Representations (for contour graphs) -           All of the representations that start with "Grid" require gridded data. These are the representations that are used to make contour graphs and other, related graphs. Gridded data has at least three columns (representing X, Y, and Z values) with a data point for each X,Y point on a rectangular grid. If the data isn't properly gridded, CoPlot will show you an error message telling you so.

Here are some graphs which plot gridded data.

contour.gif contour3.gif contourls.gif contours.gif

Gridding
Given a set of values along the X axis and a set of values along the Y axis, the gridded data must contain a data point for every combination of the X and Y values. If you have scattered data (data that isn't already gridded), you can use CoStat's Transformations : Grid to grid it. If your data is already gridded (from the original source of the data), you don't need to re-grid it in CoStat, but make sure that all the necessary points are present and that the data is properly sorted.
Sort order
The grid data must be sorted by the X and Y values, in ascending order. The data may be sorted with X varying the fastest or Y varying the fastest. You may use CoStat's Edit : Sort procedure to sort the data.
Missing values
There must be no missing values in the X and Y columns for the X,Y points on the grid. If the data file has additional rows beyond what are needed for the grid, the X and Y columns must have missing values for those rows. The Z column can have missing values anywhere. Missing Z values cause holes when the data representation is drawn. This can be a good thing, for example, to identify areas for which there was no data collected or to identify areas where you don't want anything plotted.
Here is a tiny example of gridded data:
X     Y     Z
10    10    12.3
10    20    13.4
10    30    14.3
20    10    10.2
20    20    12.5
20    30    15.7

Colors For Grid Representations -   Many of the Grid representations use a series of colors for the different contour levels on the Z axis.

The Background Color is the Basis Color
The Graph : Dataset : Background Color that you specify is used as the basis for the series of colors. For example:
Medium Colors
If you choose a medium color, like Red4, the colors in the series will range from Red9 (dark red, almost black, at the low end of the Z axis) to Red0 (light red, almost white, at the high end of the Z axis), centered at Red4.
Light Colors
If you choose a lighter color, like Red2, the colors in the series will still range from Red9 to Red0, but will be centered at Red2, giving you a lighter series of colors.
Dark Colors
If you choose a darker color, like Red7, the colors in the series will still range from Red9 to Red0, but will be centered at Red7, giving you a darker series of colors.
White
If white is the basis color, you will get a rainbow of colors in the progression of violet (at the low end of the Z axis), blue, green, yellow, orange, and red (at the high end of the Z axis).
Black
If black is the basis color, you will get a rainbow of colors in the progression of red (at the low end of the Z axis), orange, yellow, green, blue, violet (at the high end of the Z axis).
The Order of Colors
If Edit : Graph : Overview : Draw Color Arrays Dark To Light is checked, the colors will range from dark (for example, Red9 at the low end of the Z axis range) to light (for example, Red0 at the high end of the Z axis range). If it is not checked, the color order will be reversed.
The Number Of Colors
CoPlot will use a separate color for each unique value generated by Z Division 1 and 2. In creating the colors, CoPlot is not constrained to choose just colors in the standard CoPlot color palette; it will interpolate.
In The Legend
You can choose how many colors in the color series appear in the Legend with Graph : Legend : Grid Colors. You can choose from:

Here is a description of all of the dataset representations:

Bars/2D
On most 2D graphs and on the XY plane of 3D graphs, if none of the optional data columns are used, this draws a bar centered along the line from X,0 to X,Y for each row of data with a valid X,Y value. The width of the bar is specified by the Size (Bar Width) attribute. You can specify the optional Base X and/or Base Y columns, so the bar can be drawn from BaseX,BaseY to X,Y. You can specify the optional Low Y Error and/or High Y Error columns, so the bar can have error bars. You can specify an optional Label column, which provides a number or a text string for labels which are drawn at the top of the bars. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. See also the Histogram representation, which is vaguely similar, but requires that the data be sorted by X, and which draws the bars left-justified at Xi.
Bars/3D
On 3D graphs, for each row of data with a valid X,Y,Z point, CoPlot draws a 3D bar centered along the line from X,Y,0 to X,Y,Z. You can specify an optional Base Z column, so the bar can be drawn from X,Y,BaseZ to X,Y,Z. You can specify an optional High Z Error column, so the bar can have an error bar. You can specify an optional Label column, which provides a number or a text string for labels which are drawn at the top of the bars. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. Bars/3D usually looks best when Fill Type is set to 0) (Empty).

Because Bars/3D, Bars/3D pyramids, and Bars/3D simple can plot scattered XYZ data, they are a useful alternative to all of the Grid representations (which require gridded data) in situations where you don't want to grid the data. (If your data is gridded, you may want to use one of the Grid representations, notably the Grid/3D histogram representation which is very similar to Bars/3D.) Because the data can have scattered XY values, CoPlot is careful to z-sort the data internally when drawing the bars so that the bars in the back appear to be behind the bars in front, no matter what Graph : Overview : 3D Spin Angle is set to.

Bars/3D pyramids
This is just like Bars/3D except that it draws pyramids instead of boxes.
Bars/3D simple
This is just like Bars/3D except that it draws simpler, 2D-style bars instead of 3D-style bars.
BarGraph/100%
On XY graphs, CoPlot counts how many datasets are using this representation. It then draws a stack of bars, centered at x=1, for the data on the first row of the data file. In the stack, there is one bar per dataset with this representation. The stack of bars is stretched or contracted to force the stack height to be 100. Additional clusters of bars are drawn at x=2,3,4,... for the data on the 2nd, 3rd, 4th, ... rows of the data file. When this representation is in use, the default Y axis low value is 0.
BarGraph/Grouped
On XY graphs, CoPlot counts how many datasets are using this representation. CoPlot then draws a group of bars, clustered at x=1, for the data on the first row of the data file. In the cluster, there is one bar for each dataset with this representation. Additional clusters of bars are drawn at x=2,3,4,... for the data on the 2nd, 3rd, 4th, ... rows of the data file. When this representation is in use, the default Y axis low value is 0. Optionally, you can specify a column with numbers or text strings to be used as Labels (which appear just above the bars), or a column with data for Error Bars. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style.
BarGraph/Stacked
On XY graphs, CoPlot counts how many datasets are using this representation. It then draws a stack of bars, centered at x=1, for the data on the first row of the data file. In the stack, there is one bar for each dataset with this representation. Additional stacks of bars are drawn at x=2,3,4,... for the data on the 2nd, 3rd, 4th, ... rows of the data file. When this representation is in use, the default Y axis low value is 0.
Box & whisker
On most 2D graphs and on the XY plane of 3D graphs, given 6 columns of data (X, Minimum, 1st Quartile, Median, 3rd Quartile, Maximum), CoPlot draws a box with whiskers (which look like error bars) for each row of data. Line Width sets the width of the lines between boxes (0=none). Error Width sets the width of the lines used to draw the box and whiskers (0 represents Drawing : Other : Minimum Line Width).
Fill above
On most 2D graphs and on the XY plane of 3D graphs, given 2 columns of data (X,Y), this draws a line connecting the data points and fills the area above this line (to the top of the graph).
Fill below
On most 2D graphs and on the XY plane of 3D graphs, given 2 columns of data (X,Y), this draws a line connecting the data points and fills the area below this line (to the bottom of the graph).
Fill between 2 Y
On most 2D graphs and on the XY plane of 3D graphs, given 3 columns of data (X,Y1,Y2), this draws a line through the X,Y1 points and continues the line by drawing backwards through the X,Y2 points. The area defined by the line is then filled.
Fill inward
On most 2D graphs and on the XY plane of 3D graphs, given 2 columns of data (X,Y), this draws a line connecting the data points and fills the area bounded by the line.
Fill outward
On most 2D graphs and on the XY plane of 3D graphs, given 2 columns of data (X,Y), this draws a line connecting the data points and fills the area not bounded by the line.
Fill zero
On most 2D graphs and on the XY plane of 3D graphs, given 2 columns of data (X,Y), this draws a line connecting the data points and fills the area below this line (to y=0).
Grid/2D/bold nth line
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this draws a series of contour lines. The contour lines associated with Z Division 1 levels are labelled and are 2 times as wide as the Z Division 2 lines. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. See also Data For Grid Representations.
Grid/2D/bold nth spline
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this draws a series of smoothed contour lines (splines). The spline algorithm is simply based on the points in a given line and does not guarantee that adjacent contour lines won't cross, so it isn't appropriate for all datasets. If it isn't right for your dataset, switch to Grid/2D/bold nth line or consider re-gridding the data with a grid that has more points. The contour lines associated with Z Division 1 levels are labelled and are 2 times as wide as the Z Division 2 lines. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. See also Data For Grid Representations.
Grid/2D/colored blocks/1 point
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this plots a surface. Each rectangle on the surface is colored based on the Z value at the Xminimum,Yminimum point in the rectangle. See also Data For Grid Representations.
Grid/2D/colored blocks/4 points
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this plots a surface. Each rectangle on the surface is colored based on the average of the Z values at the four corners of the rectangle. See also Data For Grid Representations.
Grid/2D/colored surface
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this colors the areas between contour lines. The colors indicate the contour levels. See also Data For Grid Representations.
Grid/2D/line color
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this draws a series of colored contour lines. The colors indicate the contour level. The contour lines associated with Z Division 1 levels are labelled. The others are not. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. See also Data For Grid Representations.
Grid/2D/line dashsize
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this draws a series of dashed contour lines. The dash size indicates the contour level. If there are n Z Division 1 and 2 levels, the first contour line gets a minimal dashsize and the nth contour line gets the dashsize specified by the Line Dashsize attribute. The contour lines associated with Z Division 1 levels are labelled. The others are not. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. See also Data For Grid Representations.
Grid/2D/line width
On most 2D graphs and on the XY plane of a 3D graph, given gridded X,Y,Z data, this draws a series of wide contour lines. The line width indicates the contour level. If there are n Z Division 1 and 2 levels, the first contour line gets a minimal line width and the nth contour line gets the line width specified by the Line Width attribute. The contour lines associated with Z Division 1 levels are labelled. The others are not. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. See also Data For Grid Representations.
Grid/3D/colored blocks/1 point
On 3D graphs, given gridded X,Y,Z data, this plots a surface. Each rectangle on the surface is colored based on the Z value at the Xminimum,Yminimum point in the rectangle. See also Data For Grid Representations.
Grid/3D/colored blocks/4 points
On 3D graphs, given gridded X,Y,Z data, this plots a surface. Each rectangle on the surface is colored based on the average of the Z values at the four corners of the rectangle. See also Data For Grid Representations.
Grid/3D/colored surface
On 3D graphs, given 3 columns of data (X,Y,Z) given gridded X,Y,Z data, this colors the areas between contour lines. The colors indicate the contour levels. See also Data For Grid Representations.
Grid/3D/histogram
On 3D graphs, given gridded X,Y,Z data, this plots a 3D block for each data point. The base of a block extends from Xi to Xi+1, and Yj to Yj+1 Thus, there is no space between the blocks in the X or Y direction. The height of each block is based on the Z value at the Xi,Yj point of the block. This representation is useful for plotting data from CoStat's Statistics : Frequency Analysis : Cross Tabulation when you have cross tabulated two columns of data. See also Data For Grid Representations. See also the Bars/3D representation, which is very similar, but doesn't require the data to be gridded.
Grid/3D/one color
On 3D graphs, given gridded X,Y,Z data, this plots a surface. Each rectangle on the surface is drawn with the same color. See also Data For Grid Representations.
Grid/3D/one color with sides
On 3D graphs, given gridded X,Y,Z data, this plots a surface with sides (extending from the surface to the XY plane). Each rectangle on the surface and on the sides is drawn with the same color. See also Data For Grid Representations.
Grid/3D/pyramids
This is just like Grid/3D/histogram except that it draws pyramids instead of boxes.
Grid/3D/transparent
On 3D graphs, given gridded X,Y,Z data, this plots a wireframe (rectangles with no background color). See also Data For Grid Representations.
Histogram
On most 2D graphs and on the XY plane of a 3D graph, given two columns of data (X,Y), this plots a series of rectangles, each with a base from Xi to Xi+1 and a height from 0 to Yi. Thus, there is no space between the rectangles horizontally. This representation is useful for plotting data from CoStat's Statistics : Frequency Analysis : Cross Tabulation when you have cross tabulated one column of data. The data must be sorted by the X values, in ascending order. Usually, the X values are evenly spaced, but they don't have to be. Whenever there is a gap in the X values, or at the end of the file, CoPlot guesses how wide the rectangle should be, based on the width of the last rectangle. See also the Bars/2D representation, which is very similar, but doesn't require the data to be sorted by X, and which draws the bars centered at Xi.
Line
On 2D graphs, given 2 columns of data (X,Y), this draws a line connecting the data points. You can specify the optional Low X Error, High X Error, Low Y Error, High Y Error columns, and/or Low Z Error, High Z Error columns to plot error bars.

On 3D graphs, if the Z variable is valid, this draws a 3D line connecting the data points. If the Z variable is Not Used, a 2D line is drawn on the XY plane.

Line/staircase
On most 2D graphs and on the XY plane of 3D graphs, given 2 columns of data (X,Y), this draws a horizontal line and then a vertical line between each point.
Markers
On 2D graphs, given 2 columns of data (X,Y), this draws markers at the X,Y points and (if Line Width >0) a line connecting the markers. You can specify the optional Low X Error, High X Error, Low Y Error, High Y Error columns, and/or Low Z Error, High Z Error columns to plot error bars.

On 3D graphs, if the Z variable is valid, this draws markers (and lines, if Line Width > 0) in 3D space. If the Z variable is Not Used, the markers (and lines) are drawn on the XY plane.

Markers/labels
On 2D graphs, given 3 columns of data (X,Y,Labels), this draws markers with labels at each data point. The font used for the labels is controlled by Edit : Graph : Graph : Overview : Dataset Labels Font and Dataset Labels Font Style. If Line Width is greater than 0, a line is drawn connecting them.

On 3D graphs, given 4 columns of data (X,Y,Z,Labels), this draws markers with labels at each data point. If Line Width is greater than 0, a line is drawn connecting them. If Z is Not Used, the markers and line are plotted on the XY plane.

If you just want to label a few X,Y points and don't already have the labels in a datafile, consider using Graph : Comment instead. If you click on the graph, it will find the nearest data point, and let you create a label at that X,Y location on the graph.

Markers/nth point
This is very similar to Markers, but only draws markers at every nth point. If Line Width>0, a line is drawn connecting all of the points (not just the nth points). This is useful if the data points are so close together that all of the markers would overlap if you used the Markers representation.

On 2D graphs, given 2 columns of data (X,Y), this draws markers at the X,Y points and (if Line Width >0) a line connecting the markers. You can specify the optional Low X Error, High X Error, Low Y Error, High Y Error columns, and/or Low Z Error, High Z Error columns to plot error bars.

On 3D graphs, if the Z variable is valid, this draws markers (and lines) in 3D space. If the Z variable is Not Used, the markers (and lines) are drawn on the XY plane.

Markers/variable
On 2D graphs, given 4 columns of data (X,Y, and optionally Type and Size), this draws a marker of varying type and size at each data point. This is useful when you want each marker to convey additional information. If Type is set to unused, all of the markers will be drawn with the same Marker Type, as specified below. If Size is set to unused, all of the markers will be drawn with the same Size (Marker), as specified below.

Type lets you specify a column of the datafile with the marker character numbers (32 to 127) to be used for each point to be plotted. For example, a filled square is #66. You can see the markers in the Marker font and their character numbers by choosing Edit : Graph : Dataset : x : Marker Type. Or, you may want to use CoPlot's File : Open : GIF to view and print the chart of the characters in the Marker font which is in the fsmarker.gif file in the cohort directory. For fonts other than the Marker font, the character numbers correspond to the standard ASCII character numbers (see helvet.gif in the cohort directory). Hint: In order to set up the data for this column, you might use CoStat's Transformations : If Then Else (Numeric) several times, to assign values to the Type column based on different If and Then equations (with the Else equation leaving the value in the Type column unchanged).

Size - The values in the Size column determine the relative size of the markers. To do this, CoPlot determines the maximum value in the Size column. It then associates that value with the maximum physical marker size as specified by Size (marker), below. Values less than the maximum in the Size column result in proportionally smaller markers.

On 3D graphs, if a Z column is also specified, this draws the markers in 3D space. If the Z column is Not Used, the markers are drawn on the XY plane.

Markers/variable/color
This is like Markers/variable, but with an additional, required Color variable. Color is required because the color array will be displayed in the legend. This representation is a good substitute for the colored Grid/2D representations when the data isn't gridded and you don't want to grid it. [Added in version 6.100.]

Color - CoPlot looks at the data and chooses a "nice" range for the virtual axis. (The virtual axis type is always linear.) Dataset : x : Z Divisions 1,2 then determine the color boundaries (as for other color array representations) and which colors appear in the legend (Legend : Grid Colors).

Spline
On 2D graphs, given 2 columns of data (X,Y), this draws a marker at each data point and (if Line Width>0) a smoothed line (a spline) connecting the data points. You can specify the optional Low X Error, High X Error, Low Y Error, High Y Error columns, and/or Low Z Error, High Z Error columns to plot error bars.

On 3D graphs, if a Z column is also specified, this draws the markers and spline in 3D space. If the Z column is Not Used, the markers and spline are drawn on the XY plane.

Vector
On most 2D graphs, given 4 columns of data (X,Y, Size, Angle in floating-point, counter-clockwise degrees), this draws vectors (arrows) based at the points defined by x,y.

On 3D graphs, if Z and Attitude (the angle in floating-point, counter-clockwise degrees relative to the XY plane) columns are specified, the vectors are drawn in 3D space; otherwise, the vectors are drawn on the XY plane.

Wind barb
On most 2D graphs, given 4 columns of data (X,Y, Speed, Angle, and optional Labels), this draws wind barbs with the bases at the points defined by X,Y. On 3D graphs, if Z and Attitude (the angle in floating-point, counter-clockwise degrees relative to the XY plane) columns are specified, the windbarbs are drawn in 3D space; otherwise, the windbarbs are drawn on the XY plane. Wind barbs are used on weather maps to indicate the direction and magnitude of the wind.


Menu Tree / Index        

Edit : Graph : Dataset : Regression

There is a "Regression" button on the Edit : Graph : Dataset dialogs which lets you quickly do a regression for the current dataset. The regression takes into account the X and Y variables and the Keep If equation for the current dataset.

This dialog box allows you to easily:

After using this procedure, you may wish to use Edit : Graph : Function to edit the attributes of the function(s) you have created. For example, you might want to change the color or line type of the function. Or, you may wish to delete the function.

The options on the dialog box are:

1) Save result as Graph : Function #
lets you specify in which Graph : Function slot the resulting equation will be stored. If you choose New Function, a new function will be created to hold the result.
2a) Select a standard function
as soon as you select one of the standard functions, CoPlot will perform the regression and plot the resulting equation. The standard functions are all linear or linearizable equations, and therefore can be solved very quickly by CoPlot.
2b) Or, enter an equation: y =
as soon as you enter an equation (type it, then press Enter), CoPlot will perform the regression and plot the resulting equation. Equations should refer to one or more unknown values, named u1, u2, u3, ... u9. For example, e^(u1+u2*x). Equations can use other functions, too (the f() option will automatically insert functions into the equation at the current insertion point). See Using Equations in the CoStat Manual (costat.htm). CoPlot will try to find the best values for these unknowns.

If you use the 2b option, the regression is solved as a nonlinear regression, whether the equation is nonlinear or not. Nonlinear regressions are solved iteratively, and thus may take longer for CoPlot to solve. You can click on the status line in CoPlot to cancel the regression.


Menu Tree / Index      

Edit : Graph : Function

The Edit : Graph : Function dialog lets you create and edit functions. Each function has attributes which specify what the function is and how it will be plotted on the graph. See also the separate list of Function Representations.

When you create a graph, it initially has no functions. To create a new function, you must drop down the Function list on the Edit : Graph dialog box and click on New Function. Then, Function 1 will be created and added to the list.

Related Settings - Usually, all attributes related to a part of a graph can be found on the dialog box for that part of the graph (for example, Edit : Graph : X Axis : Title 1). Sometimes there are related settings in other dialog boxes.

The options on the dialog box are:

Which Function
lets you specify which function to edit (All, or 1 - n).

To create a new function, you must drop down the current list of functions and click on New Function. Another number (n+1) will be added to the list.

Up
moves the currently selected function up one slot. The order of functions in the list determines the order in which they are drawn whenever the drawing is redrawn. Earlier functions may be partially or completely hidden by later functions.
Down
moves the currently selected function down one slot. The order of functions in the list determines the order in which they are drawn whenever the drawing is redrawn. Earlier functions may be partially or completely hidden by later functions.
Copy
makes a new function which is a copy of the currently selected function. The new function is inserted in the list right after the currently selected function, and it becomes the currently selected function.
Delete
deletes the currently selected function.
Equation
specifies the equation to be plotted. On 2D graphs, the equation can refer to 'x' (for example, 24 + 10*x + 4*x^2. If you refer to 'y', y will be treated as 0.

On 3D graphs, the equation can refer to 'x' and 'y' (for example, 24 + 10*x + 4*y + 2*x*y. See Using Equations in the CoStat Manual (costat.htm).

A
has a list of characters (#32 to #255, as defined by the ISO 8859-1 Character Encoding). If you click on a character, it will be inserted into the textfield at the current insertion point.
f()
has a list of functions (and other things) that you can put in the equation. If you click on a function, it will be inserted into the equation at the current insertion point. The list includes: See Using Equations in the CoStat Manual (costat.htm).
Legend
specifies the text that will be used to identify this function in the legend. If this is ".", the default will be used (the equation itself). If this is "" or if the text is just one big HTML comment (starting with "<!--" and ending with "-->"), there will be no entry in the legend for this function.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Because this legend entry will become part of the complete legend, it is important that all attribute starting tags (for example, '<b>') have matching attribute ending tags (for example, '</b>') so that the attributes don't apply to all subsequent entries in the legend.

Function: Legend handles most tags correctly, even tags that make the text more than one line (for example, <BR> and <P>).

Representation
specifies how the data for this function will be represented. See Graph : Function : Representations for a complete list and description of the options.
Background Color
specifies the solid color to be used in the background of the function representation (if appropriate). If this is set to notDrawn, the background won't be drawn.
Color
specifies the color for the fill and/or line parts of the representation. If this is set to notDrawn, nothing will be drawn (and it is therefore a quick way to temporarily not draw this function, without losing the attributes).
Fill Type
specifies a hatch pattern (a combination of horizontal, vertical, and diagonal lines) or a bit-mapped pattern. The bit-mapped patterns are only scaled to a limited number of sizes (integer multiples of the original pattern), so don't be surprised if a small change to Size (Fill) has no effect.
Fill Size
specifies the unit size of the fill pattern (in Drawing Coordinates).
Line Type
specifies the dash-space pattern which is used repeatedly when line objects are drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint). Disjoint is unusual in that it draws a line between points 1 and 2, 3 and 4, 5 and 6, etc., but not between points 2 and 3, 4 and 5, 6 and 7, etc.
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the lines (in Drawing Coordinates).
X Evaluate
specifies the number of times the equation is evaluated while spanning the equation's range along the X axis (usually, the X axis range, but see From and To below). For 2D functions, 100 is the default and is usually sufficient. For 3D functions, a smaller number (25?) is more suitable.
Y Evaluate
(for 3D graphs) specifies the number of times the equation is evaluated while spanning the equation's range along the Y axis. 25 is the default.
Z Division 1, 2 (.list)  
This is used by most of the Grid function representations to indicate where to divide the Z axis into different levels (for example, where contour lines are drawn). The Z Division 1 values are used for primary divisions (for example, bolder and labelled contour lines). The Z Division 2 values are used for secondary divisions. You can enter different things in these fields:
From
(for 2D graphs) specifies the low end of the range for the function to be evaluated. Enter "." for the default (which is the low end of the X axis range). Using From and/or To lets you plot the equation over less than that full range of the X axis.
To
(for 2D graphs) specifies the high end of the range for the function to be evaluated. Enter "." for the default (which is the high end of the X axis range). Using From and/or To lets you plot the equation over less than that full range of the X axis.


Menu Tree / Index    

Edit : Graph : Function : Representations

Functions can be represented (drawn) in many ways on a graph.

Speed - There is considerable variation in the time required to draw the functions with different representations, especially for the Grid representations. If you are working with a Grid representation, you way want to choose a faster representation while setting up a graph (for example, Grid/2D/colored blocks/1 point) and switch to your favorite (but slower) representation (for example, Grid/2D/bold nth line) right before printing the graph.

Colors For Grid Representations - Many of the Grid representations use a series of colors for the different contour levels on the Z axis.

The Background Color is the Basis Color
The Graph : Function : Background Color that you specify is used as the basis for the series of colors. For example:
Medium Colors
If you choose a medium color, like Red4, the colors in the series will range from Red9 (dark red, almost black, at the low end of the Z axis) to Red0 (light red, almost white, at the high end of the Z axis), centered at Red4.
Light Colors
If you choose a lighter color, like Red2, the colors in the series will still range from Red9 to Red0, but will be centered at Red2, giving you a lighter series of colors.
Dark Colors
If you choose a darker color, like Red7, the colors in the series will still range from Red9 to Red0, but will be centered at Red7, giving you a darker series of colors.
White
If white is the basis color, you will get a rainbow of colors in the progression of violet (at the low end of the Z axis), blue, green, yellow, orange, and red (at the high end of the Z axis).
Black
If black is the basis color, you will get a rainbow of colors in the progression of red (at the low end of the Z axis), orange, yellow, green, blue, violet (at the high end of the Z axis).
The Order of Colors
If Edit : Graph : Overview : Draw Color Arrays Dark To Light is checked, the colors will range from dark (for example, Red9 at the low end of the Z axis range) to light (for example, Red0 at the high end of the Z axis range). If it is not checked, the color order will be reversed.
The Number Of Colors
CoPlot will use a separate color for each unique value generated by Z Division 1 and 2. In creating the colors, CoPlot is not constrained to choose just colors in the standard CoPlot color palette; it will interpolate.
In The Legend
You can choose how many colors in the color series appear in the Legend with Graph : Legend : Grid Colors. You can choose from:

Here is a description of all of the function representations:

Fill above
On most 2D graphs and on the XY plane of 3D graphs, given an equation referring to x, this fills the area above the equation (to the top of the graph).
Fill below
On most 2D graphs and on the XY plane of 3D graphs, given an equation referring to x, this fills the area below the equation (to the bottom of the graph).
Fill zero
On most 2D graphs and on the XY plane of 3D graphs, given an equation referring to x, this fills the area below the equation (to y=0).
Grid/2D/bold nth line
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this draws a series of contour lines. The contour lines associated with Z Division 1 levels are labelled and are 2 times as wide as the Z Division 2 lines.
Grid/2D/bold nth spline
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this draws a series of smoothed contour lines (splines). The spline algorithm is simply based on the points in a given line and does not guarantee that adjacent contour lines won't cross, so it isn't appropriate for all functions. If it isn't right for your function, switch to Grid/2D/bold nth line and consider increasing the X Evaluate and Y Evaluate values so that the grid has more points. The contour lines associated with Z Division 1 levels are labelled and are 2 times as wide as the Z Division 2 lines.
Grid/2D/colored blocks/1 point
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this plots a surface. Each rectangle on the surface is colored based on the Z value at the Xminimum,Yminimum point in the rectangle.
Grid/2D/colored blocks/4 points
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this plots a surface. Each rectangle on the surface is colored based on the average of the Z values at the four corners of the rectangle.
Grid/2D/colored surface
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this colors the areas between contour lines. The colors indicate the contour levels.
Grid/2D/line color
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this draws a series of colored contour lines. The colors indicates the contour level. The contour lines associated with Z Division 1 levels are labelled. The others are not.
Grid/2D/line dashsize
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this draws a series of dashed contour lines. The size of the dashes indicates the contour level. If there are n Z Division 1 and 2 levels, the first contour line gets a minimal dashsize and the nth contour line gets the dashsize specified by the Line Dashsize attribute. The contour lines associated with Z Division 1 levels are labelled. The others are not.
Grid/2D/line width
On most 2D graphs and on the XY plane of a 3D graph, given an equation referring to x and y, this draws a series of wide contour lines. The line width indicates the contour level. If there are n Z Division 1 and 2 levels, the first contour line gets a minimal line width and the nth contour line gets the line width specified by the Line Width attribute. The contour lines associated with Z Division 1 levels are labelled. The others are not.
Grid/3D/colored blocks/1 point
On 3D graphs, given an equation referring to x and y, this plots a surface. Each rectangle on the surface is colored based on the Z value at the Xminimum,Yminimum point in the rectangle.
Grid/3D/colored blocks/4 points
On 3D graphs, given an equation referring to x and y, this plots a surface. Each rectangle on the surface is colored based on the average of the Z values at the four corners of the rectangle.
Grid/3D/colored surface
On 3D graphs, given an equation referring to x and y, this colors the areas between contour lines. The colors indicate the contour levels.
Grid/3D/one color
On 3D graphs, given an equation referring to x and y, this plots a surface. Each rectangle on the surface is drawn with the same color.
Grid/3D/one color with sides
On 3D graphs, given an equation referring to x and y, this plots a surface with sides (extending from the surface to the XY plane). Each rectangle on the surface and on the sides is drawn with the same color.
Grid/3D/transparent
On 3D graphs, given an equation referring to x and y, this plots a wireframe (rectangles with no background color).
Line
On 2D and on the XY plane of 3D graphs, given an equation referring to x, this draws the line described by the equation.


Menu Tree / Index        

Edit : Graph : Axis : Overview

The Edit : Graph : Axis : Overview dialog lets you specify the Axis Type and range for an axis on a graph. Collectively, the axis ranges define the graph coordinate system, which determines where data points and functions are plotted on the graph.

The options on the dialog box are:

Which Axis
lets you specify which axis to edit (All, X, Y, Z, or T).
Type  
specifies the type of axis. The axis type partially determines where tick marks and labels are drawn. When you change the axis type, CoPlot automatically changes the axis label's format to an appropriate format, but you can change it manually (see Edit : Graph : Axis : Labels). For hints on working with date, time, degree, and pi values, see Entering Numeric Values in the CoStat Manual (costat.htm).

The options are:

Linear Scale  
is the standard, Cartesian coordinate axis. It is available for all graph types.
Julian -> Date  
converts Julian dates (following the Lotus 1-2-3 convention of Jan 1, 1900=day 2) into the Year-Month-Date format. There are some "magic" numbers for special circumstances: For Labels, Ticks 1, Ticks 2, Grid 1, and Grid 2, if you set Divisions to 30 (or a multiple of 30, commonly: 30, 60, 90, 180, 360, 720, ...), the program will put items at monthly (or multi-monthly) intervals, properly accounting for the different numbers of days in different months. Also, setting Divisions to 360 will put items at yearly intervals.

Similar to the multiples-of-30 system, you can also use multiples of 30 plus 1 (commonly: 31, 61, 91, 181, 361, 721, ...) to get the beginnings of months as if the year started Nov. 1. This is useful for hydrologists. hydrologists.

Seconds -> Time  
converts a time (in seconds since midnight on the 0th day) into "Day x Hours:Minutes:Seconds.Decimal" format. If the value of day is 0, it is not displayed.
Degrees -> Deg°Min'Sec"  
converts decimal degrees into Degrees°Minutes'Seconds" format. This is the default axis type for Conic, Mercator, and Orthographic graphs.
Pi
is similar to the linear axis, but the labels and ticks appear at multiples of pi.
Log Base 10
performs the log transformation of data and functions as they are plotted. The labels indicate the corresponding untransformed values. Values on this axis must be greater than 0. See Notes on Log Axes.
Double Log Base 10
is similar to the Log Base 10 Axis, but performs the log of the log transformation. Values on this axis must be greater than 1. See Notes on Log Axes.
Natural Log
is similar to the Log Base 10 Axis, but performs the natural log transformation. Values on this axis must be greater than 0.
Square Root
is similar to the Log Base 10 Axis, but performs the square root transformation. Values on this axis must be at least 0.
Normal Probability  
plots data and functions on a normal probability scale. The data for this axis are often cumulative data divided by the maximum cumulative value, and therefore range from greater than 0 to less than 1. See Notes on Normal Probability Axes.
Standard Deviation
also plots on a normal probability scale, but the labels and ticks indicate the number of standard deviations from the mean. The data for this axis are often cumulative data divided by the maximum cumulative value and therefore range from greater than 0 to less than 1. The range for this axis type is usually about -4 to 4. See Notes on Normal Probability Axes.
Probit
also plots on a normal probability scale, but the labels and ticks indicate the number of probits (a contraction of 'prob'ability un'its' -- standard deviations from the mean, plus 5). The data for this axis are often cumulative data divided by the maximum cumulative value, and therefore range from greater than 0 to less than 1. The range for this axis type is usually about 1 to 9, corresponding to -4 to 4 on the standard deviation axis. See Notes on Normal Probability Axes.

Here are examples of the different axis types:

axkind.gif

Low
specifies the numeric value associated with what is normally the low end of this axis. Actually, the Low value can be greater than the High value in order to flip the order of the axis. If you enter ".", the default (based on the range of any valid datasets and functions) will be used.
High
specifies the numeric value associated with what is normally the high end of this axis. Actually, the Low value can be greater than the High value in order to flip the order of the axis. If you enter ".", the default (based on the range of any valid datasets and functions) will be used.
Center
specifies the center value for this axis. You may want to change this if you want to shift the range of values displayed on the axis a little higher or lower.

This value is not stored with the graph -- it is a reflection of the current Low and High values. If you change this value, CoPlot implements the change by changing the Low and High values

One common use for this is when the graph is a map: this lets you center the axis on a specific latitude or longitude.

Another common use for this is when data values on the X axis span a large range (for example, a time series) and the graph only displays a small portion of the X axis range. Center (particularly the Center '+' and '-' buttons and particularly with Center Shift % = 100%) lets you change the portion of the data which is visible.

Center Animation    
This animates the graph by repeatedly increasing (or decreasing) the Center. This is useful if you have a data file with a large range of values on the X axis -- you can plot a small portion of the data's X axis range and then use the animation feature to scan the rest of the X axis range.
Frames Per Second  
specifies the maximum speed of the animation. The animation won't go any faster than this speed, but if the frames take a long time to draw, the animation will go slower.
Center Shift %
specifies the percentage of the axis range (0 - 100%) which is shifted when you press the Center '+' or '-' button. Usually, it is useful to shift the axis a small amount (for example, 2%), but you can make the '+' and '-' buttons shift the axis by the entire range by setting this to 100%.
Range
specifies the range of the axis. If you change the range, the center of the axis stays at the same value, but the Low and High values are adjusted to account for the new axis range.

This value is not stored with the graph -- it is a reflection of the current Low and High values. If you change this value, CoPlot implements the change by changing the Low and High values

Offset
specifies the distance (in Drawing Coordinates) that the axis line, ticks, labels, and titles are drawn outward from their normal position (Offset=0). Many people like the appearance of graphs with an offset of .25 inches or 1 cm.
Color
specifies the color to be used for that the axis line, ticks, labels, and titles. This is a "wizard" that goes into (and changes) all of the separate places (X Axis : Axis Line : Color, X Axis : Ticks 1 : Color, etc.) where the colors are stored for the axis line, ticks, labels, and titles. Only parts of the axis where the color is not notDrawn will be affected.
Division 1
specifies the distance between the Ticks 1 and Grid 1 lines and the Labels. This is a "wizard" that goes into (and changes) all of the separate places (X Axis : Ticks 1 : Division, X Axis : Grid 1 : Division, etc.) where these values are stored, and so is a quick way to make several changes to the graph.
Division 2
specifies the distance between the Ticks 2 lines and between the Grid 2 lines. This is a "wizard" that goes into (and changes) all of the separate places (X Axis : Ticks 2 : Division, X Axis : Ticks 2 : Division) where these values are stored, and so is a quick way to make several changes to the graph.
Visible
specifies where the Axis Line, Ticks 1, Ticks 2, Labels and Title are visible (on the Main Axis, the Opposite Axis, or Both Axes). This is a "wizard" that goes into (and changes) all of the separate places (X Axis : Axis Line : Visible, X Axis : Ticks 1 : Visible, etc.) where these values are stored, and so is a quick way to make several changes to the graph.


Menu Tree / Index  

Notes on Log Base 10 Axis and Double Log Base 10 Type:

If an axis type is Log Base 10 or Double Log Base 10, the number of Divisions for Labels, Ticks 1, Ticks 2, Grid 1, and Grid 2 lines indicates the number per decade (a span of 1 order of magnitude) instead of the number over the whole range. For example, if the number of Divisions for Labels is 3 and the range is 1 to 1000, there will be labels at 1, 2, 3, 10, 20, 30, 100, 200, 300, and 1000. If you set the number of Divisions for Labels to 1, the labels will be printed as powers of 10, for example, 100, 101, 102, and 103. If you use negative numbers, you can get labels every -nth decade, for example, for a setting of -2, the labels will be printed only at 100 and 102.

If the range on a log axis is relatively small (i.e., if the High divided by the Low is less than 5), a different system is used. CoPlot will automatically set the number of Divisions for Labels and Ticks 1 to 10. With these settings, CoPlot will print between 2 and 10 labels, total, depending on the range. If the number of labels actually printed is less than 4 then CoPlot will automatically set Divisions for Ticks 2 to 10. This will cause 9 Ticks 2 to be printed between each of the Ticks 1.

If Divisions is set to a number in the range 11 to 99, CoPlot will print 9 ticks between each power of 10 (for example, if the low end of the range is 1.0: 1, 2, 3, 4, ... 9) and also print ticks at 1.1, 1.2, ... Divisions/10.

Remember that the low end of the range of a Log base 10 axis must be greater than zero.


Menu Tree / Index      

Notes on Normal Probability, Standard Deviation, and Probit Axis Types:

These axis types can be used on any axis of most types of graphs. All of them print on a normal probability scale, but with different labelling. If Axis: Type is set to Normal Probability and the data has of range of 0.05 to 0.95, then the same data plotted with Axis: Type: Standard deviation will appear to have a range of roughly -2 to 2 standard deviations, and the same data plotted on Axis: Type: Probit will appear to have a range of roughly 3 to 7 probit units (standard deviations + 5). (See the graphs below.)

These axes are often used on the Y axis of both XY graphs and Histograms as a graphic check of the normality of a set of data. Cumulative data with a normal distribution will appear as a straight line on these axis. Any deviation from normality appears as a deviation from the straight line.

The Normal Probability Axis

The default range on a Normal Probability axis is 0.001 to 0.999 which is expressed as 0.1% to 99.9%. The widest range allowed is 0.00001 to 0.99999. (The tails of the normal probability distribution extend to infinity; so a range of 0 to 1 is not possible.)

Because the labels and tick marks on a Normal Probability axis do not occur at regular intervals, CoPlot has a special system for specifying the number of labels and tick marks. The number of Divisions is used to indicate the number of pairs of an item (a label or a type of tick mark).
Divisions Additional items appear at
1 50%
2,3 99.9% and 0.1%
4,5 90% and 10%
6,7 99% and 1%
8,9 70% and 30%
10,11 99.99% and 0.01%
12,13 99.999% and 0.001%
14,15 95% and 5%
16,17 80% and 20%
18,19 99.5% and .5%
20,21 60% and 40%
22,23 98% and 2%
24,25 99.8% and .2%
26,27 99.98% and .02%
28,29 99.998% and .002%
30,31 99.95% and .05%
32,33 99.995% and .005%

If the number of Divisions is 1, a label (for example) will appear at 50%. If the number of Divisions is 3, labels will also appear at 0.1 and 99.9%. Etc.

XY Graphs - The only difference between the four HEIGHT graphs shown below is the Y Axis: Type. (Each of the Y axes is labelled appropriately.)

Here is a comparison of Linear Scale, Normal Probability, Standard Deviation, and Probit Axes on an XY graph:

heighta.gif heightb.gif heightc.gif heightd.gif

The X data for the graphs is the sorted Height values. The Y data is the cumulative Height values divided by 4720.5 (the sum of all of the Height values). Here is the data in the HEIGHT.DT sample data file, used in the sample graph.

       Height     Cum/4720.5
        61.5   0.0130282809
        62.75  0.02632136426
        63.25  0.03972036861
        63.5   0.05317233344
        67.5   0.06747166614
        68.75  0.08203580129
        72.5   0.09739434382
        73.75  0.1130176888
        74     0.12869399428
        78.25  0.14527062811
        78.25  0.16184726194
        80     0.17879461921
        80     0.19574197649
        80     0.21268933376
        82.5   0.23016629594
        83.75  0.24790806059
        90.5   0.2670797585
        90.5   0.28625145641
        90.5   0.30542315433
        91.5   0.32480669421
        91.75  0.34424319458
        91.75  0.36367969495
        92.75  0.38332803728
        93     0.40302934011
        94     0.42294248491
        95     0.44306747167
        96     0.46340430039
        96.25  0.48379408961
        96.5   0.50423683932
        97.75  0.52494439148
        98.5   0.54581082512
       103     0.56763054761
       106.5   0.59019171698
       110     0.61349433323
       110.75  0.63695583095
       110.75  0.66041732867
       116.5   0.6850969177
       116.75  0.70982946722
       120.25  0.73530346362
       120.25  0.76077746001
       127.5   0.78778731067
       127.75  0.81485012181
       131.75  0.84276030082
       132.5   0.8708293613
       146.5   0.9018642093
       150.75  0.93379938566
       154.75  0.96658192988
       157.75  1

Using CoStat (the datafile editor) to prepare data for XY graphs with Normal Probability, Standard deviation, or Probit axes:

  1. Start with a data file with 1 column of raw data (for example, Height).
  2. Use Edit : Sort to sort based on that column, in ascending order.
  3. Use Edit : Copy Columns to make a copy of column #1 at the end.
  4. Use Transformations : Accumulate to accumulate values in column #2.
  5. Use CtrlEnd to go to the last row in the file and look at the last value in column #2 (the total).
  6. Use Transformations : Transform to transform the values in column #2 by dividing by the total (for example, col(1)/4720.5).
  7. Use File : Save As to save the data with a different file name (so the original data isn't overwritten).

This results in data ranging from 0 to 1, which is what the Normal Probability axis, Standard Deviation axis, and Probit axis take as input.

Histograms - The data for Histograms is not raw data, as for XY graphs, but data that has been grouped into classes. For the sample data file, HEIGHT1.DT, the Height data (from above) was tabulated into classes with a width of 10 (60 - 69.9, 70 - 79.9, 80 - 89.9, etc.) with CoStat's Statistics : Frequency Analysis : Crosstabulation. For the four HEIGHT1 graphs (shown below), the X variable for data set #1 is Height (the lower limit of each group: 60, 70, 80, etc.) and the Y variable is Cumulative Frequency divided by 48 (the number of data points).

Here is a comparison of Linear Scale, Normal Probability, Standard Deviation, and Probit Axes on a histogram:

height1a.gif height1b.gif height1c.gif height1d.gif

The only difference between the four HEIGHT1 graphs is the Y Axis : Type. (Each of the Y axes is labelled appropriately.) Here is the HEIGHT1.DT sample data file, which is used for the HEIGHT1 series of sample graphs:

PRINT DATA
Using: C:\COHORT6\HEIGHT1.DT

     Height  Frequency  Cumulative   Cum(Freq)/48
   --------  ---------  ----------  -------------
         60          6           6  0.125
         70          5          11  0.22916666667
         80          5          16  0.33333333333
         90         15          31  0.64583333333
        100          2          33  0.6875
        110          5          38  0.79166666667
        120          4          42  0.875
        130          2          44  0.91666666667
        140          1          45  0.9375
        150          3          48  1

Useful Functions - There are two related functions which can be used in equations that you type in:

norm
When you are plotting frequency data on a histogram with an ordinary linear Y axis (for example, X=Height and Y=Frequency in the Height1 datafile) and want to also plot the normal distribution, you can use the normal distribution function, norm, which gives the bell-shaped curve of the normal distribution. The expected normal distribution for HEIGHT1 data is given by:

Function 1 = w*n/s*norm((x-m)/s)

where:

So the actual function is:

Function 1 = 10*48/25.01*norm((x-98.34)/25.01)

cumNorm
Both the HEIGHT XY graphs and the HEIGHT1 Histograms make use of the cumulative normal function, cumNorm. Since the mean, 98.34, and standard deviation, 25.01, of the Height values are known from Statistics : Descriptive in CoStat (or can be determined with a calculator), you can plot the expected cumulative normal distribution with cumNorm((x-mean)/standard deviation) (in this case, Function 1 = cumNorm((x-98.34)/25.01).


Menu Tree / Index      

Edit : Graph : Axis : Titles

The Edit : Graph : Axis : Titles dialog lets you specify the text for Title 1 (the primary title), and Title 2 (the secondary title), and their attributes, for each of the axes.

The options on the dialog box are:

Which Axis
specifies whether you want to edit the titles on the X, Y, Z, or T axes, or All axes simultaneously.
Which Part
specifies whether you want to edit Title 1 (the primary title), Title 2 (the secondary title), or both simultaneously.
Text
specifies the characters to be written. For Title 1, if you just enter a '.', the default title (the name of the X or Y variable from the first dataset, if it exists) will be used.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

X Y Position
specifies the X Y position (in Drawing Coordinates) for the text. You can also drag the little block that appears near the title.
Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Font Style
specifies the initial font style for the text: Plain, Bold, Italic, or Bold Italic.
Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Angle
specifies the angle for the text (in floating-point, counter-clockwise degrees). This is usually 0, but may be any value.
H Align
specifies the horizontal alignment of the text, relative to the text's X Y Position. (The text's vertical alignment is always Center.)
Visible
specifies if the titles will be visible on the Main Axis, Opposite Axis, or Both Axes. The opposite axis is the axis opposite the main axis (for example, the top axis is the opposite axis for the X axis).

On 3D graphs, the axes which are designated 'main' and 'opposite' change when you change the Graph : Overview : 3D Spin Angle. The 'main' X axis is the one which is currently at the front of the graph. Similarly, the 'main' Y axis is the one which is currently at the front of the graph. The 'main' Z axis is the one based at the leftmost corner of the XY plane.


Menu Tree / Index      

Edit : Graph : Axis : Labels

The Edit : Graph : Axis : Labels dialog lets you specify the attributes of the Axis : Labels on each axis.

When a dataset or function is represented by a series of colors, many of the attributes on this dialog box (when it is used for the Z axis) are also used to format the numbers written beside the colors in the legend.

The options on the dialog box are:

Which Axis
specifies whether you want to edit the labels on the X, Y, Z, or T axes, or All axes simultaneously.
Text
lets you specify a comma separated value list of labels. Or, you can just enter a '.' to get the default labels. Warning: if you supply your own labels, you should also supply the list of Divisions (see below) to ensure that each label is correctly positioned, even if the axis range changes.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Get axis labels from a datafile
lets you create a comma-separated list of labels for Text, by specifying a column in one of the datafiles that contains the labels.
X Y Position
specifies the X Y position (in Drawing Coordinates) for the labels (they are all moved simultaneously). You can also drag the little block that appears near the center of the labels.
Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Font Style
specifies the initial font style for the text: Plain, Bold, Italic, or Bold Italic.
Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Angle
specifies the angle for the text (in floating-point, counter-clockwise degrees). This is usually 0, but may be any value.
H Align
specifies the horizontal alignment of the text, relative to the text's X Y Position. (The text's vertical alignment is always Center.)
Division
specifies the numeric values that determine where the labels get placed. You can specify:
Format 1
The numeric values for the labels may be formatted in many different ways. See the detailed description of the format options in the CoStat Manual (costat.htm).
Format 2
For each type of Format 1, there are several subtypes. Often, these just indicate how many decimal places will be shown. See the detailed description of the format options in the CoStat Manual (costat.htm).
Decimal Point
The decimal point can be displayed as a period or a comma.
Prefix
You can specify a text string to be added to the beginning of each value. A typical use is to append '$' for dollar values.
Suffix
You can specify a text string to be added to the end of each value. A typical use is to append the units (for example, 'cm' or 'g/l').
Visible
specifies if the labels will be visible on the Main Axis, Opposite Axis, or Both Axes. The opposite axis is the axis opposite the main axis (for example, the top axis is the opposite axis for the X axis).

On 3D graphs, the axes which are designated main and opposite change when you change the Graph : Overview : 3D Spin Angle. The main X axis is the one which is currently at the front of the graph. Similarly, the main Y axis is the one which is currently at the front of the graph. The main Z axis is the one based at the leftmost corner of the XY plane.

Draw First Label
This checkbox lets you specify if you want the first label to be drawn or not. This can be useful for Z Axis : Labels.
Draw Last Label
This checkbox lets you specify if you want the last label to be drawn or not. This can be useful for Y Axis : Labels on a 3D graph.


Menu Tree / Index                      

Edit : Graph : Axis : Lines

The Edit : Graph : Axis : Lines dialog lets you specify the attributes of a graph's axis lines: the Axis Line, Ticks 1 (the primary ticks), Ticks 2 (the secondary ticks), Grid 1 (the primary grid lines), Grid 2 (the secondary grid lines), and Zero Line.

The options on the dialog box are:

Which Axis
specifies whether you want to edit the lines on the X, Y, Z, or T axes, or All axes simultaneously.
Which Part
specifies which types of lines you want to edit: Axis Line, Ticks 1 (the primary ticks), Ticks 2 (the secondary ticks), Grid 1 (the primary grid lines), Grid 2 (the secondary grid lines), Zero Line, or All types simultaneously.
Color
specifies the color for the lines. If this is set to notDrawn, the lines won't be drawn.

Suggestion: Gray grid lines often look better than black grid lines.

Type
specifies the dash-space pattern which is used repeatedly when the lines are drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint).
Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Width
specifies the width of the lines (in Drawing Coordinates).
Division
specifies the numeric values that determine where the lines get placed. It applies to Ticks 1, Ticks 2, Grid 1, and Grid 2; it is irrelevant for Axis Line and Zero Line. You can specify:
In
specifies the distance that ticks are drawn into the graph (in Drawing Coordinates). This only applies to Ticks 1 and Ticks 2; it is irrelevant for Axis Line, Grid Lines, and Zero Lines.
Out
specifies the distance that ticks are drawn away from the graph (in Drawing Coordinates). This only applies to Ticks 1 and Ticks 2; it is irrelevant for Axis Line, Grid Lines, and Zero Lines.
Arrow Head Visible
specifies the where the arrow head will be visible if the Arrow Headsize>0: the Low End, the High End (the default), or Both Ends. The 'Low' and 'High' ends are the nominal low and high ends, paralleling the X Axis : Overview : Low and High designations.
Arrow Headsize
specifies the size (in Drawing Coordinates) of the arrowhead on the Axis Line or Zero Line. If you don't want the arrowhead to be drawn, use a headsize of 0. The arrow type is always Fancy. The arrow angle is always 30°. This only applies to the main axis line (not the opposite axis line) and the zero line; it is irrelevant for Grid Lines, Ticks 1, and Ticks 2.
Visible
specifies if the lines will be visible on the Main Axis, Opposite Axis, or Both Axes. The opposite axis is the axis opposite the main axis (for example, the top axis is the opposite axis for the X axis). This only applies to the Axis Line and Ticks; it is irrelevant for Grid Lines and Zero Lines. If you want to make any part of the axis not visible, use Color: notDrawn.

On 3D graphs, the axes which are designated main and opposite change when you change the Graph : Overview : 3D Spin Angle. The main X axis is the one which is currently at the front of the graph. Similarly, the main Y axis is the one which is currently at the front of the graph. The main Z axis is the one based at the leftmost corner of the XY plane.


Menu Tree / Index      

Edit : Graph : Legend

Each graph can automatically display a legend. In the legend, labels are printed beside the marker, line, or filled area used to represent each function and dataset. The default labels are the actual function (for Functions) or the Y (or Z) variable's name (for Datasets). If you select Function : x : Legend or Data : x : Legend, you can type in a different label for the legend. A typical use of this feature would be to replace an actual equation (for example, 0.03211345345-1.961234563*x+3.2486410967*x^2) with the same equation but formatted nicely (for example, 0.0321 - 1.961x + 3.248x<sup>2</sup> will appear as 0.0321 - 1.961x + 3.248x2). If you change the label to nothing or if the label is one big comment (for example, '<!-- a comment -->'), the legend will not include an entry for that function or dataset.

You can turn off the entire legend by changing the Text Color to Color2.notDrawn.

When a dataset or function is represented by a series of colors, the format of the numbers written beside the colors in the legend is determined by the attributes of the Z Axis : Labels.

Legend Not Visible? If you think the legend should be visible, but it isn't, here are some things to check:

The Edit : Graph : Legend dialog lets you specify the attributes of the Graph : Legend. The options on the dialog box are:

Title
specifies the text for the legend's title. If you enter nothing, no title will be drawn.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Because the Legend Title will become the first part of the complete legend, it is important that all attribute starting tags (for example, '<b>') have matching attribute ending tags (for example, '</b>') so that the attributes don't apply to all subsequent entries in the legend. (Unless that is what you want.)

Legend: Title handles most tags correctly, even tags that make the text more than one line (for example, <BR> and <P>).

Order
lets you rearrange the order of datasets and functions in the legend.
X Y Position
specifies the X Y position (in Drawing Coordinates) for the text. You can also drag the little block that appears near the title. If you change the Graph : Overview : X Y Position, the legend will automatically be moved relative to the graph's box (for a 2D graph) or the graph's center (for a 3D graph).
 
Text Color
specifies which color will be used initially for all of the text in the legend. If this is set to notDrawn, the legend won't be drawn.
Text Font
specifies which font slot will be used initially for all of the text in the legend (see Drawing : Load Fonts).
Text Font Style
specifies the initial font style for the all of text in the legend: Plain, Bold, Italic, or Bold Italic.
Text Height
specifies the initial height of a capital letter (in Drawing Coordinates).
 
Type
specifies the format of the legend: Horizontal, Vertical, or Interlaced.
Interline
specifies the distance between entries in the legend, relative to 1 (the standard distance).
Example Size
specifies the size of line and fill examples in the legend, relative to 1 (the standard size).
Angle
specifies the angle of rotation for the entire legend (in floating-point, counter-clockwise degrees). This is usually 0, but may be any value.
Grid Colors
For Dataset and Function Representations that start with "Grid", this specifies how many colors will be displayed in the legend:
 
Background Color
specifies which color will be used as the solid-fill background color of the legend. If this is set to notDrawn, the background won't be drawn.
Line Color
specifies which color will be used to draw a line around the legend. If this is set to notDrawn, the line won't be drawn.
Line Width
specifies the width of the line around the legend (in Drawing Coordinates).
Shape Type
specifies the type of shape which is drawn around the text. The default is Rectangle. The shape is only visible if the Background Color or Line Color is not notDrawn.

Most of the shapes have a rectangular area inside them in which the text is drawn. For a few shapes, the rectangular area is constrained to be a square (for example, Shape Type: Square). For some shapes, the shape is drawn above the text rectangle (for example, Shape Type: Fax, Person, Printer).

Shape V Align
specifies the vertical alignment of the shape, relative to the legend's X Y Position. There are Shape V Align options related to the shape and options related to the text. The options related to the shape are exact for Shape Type: Rectangle, but are approximate for other shapes. The default is Shape Center.

The Above 1 and Below 1 options are useful with the Shape Type: Rectangle, point xxx options. The Below 3 option is useful with the Shape Type: Cloud, point down and Cloud 2, point down options.

Shape H Align
specifies the horizontal alignment of the shape, relative to the legend's X Y Position. There are Shape H Align options related to the shape and options related to the text. The options related to the shape are exact for Shape Type: Rectangle, but are approximate for other shapes. The default is Center.

The Farther Left and Farther Right options are useful when the Shape Type points left or right.

Shape Border
specifies the relative size of the border around the text, within the shape. The default is 1. [Added in 6.100.]
Shape Shadow
specifies the shadow type for the shape. Shadows are always colored gray. The offset of the shadow is determined by the Text Height. There are options for single shadows and triple shadows. The default is (none).
 
Use Custom Legend    
(for advanced users) indicates if the custom legend should be used. Normally, when CoPlot draws a legend, it strings together the Legend Title, HTML-like tags to display line, fill, and marker samples, and the Function (and Dataset): Legend text into one long text string and then draws that string. If you want to, you can supply the text string that is used to draw the legend. Usually, you will use Reset To Default (below) to use the standard string as the starting point for your modifications (done by using Edit).
Edit
Opens a text editor so you can edit the text for the custom legend.
Reset To Default
This resets the text for the custom legend to the default (the text which would be used generate the standard legend).

Suggestion for making 1 legend for 2 graphs: Normally, each graph has its own legend. If you have 2 (or more) graphs and want to make one legend with all of the datasets and functions in it, there is no built-in way to do it. But you could:

  1. Use Create : Big Text to create a Big Text object.
  2. Use Edit : Graph : Legend : Edit to get the text from one of the graph's legends and put it on the clipboard (Ctrl A to mark all text, Ctrl C to copy all text).
  3. Set the legend's Text Color to notDrawn so suppress the drawing of that legend.
  4. Use Edit : Big Text : Edit the text and use Ctrl V to paste the text from the legend into that Big Text object.
  5. Repeat steps 2, 3, and 4 for each of the other graphs.
In the end, you have one Big Text object with all of the information from all of the legends. You can then manipulate it in any way you want.


Menu Tree / Index    

Edit : Graph : Comment

Graph Comments are actually text drawn within shapes, although you can draw the shapes alone, or the text alone. The size of the shape is (usually) automatically adjusted to accommodate the text. Unlike CoPlot's Text objects, the location of a Graph : Comment is specified in graph coordinates, not Drawing Coordinates. (Use Create : Text to create text objects where the locations are specified in drawing coordinates.) The Edit : Graph : Comment dialog box lets you create and edit the attributes of comments.

When you create a graph, it initially has no comments. To create a new comment, you must drop down the Comment list on the Edit : Graph dialog box and click on New. Then, Comment 1 will be created and added to the list.

A common use of graph comments is to mark several data points. You can do this by setting Click Equals to Get nearest data point and then repeatedly: 1) clicking on a data point and 2) clicking on Copy. Note that when you do this, it will appear as if the last comment you made is erased when you click on the next data point; in reality, it is just erased on screen when the new copy of the old comment is moved. You can press the Redraw button if you need to see the completely redrawn graph.

An alternative to Graph : Comment is to make a datafile with columns for X, Y, and Labels and then use Graph : Dataset : 1 : Representation : Markers/labels to plot that data on the graph. Using this approach is preferable if you already have a datafile with X, Y, and Labels data. One difference is that Representation: Markers/labels just draws the text of the label, with no shape drawn around the text.

The options on the dialog box are:

Which Comment
lets you specify which comment to edit (All, or 1 - n).

To create a new comment, you must drop down the current list of datasets and click on New. Another number (n+1) will be added to the list.

Up
moves the currently selected comment up one slot. The order of comments in the list determines the order in which they are drawn whenever the graph is redrawn.
Down
moves the currently selected comment down one slot. The order of comments in the list determines the order in which they are drawn whenever the graph is redrawn.
Copy
makes a new comment which is a copy of the currently selected comment. The new comment is inserted in the list right after the currently selected comment, and it becomes the currently selected comment.
Delete
deletes the currently selected comment.
Click Equals
There are two ways to specify where the comment will be drawn.

1) Click on the graph. Depending on the Click Equals setting, CoPlot will use the graph coordinates of the position you click on, or it will look for and use the nearest data point.

2) Enter the Graph X, Y, and Z values in the appropriate fields in the dialog box.

Graph X
specifies the X coordinate for positioning the comment (in Graph Coordinates). When X is out of the X axis range, the comment won't be drawn.
Graph Y
specifies the Y coordinate for positioning the comment (in Graph Coordinates). When Y is out of the Y axis range, the comment won't be drawn.
Graph Z
specifies the Z coordinate for positioning the comment (in Graph Coordinates). When Z is out of the Z axis range (on 3D graphs), the comment won't be drawn.
Text Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Text
specifies the characters to be written. If you enter nothing, no comment will be drawn. If you enter just a period ("."), CoPlot will display the text from the Graph Y coordinate (or Z, if the graph has three axes). The text is only visible if the Text Color is not notDrawn.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Text Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Text Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Text Position
specifies the position for the text within the shape (if the shape is larger than necessary for the text). The horizontal component also specifies whether the text is initially left justified, centered, or right justified. The default is Center center.
Background Color
specifies the solid color to be used in the background of the shape. If this is set to notDrawn, the background won't be drawn.
Line Color
specifies the color for the line around the perimeter of the shape. If this is set to notDrawn, the line won't be drawn.
Line Type
specifies the dash-space pattern which is used repeatedly when the line is drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint). Disjoint is unusual in that it draws a line between points 1 and 2, 3 and 4, 5 and 6, etc., but not between points 2 and 3, 4 and 5, 6 and 7, etc.
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the line (in Drawing Coordinates).
Shape Type
specifies the type of shape which is drawn around the text. The default is Rectangle. The shape is only visible if the Background Color or Line Color is not notDrawn.

Most of the shapes have a rectangular area inside them in which the text is drawn. For a few shapes, the rectangular area is constrained to be a square (for example, Shape Type: Square). For some shapes, the shape is drawn above the text rectangle (for example, Shape Type: Fax, Person, Printer).

Shape V Align
specifies the vertical alignment of the shape, relative to the comment's X Y Position. There are Shape V Align options related to the shape and options related to the text. The options related to the shape are exact for Shape Type: Rectangle, but are approximate for other shapes. The default is Shape Center.

The Above 1 and Below 1 options are useful with the Shape Type: Rectangle, point xxx options. The Below 3 option is useful with the Shape Type: Cloud, point down and Cloud 2, point down options.

Shape H Align
specifies the horizontal alignment of the shape, relative to the comment's X Y Position. There are Shape H Align options related to the shape and options related to the text. The options related to the shape are exact for Shape Type: Rectangle, but are approximate for other shapes. The default is Center.

The Farther Left and Farther Right options are useful when the Shape Type points left or right.

Shape Width
specifies the width of the shape (in Drawing Coordinates). Shape Width will be the actual width if Shape Type is Rectangle, but many other shapes are somewhat larger. If the text has to be wider than the Shape Width setting specifies, the shape will be drawn as wide as necessary to accommodate the text. If Shape Width is set to ".", the shape will be slightly wider than the text (auto-sizing, with no automatic word-wrap). The default is "." (default value), but it may be any value greater than or equal to 0.
Shape Height
specifies the height of the shape (in Drawing Coordinates). Shape Height will be the actual height if Shape Type is Rectangle, but many other shapes are somewhat larger. If the text has to be taller than the Shape Height setting specifies, the shape will be drawn as tall as necessary to accommodate the text. If Shape Height is set to ".", the shape will be slightly taller than the text (auto-sizing). The default is "." (indicating auto-sizing), but it may be any value greater than or equal to 0.
Shape Border
specifies the relative size of the border around the text, within the shape. The default is 1. [Added in 6.100.]
Shape Angle
specifies the angle for the shape (in floating-point, counter-clockwise degrees). This is usually 0, but may be any value.
Shape Shadow
specifies the shadow type for the shape. Shadows are always colored gray. The offset of the shadow is determined by the Text Height. There are options for single shadows and triple shadows (implying several instances). The default is (none).


Menu Tree / Index    

Edit : Graph Array

The Edit : Graph Array dialog box helps you change the size, shape, and position of the graphs in the graph array (a 2D array of graph objects).

The button on the left edge of the screen with the black graph array symbol and the light blue 'E' is a shortcut to Edit : Graph Array.

The Graph Array isn't a separate object, but rather a convenient way of working with a 2D array of graph objects. There is only one Graph Array per drawing.

This dialog box does not let you change the datafile or the datafile columns assigned to the rows and columns of the array. If you want to make changes like these, use Create : Graph Array again.

The Red Graph Outlines - as you make changes to the attributes on this dialog box, CoPlot draws (in red) the outlines of the graphs that will result if you press Apply.

The options on Edit : Graph Array are a subset of the options on the Create : Graph Array dialog box. The settings on this dialog box are stored in the drawing's .draw file. The options are:

Center X, Y
specifies the center for the entire graph array. You can use the left mouse button to drag the block that appears on the screen at the center of the graph array. Or, you can enter the X, Y values (in Drawing Coordinates).
X, Y Axis Size
specifies the length of the graph's X and Y axes (in Drawing Coordinates). All graphs in the array will be the same size. This works by setting each graph's Graph : Overview : X Axis Size and Y Axis Size.
Between Columns, Rows
specifies the distance (in Drawing Coordinates) between the centers of the columns and the centers of the rows.
Apply
creates the graph array as described by the settings above.
Edit the Graphs
takes you to the Edit : Graph dialog box, with all of the graphs in the graph array picked (so you can edit them simultaneously).
Undo All
resets all of the settings and changes all of the graph array's graphs to be as they were when you opened this dialog box.
Close
closes this dialog box. The current settings are remembered by the program (until another drawing is opened) and in this drawing's .draw file for the next time this dialog box is opened for this drawing.


Menu Tree / Index    

Edit : Image

The Edit : Image dialog box lists the attributes of image objects so that you can modify the appearance of the images.

Does the .draw file store the image? No. CoPlot's drawing files just remember the name of the image file, they don't store the image data. So if you want to email a .draw file which references an image, you need to email the .draw file and the image file. A list of files used by the current drawing can be found at Drawing : List Of Files.

When CoPlot loads a drawing, it looks in the specified directory for the image file. If the file is not found, CoPlot also automatically looks in the same directory as the .draw file.

Smaller Sizes - When images are drawn smaller than their original size, CoPlot uses an area averaging algorithm to minimize the loss of information and make the result look better.

Problem: Big Vector Files - When you use File : Save As to save a drawing in some other type of file, images will be saved in the file along with the rest of the drawing objects. Unfortunately, if the file type is a vector type (for example, .eps, .pdf, .wmf, .wpg, .cgm, .svg, .hpgl), the image will be stored as a series of lines in a verbose format. Thus, the resulting files will have the image data and will be able to display it nicely, but they will be very large files.

Editing Image Attributes - There are several ways to get to the dialog box that lets you edit the attributes of an image:

Icons - An image object can refer to an image in an image file somewhere on your hard drive (for example, a .gif file), or it can refer to an icon. Icons are small images that are stored in groups in files called Icons*.gif in the same directory as other CoHort program files.

The options on the dialog box are:

File Name
specifies the name of the file with the image. Currently, CoPlot can display images from .gif, .jpg, .jpeg, .pcx, .png, and .ppm files, and icons from CoPlot's icon collection (referred to by name, for example, Icons:Science:21).
Browse
The browse button lets you browse through lists of specific types of image files: Icons, *.gif, *.jpg, *.jpeg, *.pcx, *.png, and *.ppm files. The Icons option brings up a visual system for picking icons. If you pick one of the icons, it puts the icon's name (for example, Icons:Science:21) in the File Name field in the Edit : Image dialog box, so that the icon will be displayed (not an image from a separate image file).
Center X,Y
specifies the center of one of the picked images. If you change Center X,Y by dragging the block on the screen or by changing the x,y values, all of the picked image objects will be moved by the same relative amount.
Size
specifies the size (width) of the image (in Drawing Coordinates). The size can be less than or greater than 0. A size of 0 is useful when you want to keep an image object but not draw the image (just like setting a Text object's Color to notDrawn). A negative size causes the image to be drawn flipped in the x direction. A negative size, possibly combined with Angle: 180, is useful for flipping the image in all possible ways.

The height of the image will vary, depending on the ratio of the image's height (in pixels) and the image's width (in pixels). It is assumed that each pixel is square (in rare cases, this isn't true).

Angle
specifies the angle of rotation for the image (in floating-point, counter-clockwise degrees). The default is 0 degrees.
Crop Margins - Left, Right, Top, Bottom
specify the margins to be removed from the original image (in pixels) in order to crop the image. This lets you show any rectangular portion of the image. For example, if you want to remove the top 10 pixels from the image, set Top to 10.
NotDrawn Color
specifies a color in the image which you want CoPlot to not draw. This is useful if you have an image with a single background color, and you want CoPlot not to draw that color, thereby making the image partially transparent. If the NotDrawn Color is the color called notDrawn, no color will be not drawn.
Negative Colors
This changes all of the colors in the image to their opposite, as if this were a photographic negative. For example, white becomes black, light gray becomes dark gray, red becomes cyan, green becomes magenta, blue becomes yellow, and vice versa. Mostly, this is useful for gray scale images where you want to reverse the gray scale.
Palette Colors Only
changes colors in the image to the nearest palette colors. This is very useful when you are saving a drawing in a .gif file (which is limited to 256 colors).
Contrast
lets you increase or decrease the contrast in the image. Decreasing the contrast works by pulling each of the red, green, and blue color components of each pixel toward an intermediate value. Increasing the contrast does the opposite.
Brightness
lets you increase or decrease the brightness of the image. Increasing the brightness works by increasing each of the red, green, and blue color components of each pixel. Decreasing the brightness does the opposite.
Background Color
specifies the color for the background of the image. If this is set to notDrawn, the background won't be drawn. The background color will only be visible if part of the image is transparent.
Line Color
specifies the color for the line around the image. If this is set to notDrawn, the line won't be drawn.
Line Width
specifies the width of the line around the image (in Drawing Coordinates). If the Line Width is 0, the line won't be drawn.
Image
specifies the group number for the picked image objects.

The various attributes which affect the colors of the image are applied to the image in the order that the attributes are listed in the dialog box. For example, Contrast is done before Brightness.

Buttons - There are several buttons at the bottom of the dialog box which let you pick additional image objects, move, copy or delete the picked objects, and hide and show the picked objects. See Edit : Any Type.


Menu Tree / Index    

Edit : Path

There are several ways to get to the dialog box that lets you edit the attributes of a path:

A path is basically a series of points and a set of attributes describing how the path should be drawn. The attributes allow paths to be drawn many ways (for example, as lines, curved lines, curved lines with arrows, a series of markers, filled areas).

path.gif

There are three types of attributes on the dialog box:

1) Path Type
determines how the perimeter of the path is drawn (for example, with straight line segments connecting the points, with curved lines called "splines" connecting the points, or treating the points as Bezier control and end points).
2) The various Color attributes
determine if a given component of the path (the Background, Fill, Line, or Marker) is to be drawn. For example, if Line Color is black, a black line will be drawn along the path. But if Line Color is set to notDrawn, no line will be drawn.
3) The component's attributes
specify the details of how that component is to be drawn (provided the color for that component is not notDrawn). For example, Line Type, Line Dashsize and Line Width determine how the line will be drawn, if Line Color is not notDrawn).

Important: If a component color (for example, Line Color) is notDrawn, none of the component's other attributes (for example, Line Width) will be stored. Conclusion: first set the component color to something other than notDrawn, then set the other attributes. For example, first set Line Color to red4, then set Line Width to 0.1, not vice versa.

The options on the Edit : Path dialog box are:

Path Type
determines how the perimeter of the path is drawn:
Background Color
specifies the solid color to be used in the background of the object. If this is set to notDrawn, the background won't be drawn.
Fill Color
specifies the color for the fill pattern (a hatch pattern or bit-mapped pattern). If this is set to notDrawn, the fill pattern won't be drawn and none of the other Fill attributes will be stored.
Fill Type
specifies a hatch pattern (a combination of horizontal, vertical, and diagonal lines) or a bit-mapped pattern. The bit-mapped patterns are only scaled to a limited number of sizes (integer multiples of the original pattern), so don't be surprised if a small change to Fill Size has no effect.
Fill Size
specifies the distance (in Drawing Coordinates) between lines in the hatch patterns or the unit size of bit-mapped patterns.
Fill Linewidth
specifies the linewidth (in Drawing Coordinates) used to draw the hatch patterns.
Line Color
specifies the color for the line around the perimeter of the path. If this is set to notDrawn, the line won't be drawn and none of the other Line attributes will be stored.
Line Type
specifies the dash-space pattern which is used repeatedly when the line is drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint). Disjoint is unusual in that it draws a line between points 1 and 2, 3 and 4, 5 and 6, etc., but not between points 2 and 3, 4 and 5, 6 and 7, etc.
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the line (in Drawing Coordinates).
Arrow Type Start, Finish
specifies the type of arrowhead (notDrawn, Fancy, Filled or Line) for the start and the finish of the path. The color of the arrow heads is the line color. So if Line Color is set to notDrawn, the arrowheads won't be drawn.
Arrow Headsize
specifies the length (in Drawing Coordinates) along one edge of the arrowhead.
Arrow Angle
specifies the angle (in degrees, 0 - 360) of the arrow head.
Marker Color
specifies the color for the line around the perimeter of the path. If this is set to notDrawn, the markers won't be drawn and none of the other Marker attributes will be stored.

The menu option called Drawing : Other : Draw lines through markers determines whether lines are drawn through markers or if there is a gap.

Marker Background
specifies the background color for the markers. For the Marker font, the hollow parts of hollow markers are filled with this color. For all other fonts, a small square is drawn behind each marker with this color. [Added in version 6.100.]
Marker Type
specifies which character in which font (see Drawing : Load Fonts) will be used for the markers.
Marker Size
specifies the basic marker size (the height in Drawing Coordinates of a full-sized marker).
Group
specifies the group number for the picked path objects.

Buttons - There are several buttons at the bottom of the dialog box which let you pick additional path objects, move, copy or delete the picked objects, insert or delete points, and hide and show the picked objects. See Edit : Any Type.

Bezier Paths

When the Path Type for a path object is set to Bezier, the points are interpreted as a series of Bezier segments. (Most CoPlot users will never need to use this option.) For each segment, there is a beginning point, 2 control points, and an endpoint. The endpoint of one segment is the beginning point of the next segment. When CoPlot draws a segment, it starts at the beginning point, travelling in the direction of the 1st control point. As it gets closer to the 1st control point, it starts veering off toward the second control point. As it gets closer to the 2nd control point, it veers off toward the endpoint. Finally, the segment ends at the endpoint. You can think of the control points as pulling the line segment in their direction.

Here is a diagram of Bezier end points and control points:

bez2.gif

To draw a straight line segment in the middle of a Bezier Path object, just put the 2 control points in line with the beginning and end points.

Editing Bezier Path Objects - While it is hard to create the exact curve that you want when you first draw a Bezier object, it is very easy to edit afterwards. Use Edit : Points Move or Edit : Path : Move One Point to move (by dragging) the control points and endpoints. As mentioned above, it helps to think of the control points as pulling the line segment in their direction.

Inserting And Removing Points From Bezier Path Objects - You can use Edit : Points : Insert and Delete to let you insert and remove points from a Bezier Path object. Because of the unique meanings (as control points or endpoints) of the points that define a Bezier Path object, you should generally insert (or remove) 3 points (2 control points and 1 endpoint) into (or from) Bezier Path objects at a time.

Relation to splines - Bezier Path objects can be rotated arbitrarily with no effect on the shape of the object. Because of this desirable property, CoPlot uses Bezier lines and filled areas internally to draw spline lines and spline filled areas. To draw a spline Path object, CoPlot calculates where the Bezier control points should be; then draws the Bezier curve. Splines are easier for you to create, but Bezier Path objects give you absolute control over the shape of the object.


Menu Tree / Index    

Edit : Text

There are several ways to get to the dialog box that lets you edit the attributes of a text object: Text objects are actually text drawn within shapes (for example, rectangles, triangles, circles), although you can draw the text alone (the default), or the shape alone. The size of the shape is (usually) automatically adjusted to accommodate the text. The size of the shape's features (for example, the size of the arcs at the corners of a rounded rectangle) is determined by the Text Height, even if no text is displayed. A shape's minimum height and width are determined by the Text Height and the Shape Border, even if no text is displayed.

Text objects have many attributes which you can change in order to make the text objects look like you want them to look. The text can include embedded text tags (which control bold, italics, underlining, font changes, size changes, etc) (see the '<>' button) and character entities (HTML-like names for accented characters, Greek characters, and mathematical symbols) (see the '&' button).

What is the difference between Text and Big Text? Text objects are intended to be for one line (or maybe a few short lines) of text. When you edit a text object, all editing is done in a small, one-line, text field. Big Text is intended to be for large blocks of text. When you edit a Big Text object, a text editor screen appears. Otherwise, they are identical.

The options on the dialog box are:

Text Color
specifies which color will be used initially for the text. If this is set to notDrawn, the text won't be drawn.
Text
specifies the characters to be written. The text is only visible if the Text Color is not notDrawn.

The '&' button lets you pick and insert character entities (HTML-like names for non-ASCII characters) into the text.

The '<>' button lets you insert embedded text tags (which control bold, italics, underlining, font changes, size changes, etc).

Text Font
specifies which font slot will be used initially for the text (see Drawing : Load Fonts).
Text Height
specifies the initial height of a capital letter (in Drawing Coordinates).
Text Position
specifies the position for the text within the shape (if the shape is larger than necessary for the text). The horizontal component also specifies whether the text is initially left justified, centered, or right justified. The default is Center center.
Background Color
specifies the solid color to be used in the background of the shape. If this is set to notDrawn, the background won't be drawn.
Line Color
specifies the color for the line around the perimeter of the shape. If this is set to notDrawn, the line won't be drawn and none of the other Line attributes will be stored.
Line Type
specifies the dash-space pattern which is used repeatedly when the line is drawn. At the end of the line type list are line types that are not dash-space patterns (for example, Parallel, Railroad, Disjoint). Disjoint is unusual in that it draws a line between points 1 and 2, 3 and 4, 5 and 6, etc., but not between points 2 and 3, 4 and 5, 6 and 7, etc.
Line Dashsize
specifies the size (in Drawing Coordinates) of the dashes and spaces that make up the line types. For non dash-space line types, it specifies the size of the dominant feature (for example, the distance between the parallel lines).
Line Width
specifies the width of the line (in Drawing Coordinates).
Shape Type
specifies the type of shape which is drawn around the text. The default is Rectangle. The shape is only visible if the Background Color or Line Color is not notDrawn.

Most of the shapes have a rectangular area inside them in which the text is drawn. For a few shapes, the rectangular area is constrained to be a square (for example, Shape Type: Square). For some shapes, the shape is drawn above the text rectangle (for example, Shape Type: Fax, Person, Printer).

Shape V Align
specifies the vertical alignment of the shape, relative to the object's location point. There are Shape V Align options related to the shape and options related to the text. The options related to the shape are exact for Shape Type: Rectangle, but are approximate for other shapes. The default is Shape Center.

The Above 1 and Below 1 options are useful with the Shape Type: Rectangle, point xxx options. The Below 3 option is useful with the Shape Type: Cloud, point down and Cloud 2, point down options.

Shape H Align
specifies the horizontal alignment of the shape, relative to the object's location point. There are Shape H Align options related to the shape and options related to the text. The options related to the shape are exact for Shape Type: Rectangle, but are approximate for other shapes. The default is Center.

The Farther Left and Farther Right options are useful when the Shape Type points left or right.

Shape Width
specifies the width of the shape (in Drawing Coordinates). Shape Width will be the actual width if Shape Type is Rectangle, but many other shapes are somewhat larger. If the text has to be wider than the Shape Width setting specifies, the shape will be drawn as wide as necessary to accommodate the text. If Shape Width is set to ".", the shape will be slightly wider than the text (auto-sizing, with no automatic word-wrap). The default is ".", but it may be any value greater than or equal to 0.
Shape Height
specifies the height of the shape (in Drawing Coordinates). Shape Height will be the actual height if Shape Type is Rectangle, but many other shapes are somewhat larger. If the text has to be taller than the Shape Height setting specifies, the shape will be drawn as tall as necessary to accommodate the text. If Shape Height is set to ".", the shape will be slightly taller than the text (auto-sizing). The default is "." (indicating auto-sizing), but it may be any value greater than or equal to 0.
Shape Border
specifies the relative size of the border around the text, within the shape. The default is 1. [Added in 6.100.]
Shape Angle
specifies the angle for the shape (in floating-point, counter-clockwise degrees). This is usually 0, but may be any value.
Shape Shadow
specifies the shadow type for the shape. Shadows are always colored gray. The offset of the shadow is determined by the Text Height. There are options for single shadows and triple shadows. The default is (none).
Group
specifies the group number for the picked text objects.

Buttons - There are several buttons at the bottom of the dialog box which let you pick additional text objects, move, copy or delete the picked objects, and hide and show the picked objects. See Edit : Any Type.

Uses of Shapes Around Text - In addition to their use as simple comments, drawing shapes around text is the basic tool of many types of charts, maps, and diagrams, including: block diagrams, flow charts, organization charts, quality control charts, and UML diagrams.

Hints for Drawing Charts:

Block Diagrams - Block diagrams are used to visually describe processes in many different fields. See Hints for Drawing Charts.

Flow Charts - Flow charts are used to visually describe the flow of information or materials in many different fields. See Hints for Drawing Charts.

CoPlot includes all of the shape types defined in ANSI/ISO 5807-1985, the United States and international standard for "Documentation Symbols and Conventions for Data, Program and System Flowcharts, Program Network Charts and System Resources Charts" (www.ansi.org). Here are the data symbols defined in the standard and their text shape counterparts in CoPlot:

Many people move beyond the standard shapes and use additional shapes to more clearly describe different objects in flow charts.

Here is a sample flow chart:

flow.gif

Organization Charts - indicates an organization's structure, specifically the relationships between all of the positions in the organization. See Hints for Drawing Charts.

Here is a sample organization chart:

orgchart.gif

Quality Control Charts - many types of charts are use for quality control purposes, including Cause and Effect Diagrams, Goal/QPC Research, Hoshin Planning, and charts used for Total Quality Management.

UML Diagrams - Unified Modeling Language diagrams indicate the relationships of classes (data and procedures) in an object-oriented computer program. See Hints for Drawing Charts.

UML was created by Rational Software (www.rational.com). CoPlot includes all of the shape types used in UML diagrams. Here are the data symbols defined by Rational and their text shape counterparts in CoPlot:


Menu Tree / Index    

Edit : Objects

Edit : Objects lets you quickly move, copy, or delete individual objects. The options are:
Move    
lets you drag an object (with the left mouse button) to its new location. This doesn't support scaling or rotating the object as it is moved (see the Move option in Edit : Any Type). Or, if you click on an object with the right mouse button, you can edit its attributes (like Edit : Pick One).

Hint for Aligning Objects - Use the 'Grid +' toolbar button to get a fairly coarse grid (for example, 0.1 inches or 0.5 cm). Then use Edit : Objects : Move (or any of the other 'Move' options elsewhere in the program) to move the objects into alignment. With a coarse grid, you can get objects in perfect alignment even if you just do it visually (without looking at the coordinates).

Copy    
lets you copy an object by dragging the object (with the left mouse button) to the new location. This doesn't support scaling or rotating the object as it is copied (see the Copy option in Edit : Any Type).
Delete    
lets you delete an object by clicking on it. When you pick objects to be deleted with this dialog box, the objects are temporarily erased. When you close this dialog box, the objects are actually deleted. The Redraw button in the dialog redraws all of the objects in the drawing, except the ones you intend to delete. The Redraw button in the main window redraws all of the objects (even the ones you intend to delete).
Hide    
lets you pick an object and put it at the beginning of the list of objects. Whenever the screen is redrawn, that object will be drawn first and perhaps be partially hidden when subsequent objects are drawn.
Show    
lets you pick an object and put it at the end of the list of objects. Whenever the screen is redrawn, that object will be drawn last so that it will not be even partially hidden.


Menu Tree / Index      

Edit : Points Move

Edit : Points Move lets you move individual points (the points you specified when you created the objects) by dragging them to their new location. After dragging a point, you can move it more by typing a newer X,Y position or by using the + and - buttons. Or, you can move another point.

There is an Undo button to undo the changes, one by one. One unusual feature is that each time you move a different point, two undo events (not just one) are generated. This is useful, because if you then press Undo once, the point is returned to its original position so you can use the + and - buttons to move it.

Hint for Aligning Objects - Use the 'Grid +' toolbar button to get a fairly coarse grid (for example, 0.1 inches or 0.5 cm). Then use Edit : Points Move (or any of the other 'Move' options elsewhere in the program) to move the objects into alignment. With a coarse grid, you can get objects in perfect alignment even if you just do it visually (without looking at the coordinates).


Menu Tree / Index        

Edit : Points Boxed Move

Edit : Points Boxed Move lets you mark a box (by dragging the corners) and an arrow (by dragging the base and the tip) and move all of the points in the box by the amount specified by the arrow. This is particularly useful for moving sections of a drawing.


Menu Tree / Index    

Edit : Change Color

This lets you specify an Old Color and a New Color. When you press OK, the procedure changes all objects with the old color so that they use the new color. For example, you could change all red4 objects into orange4 objects. This is not an on-the-fly change; it actually changes all of the relevant color attributes in all of the relevant objects.


Menu Tree / Index    

Edit : Exchange Black And White

This lets you change everything that is black into white, and vice versa (including the background color). This can be useful when right before making slides, since it is common to use a black (or other dark color) background and a white foreground; whereas most people use a white background and black (and other colors) for the foreground on the screen and when printing. This is not an on-the-fly change; it actually changes all of the relevant color attributes in all of the relevant objects.


Menu Tree / Index  

Drawing

The options on the Drawing menu apply to all of the objects in the current drawing. All of these settings are saved when you save the drawing in a .draw file.

These are preferences which apply to the current drawing, as opposed to the preferences on the Screen menu (which apply to the program and all drawings).

The options on the Drawing menu are:


Menu Tree / Index    

Drawing : Background Color

This sets the background color (a specific color, or notDrawn) for the drawing. See Colors. This setting is saved in the .draw drawing file.


Menu Tree / Index    

Drawing : Coordinates

This lets you set up the drawing coordinate system (the minimum and maximum values of the units you work with on your drawing). It also connects the drawing coordinates to physical coordinates (for the screen and the printer) via a Scale factor (drawing coordinate units per inch, or per cm).

Overview - The drawing area is a rectangular box. You can specify any coordinate system you want for the drawing area; the default is inches. The coordinate system is always based at the lower left of the drawing, with x,y values increasing to the right and up. The coordinate system is always isotropic (a unit along the X axis is as long as a unit along the Y axis). The coordinate information is saved in the .draw drawing file.

On the screen and when printing or saving to a graphics file, the Scale setting converts the drawing's user-defined coordinates into the actual physical size. For example, you might set up a drawing with X Bounds coordinates of 0 to 10 miles and set the Scale so that "2 miles" on the drawing becomes 1 physical inch on the screen or printer.

When you print a drawing or save it to some types of vector graphics files (for example, PostScript eps, Acrobat pdf, and HPGL/2 B&W and Color), the drawing area is positioned on the page based on the Page Width, Page Height, Left Margin, and Bottom Margin settings.

Little Boxes - When this dialog box is open, CoPlot draws little boxes at the sides of the drawing area (see X,Y Min,Max Bounds) and at the lower left of the drawing area (see Left, Bottom Margin). You can drag the boxes to change the corresponding values in the dialog box.

Landscape Printing - If the Page Width value is greater than the Page Height value, the drawing will be printed in landscape orientation.

Zoom - Before using the options on this dialog box, it is often useful to click on the 'Zoom -' toolbar button a few times so that you get an overview of the page and the drawing area.

The options in the dialog box are:

Units Name
is the name of the units that you want to work with: inches, feet, miles, cm, km, pixels -- whatever. The default is the generic name: "drawing units".
Common Names
lets you pick a Units Name from a list of common, standard unit names.
X Min,Max Bounds (units)    
specifies the minimum and maximum X values that you want to work with. These are used to set up the scroll bars and to clip the drawing when it is printed (portions of objects outside this range will not be drawn). The defaults are X Min=0 and X Max=8 units. These can be changed on an existing drawing (to expand or contract the range you want to work with) without affecting the size and position of existing objects.

Alternatively, you can drag the tiny boxes on the edges of the drawing area to resize the drawing area. This is a graphical way of changing the X,Y Min,Max values.

Y Min,Max Bounds (units)
specifies the minimum and maximum Y values that you want to work with. These are used to set up the scrollbars and to clip the drawing (portions of objects outside this range will not be drawn). The defaults are Y Min=0 and Y Max=10.5 units. These can be changed on an existing drawing (to expand or contract the range you want to work with) without affecting the size and position of existing objects.

Alternatively, you can drag the tiny boxes on the edges of the drawing area to resize the drawing area. This is a graphical way of changing the X,Y Min,Max values.

Scale (units per inch)
sets the scale for the drawing so that scale units in drawing coordinates (for example, 10 feet) is scaled to 1 inch on the screen or a printer. In other words, this is the connection between the drawing coordinates you want to work with (inches, sixteenths of an inch, feet, miles, cm, km, pixels -- whatever) and the physical size on the screen and when printed. The default is 1 drawing unit per inch, but you can change it. An alternative to Scale is Scale (per cm), and changes here are mirrored there. Examples of common uses are:
Scale: 1, Units Name: inches
This makes a drawing where "1 inch" in drawing coordinates is scaled to 1 physical inch on the screen or when printed. Hence the drawing coordinates of objects matches the physical size of the objects.
Scale: 10, Units Name: feet
This makes a drawing where "10 feet" in drawing coordinates is scaled to 1 physical inch on the screen or when printed. Hence the drawing scale is 10 feet per inch.
Scale: 100, Units Name: pixels
This makes a drawing where "100 pixels" in drawing coordinates are scaled to 1 physical inch on the screen or when printed. 100 pixels per inch is useful because that is the number of pixels per inch for CoPlot's screen driver and when you use (see File : Save As : GIF or JPG.

Screen sizes vary and resolutions vary. CoPlot makes an assumption that there are 100 pixels per inch on your screen. This is pretty close for a 17 inch monitor with a resolution of 1024x768. At 1024x768, one default unit will appear slightly shorter than an inch on 14 and 15 inch monitors, and slightly longer on 21 inch monitors. Of course, on printers, an inch is an inch. The assumption of 100 pixels per inch has a secondary benefit: line widths and other sizes are very easy to specify (0.01 inches generates a one pixel wide line, 0.02 inches generates a two pixel wide line, etc).

Changing the Scale does not affect the drawing coordinates of objects. For example, if you drew a square that was 1 unit by 1 unit in size, changing the Scale does not change the coordinates of the square -- it is still 1 unit by 1 unit. But it does change the physical size of the square on the screen and when printed, since 1 unit is now scaled to a different number of inches on the screen or printer.

Zoom - The effect of the scale value is modified on-the-fly by the Drawing : Zoom factor. Whenever you print a drawing or use File : Save As, CoPlot temporarily sets the Zoom Factor to 1.

Scale (per cm)
sets the scale for the drawing so that scale units in drawing coordinates (for example, 10 meters) is scaled to 1 cm on the screen or printer. In other words, this is the connection between the drawing coordinates you want to work with (inches, feet, miles, cm, km -- whatever) and the physical size on the screen and when printed. The default is 0.3937007 drawing units per cm, but you can change it. For example, you could specify Scale: 10 and Units Name: meters to make a drawing where 10 meters in drawing coordinates is scaled to 1 cm on the screen or printer. This is an alternative to Scale (per inch) and changes here are mirrored there.
Display
when you are moving the cursor over the drawing, and the drawing coordinates are being displayed, this setting determines how the X,Y coordinates will be displayed: in User's Units (for example, "5.3 feet"), in inches (when printed), or in cm (when printed).
Resulting Size
Given the X Y Bounds and the drawing Scale, CoPlot can calculate the size of the drawing (in inches and cm) when printed.
Grid Size (units)  
You can specify the size of the grid used to position objects when you create or move them. The coordinates for the grid size are in whatever units you are working in (see Unit's Name). You can make the grid visible with Draw Grid below.

As you move the cursor to specify a position (for example, in Create : Path), you will see a '+' following the cursor. The cursor can be moved to any pixel on the screen, but the '+' will only move to points on the grid. When you mark a point when creating or moving an object, the point will be placed wherever the '+' is, not where the cursor is.

When you see the '+' cursor, you can move it with your mouse or the arrow keys on your keyboard. You can also press Home (like the left mouse button) or Esc (like the right mouse button). If you use the arrow keys and then move the mouse (even a tiny bit), the '+' will jump back to near the mouse's cursor.

In situations where the grid system is not active (for example when picking an object), the '+' isn't drawn.

Hint: We find that a fairly coarse Grid Size is useful (for example, 0.1 inches or 0.5 cm). This is small enough to give you flexibility in positioning objects, but big enough to easily align objects.

Hint: If you want the '+' cursor to move smoothly, not from grid point to grid point, change the Grid Size to a smaller number (for example, 0.001, or smaller, depending on your coordinate system). The resulting grid size will be so small the size of pixels on the screen will be the limiting factor in positioning objects.

Hint: You can quickly increase or decrease the Grid Size without opening up the Drawing : Coordinates dialog by using the Grid + and Grid - buttons on the toolbar. Because these buttons don't open a dialog box, they can be used at any time (for example, while using Create : Path).

Draw Grid
This checkbox determines if the grid (an array of dots with the spacing determined by the Grid Size ) should be drawn on the screen. Seeing the grid can help you line things up.

The grid dots are drawn with what computer programmers call 'xor' drawing mode, which essentially reverses the current colors on the screen wherever the dots are drawn. Thus, the dots are drawn with different colors depending on the color of the drawing underneath each dot.

If the Grid Size is so small that the dots are right next to each other, CoPlot will just draw lines. If the Grid Size is even smaller, so small that the lines would touch or almost touch each other, CoPlot will just draw lines at a multiple of the grid size. In either case, if CoPlot draws the grid with lines, you know the grid size is less than the pixel size.

Regardless of the setting here, the grid is never drawn when you print the image or when you use File : Save As to save the drawing in some other type of file. It is just intended to be a useful tool when you are working with the drawing on the screen.

The Drawing : Draw Grid menu checkbox is another way to set this setting. Since the menu checkbox doesn't require opening a dialog box, it is useful when you want to turn the grid on or off while another dialog box is open.

Page Width, Height (inches)
For printing and some File : Save As file types, this sets the page size, in inches. The default is 8.5 x 11 inches. Changes here are mirrored by Page Width, Height (cm). To print in landscape orientation, specify a Page Size where the Width is greater than the Height.

Print Preview - CoPlot doesn't have a File : Print Preview option. Instead, if you zoom out, the page is represented on the screen as a light gray area. Thus you can see what the drawing will look like when printed. One important difference: objects (or parts of objects) which are outside of the drawing area will be drawn on the screen but they won't be drawn when the drawing is printed. This is useful because it allows you to create objects entirely off of the drawing (for example, comments related to the history of the drawing).

Page Width, Height (cm)
For printing and some File : Save As file types, this sets the page size, in cm. This is an alternative to Page Width, Height (inches), and changes here are mirrored there.
Common Sizes
lets you pick and set Page Width and Page Height from a list of common, standard page sizes.
Left, Bottom Margins (inches)
This sets the position of the drawing area on the printed page by setting the left and bottom margins (the distance from the lower left corner of the paper to the lower left corner of the drawing, in inches). Most printers have an small border where they can't print (usually, about 0.25 inches all around the page); so you generally shouldn't set this to 0, or the edge of your drawing won't be printed. The default is 0.25 inches and 0.25 inches. Changes here are mirrored by Left, Bottom Margin (cm).

Alternatively, you can drag the tiny box at the bottom left corner of the drawing area to reposition the drawing area on the paper. This is a graphical way of changing the Left, Bottom Margins.

Left, Bottom Margins (cm)
This sets the left and bottom margins (in cm). This is an alternative to Left, Bottom Margins (inches), and changes here are mirrored there.
Center The Drawing
This tells the program to adjust the Left, Bottom Margins so that the drawing area is centered on the page.


Menu Tree / Index      

Drawing : Groups

Each object belongs to a group. Groups are numbered 0..65535. Drawing : Groups lets you choose which groups of objects are visible by specifying a list of visible groups (for example 0-3, 5 or All). You can use groups as if they were separate drawings (that is, layers) within one .draw file. Or, you can use groups as a way for CoPlot to 'remember' a group of picked objects (for example, for a component that is drawn with several objects that is part of a drawing) since it is easy to pick objects by their group number (see Pick Group on the Edit : Xxx dialog boxes).

Drawing : Groups also has buttons that let you use groups for animation (see Animation below). Animation is possible because CoPlot can show a series of groups very quickly.

Related information:

The options on the Drawing : Groups dialog box are:

Groups Visible
lets you choose which groups of objects are visible by specifying a comma-separated-value list of visible groups (for example 0-3, 5 or All). This lists can contain individual group numbers (for example, 5), and ranges of groups (two group numbers, separated by a dash, for example, 0-3). You can specify all groups by entering All.
Animation
Animation is possible because CoPlot can show a series of groups very quickly (groups 0 and 1, then groups 0 and 2, then groups 0 and 3, ... then groups 0 and the last active group). Group 0 is always shown so that you can use it for background objects (for example, the map of a farm) and then use the other groups (1, 2, 3,...) for the information which changes (for example, what was planted in the various fields each year). If you don't want any objects to be used as a background, just don't put any objects in group 0.

The buttons allow you to control the animation:

     

Saving the Animation - Currently, CoPlot does not have a way to save the animation in an MPEG-2 or Animated GIF file. MPEG-2 would probably not be a great solution, because it is a lossy format and would add imperfections to the images. Animated GIF files are a much better match because they are lossless (the images will be perfect copies of the originals). Also, animated GIFs can be viewed in any browser without a plug-in. If you want to make an animated GIF file now, save each image in a separate gif file (use File : Save As : GIF) then use an image-editing program to combine the separate gif files into one animated gif. We use and recommend "GIF Construction Set Professional", a $20 shareware program from Alchemy Mindworks Inc. (http://www.mindworkshop.com).

Frames Per Second  
specifies the maximum speed of the animation. The animation won't go any faster than this speed, but if the frames take a long time to draw, the animation will go slower.
Group For New Objects  
lets you specify the group number for new objects (on Create : Xxx dialogs). You can also set this on any of the Create : Xxx dialogs.


Menu Tree / Index      

Drawing : List Of Files

Drawing (.draw) files just store the names of data and image files used in the drawing. This dialog box shows a list of data and image files used by the current drawing.

Since the names of datafiles may change when the drawing is saved, you must save the drawing with the Save The Drawing button. Then, this dialog box shows you a list of the data files, image files, and the .draw file which are used by this drawing. If you press the Create Zip File button, CoPlot will compress and save these files in a .zip file. The zip file is a handy way to transmit the drawing and its associated files to your coworkers.

The zip file includes the directory names for the files. If you don't utilize the directory names when you unzip the file, CoPlot will still be able to find the data and image files because they will be in the same directory as the .draw file.

The Put On Clipboard button puts the list on the clipboard. This is especially useful if you want to put the list in a Text or Big Text object, so that the list of required files is printed on the drawing (or just beyond the printed part of the drawing). This is also useful if you want to transfer the list to a word processor, a text editor, or some other program.


Menu Tree / Index      

Drawing : Load Fonts

CoPlot has 15 slots to hold font families (each family can draw light, regular, bold, light italic, regular italic, and bold italic fonts). This dialog box lets you load different font families into the font slots. Any font can be loaded into any slot. It is recommended (but not essential) that you leave the first five (standard) fonts alone. The five standard fonts are 0:Helvet, 1:TmsRmn, 2:Cour, 3:Marker, 4:Greek.

The font selections are saved in the .draw drawing file.

All drawing objects that refer to fonts actually refer to a font slot number. Loading a different font into a font slot, will cause all objects which refer to that font slot to be drawn with the new font. For example, you can change all Helvet references into TmsRmn references! If an object refers to an empty font slot, the font in slot 0 is used.

Custom fonts from DOS CoDraw - The DOS version of CoDraw allowed users to create and edit fonts. The Java version of CoPlot uses the same file format for fonts, so you can still use any custom fonts that you created for the DOS CoDraw. To use the custom fonts, copy them to the cohort directory. Use Drawing : Load Fonts to load the fonts and make them available in the current drawing. Ideally, for each font family, you should have three .fnt files: name.fnt (the standard version, for example, helvet.fnt), name-l.fnt (a light-weight version, for example, helvet-l.fnt), and name-b.fnt (a bold version, for example, helvet-b.fnt). The name-l.fnt is usually drawn with just lines, since it is often substituted for the regular and bold fonts when they are drawn at small sizes on the screen.

In CoPlot, Font Sizes Are Specified in Drawing Coordinates, Not Points. In most programs, you specify the Font Size, in points (1/72"). In CoPlot, you specify the Text Height, in Drawing Coordinates. Here is why:

In CoPlot, the Drawing Coordinates may match the physical size (inches or centimeters) or they may not. Specifying the Text Height in points makes some sense for drawings where the Drawing Coordinates match the physical size, but not for other coordinate systems. For example, when people (in the U.S.) make field maps, they probably use feet as the basic unit (since that is how fields are usually measured) and make drawings with coordinates that range, for example, 0 - 5000 feet. In that case, a suitable Text Height might be 50 "feet". The program could always tie Text Height to the physical size. But then if you changed Drawing : Coordinates : Scale, it is unclear whether the Text Height should change proportionally or not. It would be trouble. When the Text Height is measured in Drawing Coordinates, it is obvious that the numerical value of Text Height should not change with changes to Drawing : Coordinates : Scale (just as other size values don't change).

Another problem arises with the use of symbols which are stored in fonts (like electrical symbols stored in the elec font). In this case, it is far more appropriate to specify the exact height of the symbol in drawing coordinates, not points.

Personally, we have also found points to be awkward to use. For a given point size, different font families produce characters of different heights -- a 12 point Times Roman character is significantly taller than a 12 point Courier character. And the height of a capital letter has nothing to do with a font's point size (as measured in 1/72") -- a capital letter in a 72 point font is not 1" high; it is much smaller. But in CoPlot, the height of a capital letter in any font will be exactly the size that you specify (in Drawing Coordinates).

Conversion Rule-of-Thumb - For most fonts, a capital letter in an n point font will be roughly n/100ths of an inch high. Thus, if your Drawing Coordinates are inches (the default), you can get a roughly 10 point font by specifying Text Height = 0.10.


Menu Tree / Index    

Drawing : Draw Grid

When Drawing : Draw Grid is checked, the grid (an array of dots with the spacing determined by the Grid Size ) is drawn on the screen. When it is not checked, the grid is not drawn.

Since this checkbox doesn't require opening a dialog box, it is useful when you want to turn the grid on or off while another dialog box is open.

This setting is an alias for Draw Grid on the Drawing : Coordinates dialog box.


Menu Tree / Index    

Drawing : Other

The Drawing : Other dialog box has several options related to the current drawing.

The settings are saved in the .draw drawing file. These settings do not apply to other drawing files, and will be changed when you load another .drawing file.

The options on the Drawing : Other dialog box are:

Author  
is a text string which identifies the author of the current drawing. This is used by some File : Save As options (notably eps, pdf, svg, and cgm), to identify the author of the drawing.

Traditionally, people just enter their name or company name here, but we recommend adding an email address or web site URL (for example, "John Smith jSmith@myCompany.com" or "My Company (www.myCompany.com)"). Because some programs display this information in a small text field, you should keep this entry pretty short.

Minimum Line Width  
sets the minimum line width (in Drawing Coordinates) for all of the lines in the drawing. Any object which has a Line Width or Fill Linewidth specified to be less than the width here will be drawn with the width here. The object's line width value is not changed, just temporarily over-ridden. The default is 0.006, which is a thin line.

This is useful when printing to high-resolution printers (for example, laser printers) or when using File : Save As to save to vector file types which are capable of drawing very narrow lines. It allows you to quickly ensure that all lines are at least the minimum width.

Draw Other Colors As
This lets you choose to draw colors that are neither black nor white as: Colors, Grays, or Black. This change is made on-the-fly, so the color attributes of the drawing objects are not changed. Images are not affected.
Try to use system fonts *
is a checkbox that instructs CoPlot to use the system fonts whenever possible. Currently, on the screen, when saving a drawing as an image file (for example, .ppm, .gif, .png, and .jpg), and when printing, CoPlot can use system fonts for standard characters (characters 32-127) if the font is Helvet, TmsRmn, or Courier. Currently, when saving as a PostScript-related file (for example, PostScript .eps and Adobe Acrobat .pdf), CoPlot can use PostScript fonts for standard characters (characters 32-127) if the font is Helvet, TmsRmn, Century or Courier. In any other situation, CoPlot always uses CoHort fonts. The '*' indicates that the default is "checked".

System fonts look slightly nicer than CoHort fonts on the screen and they take less time to transmit to files and printers.

Draw bold markers
When "checked", this draws markers with a bold font. The default is "not-checked".
Draw lines through markers
When "checked", lines connecting markers are drawn through the markers. When "not checked", lines connecting markers stop at the edges of the markers. When the lines are drawn through the markers, they can be drawn a little bit faster, but we don't think it looks as nice. Obviously, if the markers are solid-filled, this setting doesn't matter. The default is "not-checked".
Draw error bars through markers  
When "checked", the error bar lines are drawn through the markers in graph objects. When "not checked", lines connecting markers stop at the edges of the markers. When the error bar lines are drawn through the markers, they can be drawn a little bit faster, but we don't think it looks as nice. Obviously, if the markers are solid-filled, this setting doesn't matter. The default is "not-checked".
Draw caps on error bars *
When "checked", little horizontal lines are drawn at the ends of error bars in graph objects. When the lines are not drawn, error bars are drawn a little bit faster, but (except for stock charts) it isn't the standard way to draw error bars. The '*' indicates that the default is "checked".
Missing values make gaps *
When "checked", the program makes gaps in lines when plotting datasets on a graph whenever there is a missing value. If this is not checked, there will not be any gaps. The '*' indicates that the default is "checked".
Enable Undo All *  
When "checked", the program enables the Undo All button on many dialogs.

There are a few dialogs that use a different and faster system to prepare for Undo All. These dialogs (and dialogs that have Undo # buttons) are unaffected by this setting.

For large files (for example, files with more than 5000 objects), it may take a noticeable amount of time for CoPlot to set up the Undo All system when a dialog box is shown. For these files, you may wish to disable the Undo All system. The '*' indicates that the default is "checked".


Menu Tree / Index    

Drawing : Zoom Box

Zooming controls how much of the drawing you see on the screen. This dialog box controls all aspects of zooming. It also lets you specify a box on the drawing so you can zoom in on that box.

Zooming does not affect printing or File : Save As. It is as if the zoom factor were temporarily set to 1 during those operations. Remember that Drawing : Coordinates : Scale is the setting that relates drawing coordinates to the physical size of the drawing. Zooming can be thought of as a way of modifying Drawing : Coordinates : Scale in a temporary way while you are working with the drawing on screen.

The zoom information is not stored in the .draw file. Thus, drawings always load with the zoom factor set to 1.

Windows95/98/ME does a poor and erratic job of clipping when you are zoomed way in (for example, a Zoom Factor greater than 50). For this reason, you may see some odd things in these situations.

The Drawing : Zoom Box has these options:

X1, Y1, X2, Y2
You can zoom in on a specific section of the drawing by dragging the corners of the box (or by specifying X1, Y1, X2, Y2) and then clicking on OK.
OK
Zooms in on the specific section of the drawing specified by the box (or X1, Y1, X2, Y2).
Undo
Will undo the effects of the last time you pressed OK.
Zoom Factor
This lets you set the Zoom Factor directly. It affects how much of the drawing is visible on the screen. The zoom factor is a double value in the range of 0.015625 to 128. The default is 1.
Zoom In
   
This multiplies the zoom factor by 2. Only 1/4 as much of the drawing will be visible on the screen (1/2 in the X direction and 1/2 in the Y direction). The 'Zoom +' toolbar button is a shortcut for this.
Zoom Out    
This divides the zoom factor by 2. 4 times as much of the drawing will be visible on the screen (2x in the X direction and 2x in the Y direction). The 'Zoom -' toolbar button is a shortcut for this.
Zoom 1
This sets the Zoom Factor to 1.


Menu Tree / Index    

Drawing : Zoom 1

Drawing : Zoom 1 sets the zoom factor to 1. See Drawing : Zoom Box for more information.

It may seem redundant to have Zoom 1 on the Zoom Box dialog box and on the Drawing menu, but there is an important difference. The options on the Drawing menu can be accessed without opening the Zoom Box dialog box. Since CoPlot allows only one dialog box to be open at once, the options on the Drawing menu can be accessed while another dialog box is showing, whereas the options on the Zoom Box dialog box can't.


Menu Tree / Index  

Screen

The Screen menu has many options related to the screen and to CoPlot preferences in general (not just the current drawing).

These settings are saved in the CoPlot.pref preference file (see the CoStat Manual (costat.htm)). These settings apply to the program (not just the current drawing) and are not changed if you load a different drawing.

These are preferences which apply to the program and all drawings, as opposed to the preferences on the Drawing menu (which apply only to the current drawing).

The options on the Screen menu are:

Redraw  
redraws the drawing on the screen. When editing individual objects, CoPlot just redraws the objects you are working on. This may damage the on-screen appearance of other objects if they overlap. Using Screen : Redraw will redraw the entire drawing.

A note about all screen redraws - All screen redraws occur in a background thread (a computer process separate from the event-handling thread), so that control of the program always returns immediately to you while the redraw thread works in the background. If you then make another change that leads to another screen redraw, the previous redraw is cancelled (although the change to the drawing specification is always completed) and the new redraw begins.

Users can cancel the current redraw by left clicking on the status line. This will not affect the changes being made to the drawing specification. If a screen redraw takes a long time, you can peek at the screen redraw in progress by right clicking on the status line.

Automatic Redraw  
When checked, CoPlot redraws part or all of the drawing every time you make a change to the drawing. When not checked, changes to the drawing specification are still made, but the changes do not cause the screen image to be redrawn. The default is "checked".

It is useful to turn this off when you are working with a drawing that takes a long time to redraw. You can then use Screen : Redraw or the Redraw button to manually redraw the screen whenever you desire.

Dialogs Inside Main Window  
By default, Dialogs Inside Main Window is not checked and most dialog boxes will pop up to the right of the program's window, so that the dialog boxes don't obscure your drawing.

If you prefer to have the dialog boxes pop up on top of your drawing (just to the left of the vertical scrollbar), put a check by Dialogs Inside Main Window.

CoHort Software encourages people not to make CoPlot's main window full screen. When it is less than full screen, there is space to its right for the dialog boxes to appear and not obscure the drawing.

Fix MenuBar  
Sometimes the text of the items on the menu bar is garbled when you run the program. This is a known bug that we have been unable to completely fix. Choosing Screen : Fix MenuBar will un-garble the text. It may be hard to find Screen : Fix MenuBar when the menu bar text is garbled. But if you poke around, you will find it. In unusual cases, you may need to use it two or three times.
Font Size  
This lets you change the size of the system fonts used for menus, dialog boxes, the help line. This does not affect the size of any of the text used in the drawing.
Language  
This lets you choose the language used for most of the one-line help messages displayed on the main window's status line and for the text of the lessons on the Help menu.

We know that many of the translations are far from perfect. We will continue to work on improving the translations. We will also work toward translating all of the text in the program.

Path Aliases    
Because CoPlot stores the names of datafiles and image files in .draw files and not the actual data or images, if you move a .draw file to another computer, the references to the data and image files can become invalid. The Path Aliases system is an optional system which can solve this problem by giving names (called "Path Aliases", for example "2000Data::") to commonly used directories (called "Real Paths", for example "c:\users\bob\data\" on one computer, but "d:\mydata\" on another computer). When a .draw file is saved, data and image file names that start with a Real Path name (for example "c:\users\bob\data\") will be saved with a Path Alias (for example "2000Data::") instead. When the .draw file is opened on another computer, the data and image file names that start with a Path Alias (for example "2000Data::") will be changed so that they start with the new Real Path name (for example, "d:\mydata\").

The Suggest Real Paths button looks through the current drawing file and makes sure that all of the directories used by data and image files are listed in the Real Path column.

Details:

Alternative - When CoPlot loads a drawing which refers to a .dt or image file which should be in some other directory (but isn't), CoPlot also looks in the same directory as the .draw file. Thus, if you keep related .draw, .dt, and image files in the same directory, CoPlot will find them if you move them all to a different directory (even a different computer).

Show CoText    
This creates an instance of CoText, the text editor that is built into CoPlot, and displays it. Sometimes it is useful to have a text editor easily available. See CoText's Help menu for information on how to use CoText. This is a different instance of CoText than the one used by CoStat to capture statistical results, so you can edit one text file in CoPlot's copy of CoText and edit another text file in CoStat's copy of CoText.
Text-Only Buttons    
When this is checked, the buttons right below the main menu will show text only, not images and text.

When the buttons show text only, the font size will be slightly smaller that the font size specified with Screen : Font Size. When the buttons show images and text, the font size is fixed.

If CoPlot is not installed quite right (notably, if the XxxButton.gif files aren't present in the cohort directory), the buttons will appear text-only regardless of whether Screen : Text-Only Buttons is checked. See the download page at www.cohort.com.


Menu Tree / Index  

Macro

This menu has options related to recording, playing, and editing macros. Since macros work the same way in different CoHort programs, they are described in one place: see Using Macros and The Macro Language in the CoStat Manual (costat.htm).

The Macro and Help menu options behave slightly differently than other menu options:

Usually, only one dialog box can be visible.
For non-Macro and non-Help menu options, CoPlot allows only one dialog box (and its children) to be open at once. Thus, if you make a menu selection which opens a dialog box, CoPlot will automatically close a currently open dialog box. Similarly, only one Help dialog box can be open at once. But the Macro and Help dialog boxes are exempt from this and do not close other dialogs nor allow themselves to be closed.
Usually, user actions are recorded in macros.
For non-Macro and non-Help menu options, CoPlot records all user activity when recording a macro. But Macro and Help menu related activities are not recorded.


Menu Tree / Index  

Help

This menu has various help options:
Lesson 1,2,3,4,5,6    
The lessons are dialog boxes with information about how to use CoPlot.
Switching from DOS CoPlot to Java CoPlot
shows a dialog box with a lot of detailed information useful to people switching from the DOS programs. This manual has an even more useful version (because it has lots of hyperlinks): see Switching From DOS CoStat, CoPlot, and CoDraw
Quick: Plot your data on a graph      
Quick: Plot your data on a map    
These options show a dialog box with a brief description of how to plot your data on a graph or map.
Online  
shows a dialog box that says that the online help is in coplot.htm (this document).
Register  
shows a dialog box that lets you register your copy of the program by entering Your Name (first and last, for example, "John Smith") and your Registration Number (a large integer number). When you press the Am I registered? button, CoPlot will check if the information is valid. You can buy a license and get a registration number from CoHort Software. You can evaluate the program for a few weeks without registering. But if you don't register within a few weeks, the program will shut down when you close this dialog box.
View Error Log    
CoStat writes low level diagnostic messages and error messages to an ASCII text file called "error.log" in the cohort directory. If you select Help : View Error Log, you can view the file. These messages probably won't mean much to you, but they are useful to us at CoHort Software when debugging the programs and when trying to solve problems that you encounter. If the program freezes or crashes, the error log is often particularly valuable. We may ask you to email this file to us. Note that viewing the file with Help : View Error Log clears the file.
About  
displays information about:

The Macro and Help menu options behave slightly differently than other menu options:

Usually, only one dialog box can be visible.
For non-Macro and non-Help menu options, CoPlot allows only one dialog box (and its children) to be open at once. Thus, if you make a menu selection which opens a dialog box, CoPlot will automatically close a currently open dialog box. Similarly, only one Help dialog box can be open at once. But the Macro dialog boxes are exempt from this and do not close other dialogs nor allow themselves to be closed.
Usually, user actions are recorded in macros.
For non-Macro and non-Help menu options, CoPlot records all user activity when recording a macro. But Macro and Help menu related activities are not recorded.


Menu Tree / Index  

Speed

Normal Behavior

Abnormal Behavior

Things You Can Do To Speed Up CoPlot

Drawing : Coordinates : Draw Grid
Currently, drawing the grid is very slow. Make sure this setting is not checked.
Edit : Path : Type
Edit : Path : Type: Line draws much faster than Spline or Bezier.
Ellipse
Ellipse objects are drawn faster when Ellipse nSides is set to a smaller number. For small ellipses, you can often reduce Ellipse nSides without affecting the appearance of the ellipse. But remember that a larger value of Ellipse nSides is needed to make an ellipse look nice on a printer compared to on a screen.
Marker Type
Marker Types drawn with a few straight lines (for example, plus, square, triangle) draw much faster than Marker Types drawn with curved lines (for example, circles) or filled areas (for example, filled squares).
Graph : Dataset : Representation
Simple Graph : Dataset : Representations (for example, Line) are drawn much faster than more complex representations (for example, Spline or Marker). The comments about Marker Type (above) apply to Marker representations. Markers that are letters in standard fonts (like Helvet or TmsRmn) are drawn faster than markers in the Marker font.
Graph : Map
If your drawing has a graph has map layers, consider changing their Line, Background and Text Color to notDrawn temporarily. Map layers take a long time to draw.
Graph : Legend
Large legends are drawn very slowly. When animating graphs, consider setting the Edit : Graph : Legend : Color to notDrawn.
Datafiles with String data
Some procedures (notably, Edit : Sort) work much more slowly on datafiles with String data than datafiles with just numeric data. And any operations that access the String data are many times slower than operations with the numeric data. Never store numeric data as Strings (use CoStat's Edit : Format Columns : Simplify to store the data in a more efficient way).
Pick
When a drawing has a huge number of objects (>10,000?), Pick One will be somewhat slower than the other Pick options.
Screen : Automatic Redraw
If you are working with a drawing that takes a long time to redraw, set Screen : Automatic Redraw to 'not checked'. Then you can use the program quickly, since there won't be any redraws unless you specifically request them (via Screen : Redraw or the Redraw button).
Printing
Get more memory
Java Virtual Machines (the programs that run Java programs like CoStat) perform better when there is more physical memory in the computer. This is particularly true of Sun's "HotSpot" JVMs.
Get a better graphics card
The color depth of the graphics card in your computer can affect the speed of CoPlot. Usually, Java should run somewhat faster with graphics cards that run in a 24 or 32 bits per pixel mode (16.7 million colors) rather than an 8 or 16 bits per pixel mode (255 or 65536 colors).
Use a faster computer
We understand that buying a faster computer usually isn't an option. Maybe you can use someone else's faster computer when working with big files. This is facilitated by the fact that Java programs such as CoPlot can be run on many different kinds of computers and since all of CoPlot's files are platform independent.
Report the problem to CoHort Software
If some part of the program seems unreasonably slow, report it to CoHort Software. We may be able to rewrite the procedure to make it faster.


Menu Tree / Index  

Colors

Most objects in CoPlot let you set a color attribute by picking a color from a dialog box. The color dialog box has:

142 colors
white, black and 10 shades each for gray, red, orange, yellow, lawn, green, spring, cyan, sky, blue, purple, magenta, maroon, and brown. The shaded colors are named with the base color name (for example, blue) plus a digit 0 (almost white) - 9 (almost black). Shade 4 is always the pure color. For example, blue4 is pure blue. These color names appear in other dialog boxes. The current color name and number (in 0xRRGGBB hexadecimal notation) are always displayed below the color samples.
notDrawn (ND)  
which means "Not Drawn". Choose this is you don't want the object (or this part of the object) to be drawn.
mapDefault (MD)  
which means "Map Default". This is useful only for the Map parts of a Graph object. Since the map data files have default colors for the objects, choosing mapDefault lets you use those defaults. For any other situation, mapDefault is inappropriate and acts like notDrawn
Custom Color  
You can specify a custom color (a color not in the palette) by specifying the Red, Green, and Blue components (each is an integer, 0 - 255) of the color and then pressing the Apply button.

This allows you to specify any one of about 16.7 million colors.

In some place in the program, these colors will be described by their hexadecimal name which uses the format 0xRRGGBB (2 hexadecimal digits each for the red, green, and blue components).

Double Click - In the color dialog box, if you double click on a color, the color will be selected and the dialog box will be closed.

Color2.colorNames - Whenever you are entering a number, referring to a color in a <color=> embedded text command, or referring to a color in a .draw file, you can refer to a color name (preceded by "Color2.") instead of an integer. For example, <color=Color2.red4> is equivalent to <color=0xFF0000> (the format is 0xRRGGBB, where 2 hexadecimal digits each for the red, green, and blue components). Internally, color names are specified in a Java class called Color2.

Other methods related to colors:

Drawing : Background Color
lets you choose the background color for the drawing area for this drawing. The information is stored in the .draw file when you save the drawing. White or "notDrawn" are recommended, since you will often be printing to a white piece of paper. If you choose a color other than white and print to a color printer, it will use a lot of ink.
Drawing : Other : Draw Colors As
lets you choose how non-white and non-black colors will be drawn temporarily: as colors, as grays, or as black. This may be useful when printing a drawing with colors other than black and white on a black and white printer, although most printers convert the color information to gray-scale. This setting works on-the-fly; it affects the appearance of a drawing on the screen and when printing; it does not affect the color information that is associated with each drawing object.
Edit : Change Color
can change all references to a specific color to some other color. For example, you might change everything that uses red4 to red2.
Edit : Exchange Black and White
changes all references to white into references to black, and vice versa. This is useful when switching between a drawing prepared for printing (usually with a white background) and a drawing prepared for a slide maker (usually with a black or dark background).

On color printers the program tries to print colors on the printer that mimic the colors on the screen. Thus if you are printing onto a white piece of paper and you want some of the foreground objects to be drawn with black ink, you need to use those colors on the screen. If necessary, use Edit : Exchange Black and White.

Some printer drivers change non-black line or text colors into black. This is out of our control. If this causes a problem for you, try to get an alternative driver for your printer.

Color Perception Problems - Human perception of colors is not straightforward.

Color Production Problems - Different devices render the same color differently.

Color Matching - Because of color perception and color production problems, it may difficult to get exactly the color that you want. One thing you can do is use File : Open : GIF (.gif) to load the file called palette.gif in the cohort directory. Then use File : Print to print the resulting drawing. You can use the printout to try to adjust your monitor so that the screen and printer colors match as closely as possible. Also, you can use the printout as a reference for picking colors, so that you know ahead of time exactly how a given color will look when printed.

Internally, CoPlot stores the colors as 32 bit integers (256 levels each for the red, green, and blue components), which allows for about 16.7 million different colors. You can use any of these colors by specifying the Red, Green, and Blue components on the color dialog box. But there are advantages to sticking to the standard 122 colors:

Problems On 256 Color Graphics Cards - Many graphics cards (for example, using a screen resolution of 1024x768 on a 1MB video card) support only 256 colors. In this case, there is often an imperfect match between the colors specified by the program and the colors available on the screen. The operating system will display the closest available color. This leads to close but imperfect color samples on the screen. (On one of our computers, sky3 looks just like cyan3 and neither looks appropriate.) The color rendering will improve if you take the drawing to a computer which supports more than 256 colors, or print the drawing to a color printer which supports more than 256 colors.


Menu Tree / Index              

Embedded Text Tags

Whenever you are entering text that is part of a drawing object, you can insert HTML-like embedded text tags which control underlining, boldness, italics, different font sizes, etc. If you press the '<>' button to the right of a textfield, you can see a list of tags and pick one. It will be inserted in the text at the current insertion point. Or you can just type the tag. For some tags (for example, Color), you need to modify the tag slightly (for example, by specifying the name of the color that you want).

tags.gif

Details -

Non-standard tags or non-standard uses of tags in CoPlot are marked "[non-standard]" below. In general, CoHort has added two types of non-standard tags:

Low level physical tags
These let you specify low-level features. Standard HTML avoids this type of tag but it seems important to make them available since they are sometimes to only way to get some things done. Examples are <MARK>, <OV>, <RT>, and <UP>;.
Mathematical tags
These are for formatting mathematical equations. Examples are <ATOP>, <EXPAND>, <OVER>, <INT>, <SQRT>, <SUBSUP>, and <UNDEROVER>.

After we created these, the W3 organization proposed MathML, a math extension to HTML. It seems to be very complete, but quite complex, and more geared toward computer processing of the information than to the initial creation of equations by humans.

Not supported tags - Some commonly used HTML tags are not supported: <H1> - <H6>, <PRE>, and the standard <FONT> tag attributes for text color, face, and size (which are replaced by the <COLOR=>, <FONT=>, and <SIZE=> tags since we use different parameters).

Embedding Tags Within Tags - In almost all cases, it is okay to embed tags within tags (for example, <tt><b>This is TT and Bold.</b></tt>). In fact, it is allowed to a greater extend that standard HTML. The exceptions center around the use of <atop> and similar tags that draw text on two lines because CoPlot currently does not adjust for the extended vertical boundary. For example, <sqrt><atop1>over<atop2>under<atop3></sqrt> currently does not work properly.

Non-ASCII Characters - You can get non-ASCII characters by using character entities (HTML-like names for unusual characters). For example, '&Aacute;' is drawn as 'Á'. There are character entities for accented characters, Greek characters, mathematical symbols, and other symbols. There is often an '&' button to the right of the textfield which will show you lists of character entities.

Common Error Messages - If CoPlot doesn't recognize an embedded text tag or if the syntax of the tag is nor correct, it may do one of two things:

Why HTML? HTML is a very widely used, cross-platform, standard method for formatting text. We considered other embedded text systems, but rejected them:

Here are the supported tags and examples:

<ARCDIMENSION units format>  
(in ellipse objects only) inserts the angle defined by the ellipse. 'units' may be: 'format' may be: Examples: <ARCDIMENSION d g> (degrees general), <ARCDIMENSION r 4> (radians 4 decimal places), <ARCDIMENSION p f> (pi fraction).
<ATOP1> <ATOP2> <ATOP3>
let you put some text over other text. [non-standard]
<B>  
increases the current font weight setting. '</B>' decreases it.
<BAR>  
turns on the printing of a line over subsequent lower case letters. </BAR> turns it off. [non-standard]
<BIG>  
really means bigger. </BIG> really means smaller (by an amount inverse to <BIG>).
<BR>    
causes a break (starts a new paragraph) with no gap between paragraphs. There is no </BR>.

An alternate form of this tag is <BR=double>, where double specifies the line spacing for this line break (as a number to be multiplied by the normal single spacing). For example, <BR=1.5> will generate a line spacing halfway between single and double spacing. [non-standard]

<CENTER>  
causes subsequent lines of text to be centered. It also acts like <BR> if there is any text on the current line. This tag only works when the text object's hAlign is left and when <LINELENGTH=double> has been defined. There is a </CENTER> tag. But unlike in HTML, it is not required.

The intended use of this tag is with CoPlot's Text and Big Text objects. For these objects, CoPlot internally uses H Align: Left and automatically defines the LineLength. For text in other situations (for example, a graph's title), use the H Align setting instead.

<CITE>
turns on italics. </CITE> turns italics off.
<CODE>
turns on Monospaced font. </CODE> returns to the previous font.
<COLOR=int>  
lets you change the current text color. [non-standard]
<!-- Comment -->  
Comments are not printed. There may be other tags within comments.
<DATE>  
inserts the current date. [non-standard]
<DIMENSION format>  
(in Dimension objects only) inserts the distance between the two points in Drawing Coordinates. 'format' may be: For example, <DIMENSION g>.
<DRAWINGNAME>    
inserts the current drawing name (no directory or extension). [non-standard]
<EM>  
(emphasize) turns on italics. </EM> turns italics off.
<EXPAND=double value>
changes the current height of the characters relative to the current height but leaves them with the same centerY. [non-standard]
<FLIP>    
rotates the character 180 degrees about its center. </FLIP> turns it off. [non-standard]
<FONT=fontname>  
lets you change the current font. </FONT> returns you to the previously loaded font. [non-standard]
<FRAC1> <FRAC2> <FRAC3>  
lets you create a fraction: some text over some other text with a line in between (like OVER, but compressed in size). [non-standard]
<FULLDRAWINGNAME>  
inserts the current drawing name (with the directory and extension). [non-standard]
<HR>    
starts a new paragraph and puts a horizontal rule (a line) between the paragraphs. There is no </HR>.
<HR2>
starts a new paragraph and puts a double horizontal rule (two lines) between the paragraphs. There is no </HR2>. [non-standard]
<HRLS>
starts a new paragraph and puts a horizontal rule (a line) between paragraphs, with very little space (hence "LS") above and below the line. There is no </HRLS>. [non-standard]
<HRLS2>
starts a new paragraph and puts a double horizontal rule (two lines) between paragraphs, with very little space (hence "LS") above and below the lines. There is no </HRLS2>. [non-standard]
<I>  
turns on italics. </I> turns italics off.
<INT1> <INT2> <INT3>  
let you define an integral. [non-standard]
<KBD>  
(keyboard-style font) turns on Monospaced font. </KBD> returns to the previous font.
<LEFT>  
causes subsequent lines of text to be left justified. It also acts like <BR> if there is any text on the current line. There is a </LEFT> tag, but it is not required. [non-standard]

The intended use of this tag is with CoPlot's text and Big Text objects. For these objects, CoPlot internally uses H Align: Left and automatically defines the LineLength. For text in other situations (for example, a graph's title), use the H Align setting instead.

<LeftMargin=double>    
moves the left margin to the right by double*textHeight. Any text on the current line is printed. 'double' may be positive or negative, but there will be problems if the net change moves the left margin to the left of the original left margin. [non-standard]
<LegendBackground exampleSize=1 bColor=Color2.blue1 up=0>      
LegendBackground draws a filled rectangle with the specified attributes. All of the parameters must be present and must use the format specified above. This is useful for creating a legend entry. 'up' shifts the sample upwards but intentionally doesn't influence the line's y bounds. [non-standard]
<LegendFill exampleSize=1 lColor=Color2.blue4 lType=0 lDashsize=.02 lWidth=.003 bColor=Color2.blue1 fColor=Color2.blue4 fType=1 fSize=.1 fLinewidth=.003 up=0>
LegendFill draws a filled rectangle with the specified attributes. All of the parameters must be present and must use the format specified above. This is useful for creating a legend entry in a custom legend. 'up' shifts the sample upwards but intentionally doesn't influence the line's y bounds. [non-standard]
<LegendLine exampleSize=1 lColor=Color2.blue4 lType=0 lDashsize=.02 lWidth=.003>
LegendLine draws a centered line with the specified attributes. All of the parameters must be present and must use the format specified above. This is useful for creating a legend entry in a custom legend. [non-standard]
<LegendMarker exampleSize=1 lColor=Color2.blue4 lType=0 lDashsize=.02 lWidth=.003 mColor=Color2.blue4 mFont=3 mType=52 mSize=.1 mBackground=Color2.notDrawn up=0>
LegendMarker draws 1 (or 2 markers with a connecting line if lColor!=Color2.notDrawn) with the specified attributes. All of the parameters must be present and must use the format specified above. This is useful for creating a legend entry in a custom legend. [non-standard] [mBackground and up, optional but strongly recommended, were added in version 6.100.]
<LegendVector exampleSize=1 lColor=Color2.blue4 lWidth=0.003>
LegendVector draws a vector with the specified attributes. All of the parameters must be present and must use the format specified above. This is useful for creating a legend entry in a custom legend. [non-standard]
<LegendWhiskers exampleSize=1 width=0.1 bColor=Color2.notDrawn lColor=Color2.blue4 lWidth=.003 caps=1>
LegendWhiskers draws a box and whiskers symbol with the specified attributes. All of the parameters must be present and must use the format specified above. This is useful for creating a legend entry in a custom legend. [non-standard] [bColor, optional but strongly recommended, was added in version 6.100.]
<LegendWindbarb exampleSize=1 lColor=Color2.blue4 lWidth=0.003>
LegendWindbarb draws a windbarb with the specified attributes. All of the parameters must be present and must use the format specified above. This is useful for creating a legend entry in a custom legend. [non-standard]
<LINELENGTH=double>  
specifies the linelength (in drawing units) used to determine when a line is so long that it needs to be broken. The initial value is infinity, so lines won't be broken unless you use this tag. The value can be a positive decimal amount. [non-standard]
<LI>  
identifies the start of the next item in the current list. Use this after <OL> or <UL>.
<MARK>
marks the current point. </MARK> makes the last MARKed point the current point. [non-standard]
<OL>    
starts an ordered list. Lists can be embedded in other lists. </OL> ends the current list.
<OV>  
turns on Overstriking of subsequent characters. </OV> turns it off. [non-standard]
<OVER1> <OVER2> <OVER3>  
lets you put some text over other text with a line in between. The size of the text is the current text size. [non-standard]
<OVERLINE>  
turns on the printing of a line over subsequent text. </OVERLINE> turns it off. [non-standard]
<P>  
starts a new paragraph and puts a blank line between paragraphs. </P> is allowed but ignored.
<RT=double value>        
moves the current position some distance to the right along the baseline. There is no LT (left) tag; use the RT tag with a negative value. [non-standard]
<RIGHT>  
causes subsequent lines of text to be right justified. It also acts like <BR> if there is any text on the current line. There is a </RIGHT> tag, but it is not required. [non-standard]

The intended use of this tag is with CoPlot's text and Big Text objects. For these objects, CoPlot internally uses H Align: Left and automatically defines the LineLength. For text in other situations (for example, a graph's title), use the H Align setting instead.

<SCALE>  
inserts the current drawing scale (based on inches) (for example, "1 inch = 10 miles". See Drawing : Coordinates. [non-standard]
<SCALECM>
inserts the current drawing scale (based on cm) (for example, "1 cm = 10 km". See Drawing : Coordinates. [non-standard]
<SIZE=double value>      
changes the current height of the characters relative to the current height. [non-standard]
<SMALL>  
really means smaller. </SMALL> really means bigger (by an amount inverse to <SMALL>).
<SQRT>  
is like <OVERLINE>, but adds the square root symbol at the beginning.
<STRIKE>  
turns on the strikingout of subsequent text (a centered horizontal line). </STRIKE> turns it off.
<STRONG>  
increases the current font weight setting. </STRONG> decreases it.
<SUB>  
means subscript (smaller and lower). Use </SUB> to undo it (not <SUP>, since <SUP> will give you a superscript on the subscripted text). <SUB>, </SUB>, <SUP>, </SUP> should be used in matched pairs, but can be embedded. (Undo them in reverse order or there's trouble!)
<SUBSUP1> <SUBSUP2> <SUBSUP3>  
let you append a subscript and a superscript simultaneously. [non-standard]
<SUP>  
means superscript (higher and smaller). Use </SUP> to undo it (not <SUB>, since <SUB> will give you a subscript on the superscripted text). <SUB>, </SUB>, <SUP>, </SUP> should be used in matched pairs, but can be embedded. (Undo them in reverse order or there's trouble!)
<TIME>  
inserts the current time. [non-standard]
<TT>  
(teletype-style font) turns on Monospaced font. </TT> returns to the previous font.
<U>  
turns on underlining. </U> turns it off.
<UL>    
starts an unordered list. Lists can be embedded in other lists. </UL> ends the current list.
<UNDEROVER1> <UNDEROVER2> <UNDEROVER3> <UNDEROVER4>    
lets put small text above and below the enlarged main text. For example, when used with &Sigma;, this is useful for making the mathematical notation for a sum of a series of terms. [non-standard]
<UP=double value>    
moves the current position some distance upward from the baseline. There is no Down tag; use a negative value with the Up tag. [non-standard]


Menu Tree / Index                                        

Character Entities

Whenever you are entering a text that is part of a drawing object, you can insert a non-ASCII character or character entity by using the & button (which brings up a special character insertion dialog box) or by just typing a character entity. A character entity is just an ASCII name for the character. Character entities always begin with an '&' and end with ';' to distinguish them from the surrounding regular text. For example, the entity named '&Aacute;' is drawn as 'Á'.

The character insertion dialog box lets you pick from among several groups of characters (accented characters in Latin 1, Greek characters, mathematical symbols, etc.) When you click on one of the characters or its name, the character's name is inserted in the text at the current insertion point. If you double click, the character's name is inserted and the character insertion dialog box is closed.

entities.gif

Details -

Accented Characters - Many languages use accented characters. All of the standard accented characters (the ones in Unicode), can be picked from the screens that are shown when you press on the '&' button.

But you can also create any accented character (even ones not in Unicode) by typing the entity's name in the form: '&' + letter + accentName + ';'. For example, '&Aacute;' is drawn as 'Á'. Here are the accent names you can use:

This system works for any character+accent combination. The accents which are over letters are smart enough to raise themselves for capital letters versus short letters. For accents on top of i and j, this system is smart enough to remove the dots. If you want the dotless i or j alone, use '&inodot;' and '&jnodot;'.

Details for Character Entity Categories -

ASCII symbols
These are the most common characters. These correspond to characters #32 to #127 as defined by ASCII and the ISO 8859-1 Character Encoding. Usually, you will just type these characters, but some characters have special names. Notably, you should use the character entity names '&amp;' (because '&' signifies the start of a character entity) and '&lt;' (because '<' signifies the start of an embedded text tag). These are HTML and SGML standard names.
Greek
The SGML-standard entity names for most Greek characters are the names of the characters, for example '&alpha;'. In cases where the letter is not different in appearance from the Latin letter, the SGML standard is in the form '&Agr;' (which can be pronounced as "A Greek"). In these cases, CoHort has also named aliases which use the Greek name (for example, '&Alpha;') for consistency (if there is an '&alpha;' there should be an '&Alpha;') and to match the TeX names.
Electric
These are CoHort-only entities for electrical symbols.

You can make many electrical symbols by creating two text objects at the same position: one with '&enclosure;' (from the Elec font) and one with a smaller (1/2 the height) standard letter. This makes an encircled letter. For example, an encircled 'A' is the symbol for an ammeter. Other commonly encircled letters are 'M' (motor), 'V' (voltmeter, and 'G' (generator).

Interiors
These are CoHort-only entities for interior design symbols. The numbers that are part of many entity names are sizes in inches of the longest dimension. Common abbreviations are: 'rec'=rectangular, 'rnd'=round, 'sqr'=square, 'ovl'=oval.
Landscape
These are CoHort-only entities for landscape design symbols.
Latin 1
These are the most commonly used accented characters and some other common characters. These correspond to characters #160 to #255 as defined by the ISO 8859-1 Character Encoding. The names are standard HTML and SGML names.
Latin A
These are infrequently used accented characters. The names are from SGML.
Latin B
These are infrequently used accented characters. The names are from SGML.
Map symbols
These are CoHort-only entities for characters commonly found on maps.
Markers
The names of the markers are mostly SGML standard names (which are difficult to read), but some are CoHort names in the same style. Common abbreviations are: For example '&rtrif;' is a triangle ('tri'), pointing right ('r'), and filled ('f').
Mathematical symbols
These SGML standard names often match the TeX names.
Punctuation
These are SGML standard names for punctuation symbols.
Weather symbols
These are CoHort-only entities for standard weather map symbols. Common abbreviations are: 's'=slight, 'm'=moderate, 'h'=heavy, 'i'=intermediate, 'c'=continuous, 'f'=freezing, 'v'=violent, 'GB'=getting better in last hour, 'GW'=getting worse in last hour, 'Sh'=Shower, 'Th'=Thunder, 'NTO'=Not at Time of Observation, 'Sky'=Sky visible, 'NoSky'=sky not visible.


Menu Tree / Index        

The Drawing (.draw) File Format

CoPlot stores drawings in ASCII text files (with the extension .draw) using a simple graphics language. The graphics language has procedures for creating objects and specifying their attributes. Like drawings, drawing files are device independent. CoPlot has facilities to create and edit drawing files and to print the drawings to screens, printers, and graphics files. Because they are ASCII files, drawing files can also be created or edited with any text editor or word processor.
               
Because they are ASCII files, you can also easily write programs (using BASIC, C, C++, Java, Pascal, Perl, Python, Rexx, Tcl, etc.) that create drawing files. You can then use CoPlot for interactive editing and printing of the drawings. This is an extremely powerful feature: Let's say you have a program that generates data that you would like to plot on a special type of graph. Modify the program so that it generates a drawing file that describes how to plot the data. Once you have the drawing file, you can use CoPlot to edit it, annotate it, and print it. This is an easy way to get access to the power of CoPlot with minimal changes to existing programs.

We don't expect that very many people will sit down and write .draw files by hand (by reading the specification below) or even write computer programs (by hand) to write .draw files, although you can. Instead, we encourage you to use CoPlot to generate a .draw file and then use that .draw file as a basis for your program. Looking at .draw files generated by CoPlot is also a good way to figure out the details of the .draw specification if you don't understand some part of it.

Relation to Java Programs, Batch Files, Shell Scripts, Pipes, Perl, Python, Rexx, and Tcl - By bypassing the graphical front end of CoPlot, you can convert graphics files from one type to another; you can print graphics files; or you can use any of the commands in .draw files in your own Java programs, batch files, shell scripts, Perl programs, Python programs, Rexx programs, and Tcl programs. See Java Programs, Batch Files, Shell Scripts, Pipes, Perl, Python, Rexx, and Tcl. Knowing the commands in the .draw files (as described below) is essential to this type of work.

CoPlot's graphics system vs. PostScript, Java2D, and SVG

PostScript, Java2D, and SVG are related standards for computer graphics. They are great. Unfortunately, they lack many important features for scientific graphs and technical drawings (sub and superscripts and other embedded text commands, markers, lines between markers, splines, arrows, etc.). So we built our own graphics system (NPS, which is not PostScript, but similar to it) to make the additional features an integral part of the graphics system. Also, when we created CoPlot's graphics system (mid-1996), Java2D and SVG were not available or even announced. CoPlot now uses Java2D for low level graphics services. Currently, you can create SVG files from CoPlot with 'File : Save As : SVG'. It is unclear if CoPlot will be able to import SVG files in the future.

Since part of CoPlot's job is to maintain a list of graphics objects (and their attributes), the procedures used in .draw files are an interface to a Java class called Drawing, not an interface to NPS. The Drawing class maintains the list of graphics objects and has procedures to redraw the image and save it in a .draw file or some other type of graphics file.

Relation to attributes in CoPlot and the methods in our Java code

The attribute names and data types which are used in drawing files are almost identical to the attribute names and data types used in CoPlot and in the underlying Java code. In fact, the syntax of drawing files was chosen specifically so that drawing files could be easily converted to/from Java code.

Design goals  

The names of the procedures in a drawing file and their syntax, were designed with the following goals in mind:

Format of commands  

Our system balances these various goals. The system borrows from several existing systems in the world of computers.

  1. Syntax - The syntax is very much like that of a C, C++, or Java program. Procedure names are followed by parameters which are surrounded by parentheses and separated by commas. A semicolon immediately follows each procedure. For example, create("path", "2,1,2,2");. Spaces and carriage returns between parts of a command (except between the command name and the opening parenthesis) are ignored.
  2. Separate procedures - Instead of a few big procedures to specify all of the attributes of an object (for example, specifying all of the attributes of a line), the various attributes are specified by a series of separate procedures (lineColor, lineWidth, etc.). This makes it easy to add new attributes in the future. It also makes the files more compact, since only the attributes that change need to be in the file.
  3. Character entities - let you put all types of accented characters and Greek characters in text strings using only ASCII characters.

    CoPlot also allows ISO 8859-1 characters #128..#255. If you use them, the files will have 8 bit characters and may have problems with some 7-bit email systems. But, there don't seem to be any 7-bit email systems any more.

Data Types  

Each of the procedures in the drawing files requires a series of parameters. The parameters must be of an appropriate type (integer, double, string, etc.) to convey the desired information. Drawing files use common types of values.

boolean
Booleans values are either true or false.
int
An integer value ranging from -2 billion to 2 billion. In practice, most integer values have a narrower range of acceptable values. If the drawing file has a floating point number when an integer is called for, CoPlot will automatically round the number and won't generate an error message.
color
A color may be a standard Color2.name (for example, Color2.green4) (see Colors) or a color number. A color name which is not recognized is treated as Color2.black. A color number is a 24 bit rgb value in hexadecimal (for example, 0x00FF00) or base 10 (for example, 12596) notation. Actually, colors are the same as int's, since you can use Color names in place of int's in many places in CoHort programs (see Entering Numeric Values in the CoStat Manual (costat.htm)), but it is easier to understand the descriptions below if we label color parameters separately from int parameters.
double
A double precision floating point number (i.e., a number with an optional decimal point and optional exponent). The numbers may be in the common computer form of scientific notation, for example, 0.0012 can be represented as 1.2E-3. (The 'E' need not be capitalized.) A missing value can be represented by a period.
string
Text strings are specified according to the C, C++, and Java conventions. Strings are a series of characters with double quotation marks at the beginning and end. (The quotation marks are removed when the drawing file is read.) Strings can have any number of characters.

Special characters (double quotation marks and backslash) within a string must be preceded by a backslash. Here is an example with double quotes: "He said, \"No\".". Here is an example with backslashes: "In Windows, the file name is C:\\cohort6\\CoPlot.class.". This is awkward to read, but necessary.

If you want to write a long string on more than one line, you can use a double quote mark (to temporarily close the string), a plus sign, and then a double quotation mark on the next line (to reopen the string), for example,
  "Pretend this is "+
  "a long line."

booleanList
This indicates a series of boolean values stored as comma-separated-values in a string. For example, "false, false, true, false". If two or more successive values are the same, you can replace them with int*value, for example "2*false, true, false".
intList
This indicates a series of int's stored as comma-separated-values in a string. For example, "0, 0, 2, 200". If two or more successive values are the same, you can replace them with int*value, for example "2*0, 2, 200".
colorList
This indicates a series of colors stored as comma-separated-values in a string. For example, "Color2.green4, Color2.green4, Color2.white, Color2.black, 0xFFEA02". If two or more successive values are the same, you can replace them with int*value, for example "2*Color2.green4, Color2.white, Color2.black, 0xFFEA02".
doubleList
This indicates a series of doubles stored as comma-separated-values in a string. A common use of a doubleList is to store a series of points: one or more x,y pairs. For example, 3 points could be specified as "0, 0, 1.7, 1.3, 0, 2.1" (the order is x1, y1, x2, y2, x3, y3). Points are always specified in Drawing : Coordinates. If two or more successive values are the same, you can replace them with int*value, for example "2*0, 1.7, 1.3, 0, 2.1".
stringList
This indicates a series of strings stored as comma-separated-values in a string. Each individual string is stored with double quotes around it. For example, 4 axis titles could be stored as "\"X\", \"Y\", \"Z\", \"T\"". If two or more successive values are the same, you can replace them with int*value, for example "2*\"My Title\", \"Z\", \"T\"".

Although .draw files generated by the program always have double quotes around each individual string, you really only need to have double quotes if the string has leading or trailing spaces (that you want to keep), a comma, or a double quote.

Coordinate Systems and Units  

As in CoPlot, all coordinates and sizes in drawing files are specified in Drawing : Coordinates.

Error Checking  

CoPlot tries to check for all possible errors. For most errors, CoPlot abandons the current procedure and jumps forward to the next procedure in the drawing file. Errors include unrecognized procedure names, invalid parameter types, invalid syntax (i.e., improper use of parenthesis, commas, semicolons) and invalid numbers of parameters. CoPlot saves and displays the message for the first error that it finds.

Overview of a drawing file  

Files contain procedures (which define the coordinate system and describe the objects and their attributes). Optionally, files may also contain comments.

The procedures can be broken down into these groups:

  1. 'CoPlot.drawVersion(versionNumber);' This must be the first procedure in the file. It identifies the file as a CoPlot drawing file and identifies the file type version number (which changes to match the CoPlot version whenever the drawing file definition changes). The number for the drawing file version is currently 6.100.

    If a file with a previous version number is encountered, CoPlot will properly interpret the information.

  2. Optional Drawing Menu Procedures - correspond to options on CoPlot's Drawing menu and apply to the whole drawing (for example, set the coordinate system, grid size, fonts, minimum line width, etc.). If any or all of these procedures are missing, CoPlot uses the relevant default values.
  3. Datafile Procedures - correspond to options on CoPlot's Datafile menu and let you load data.
  4. Attribute and Object Procedures - describe the attributes and create the objects that make up the drawing. These procedures make up the bulk of the file.
  5. 'endOfFile();' This must be the last procedure in the file. It identifies the end of the file.

Files can contain comments. You can store comments in text objects, using the embedded text command for comments within the character string (for example, setCharacters("Main text.<!-- This is a comment -->");. These comments will be visible in the relevant textfields in dialog boxes, but they will not be visible on the drawing, and will not be lost when you load and then save the file. Files can't contain comments in the C/C++/Java backslash-star style (for example, \*a comment*\) or the slash-slash style (for example, //a comment).

"Deprecated" - Note that some methods below are marked "Deprecated". This means that they were once valid commands but their use is now strongly discouraged. In most cases, a newer version of the method is suggested.

Optional Drawing Menu Procedures

After the CoPlot.drawVersion() command, drawing files may have any of several procedures which apply to the whole drawing (for example, to set the coordinate system, grid size, fonts, etc.). These procedures correspond to the options on the Drawing menu in CoPlot. If any or all of these procedures are missing, CoPlot uses the relevant default values.

setDrawingBackgroundColor(color);
The default color is Color2.white. See Drawing : Background Color.
setFont(int slot, string name);
The default fonts are 0:Helvet, 1:TmsRmn, 2:Cour, 3:Marker, 4:Greek. See Drawing : Load Fonts.
setUnitsName(string);
The default is "inches". See Drawing : Coordinates.
setXBounds(double, double);
The default is xMin=0, xMax=8 Drawing Coordinate units.
setYBounds(double, double);
The default is yMin=0, yMax=10.5 Drawing Coordinate units.
setScale(double);
The default is 1 unit per inch. See Drawing : Coordinates.
setScaleCM(double);
The default is 2.54 units per inch. (Internally, this calls setScale(double/2.54).) See Drawing : Coordinates.
setDisplayUnits(int);
The default is 0 (use the user's units name). See Drawing : Coordinates.
setGridSize(double);
The default is 0.01 Drawing Coordinate units.
setPageWidth(double);
The default is 8.5 inches. See Drawing : Coordinates.
setPageWidthCM(double);
This is an alternative to setPageWidth() which uses centimeters. See Drawing : Coordinates.
setPageHeight(double);
The default is 11 inches. See Drawing : Coordinates.
setPageHeightCM(double);
This is an alternative to setPageHeight() which uses centimeters. See Drawing : Coordinates.
setLeftMargin(double);
The default is 0.25 inches. See Drawing : Coordinates.
setLeftMarginCM(double);
This is an alternative to setLeftMargin() which uses centimeters. See Drawing : Coordinates.
setBottomMargin(double);
The default is 0.25 inches. See Drawing : Coordinates.
setBottomMarginCM(double);
This is an alternative to setBottomMargin() which uses centimeters. See Drawing : Coordinates.
setVisibleGroups(String);
See Drawing : Groups.
setGroupForNewObjects(int);
See Drawing : Groups.
setGroupsFramesPerSecond(double);
See Drawing : Groups.
setGraphSpinFramesPerSecond(double);
See Edit : Graph : Overview.
setGraphAxisFramesPerSecond(double);
See Edit : Graph : Axis : Center.
setDatasetFramesPerSecond(double);
See Edit : Graph : Dataset.
setAuthor(String);
This identifies the author of the drawing. The default is "". See Drawing : Other.
setMinimumLineWidth(double);
The default is 0.006 inches (not Drawing Coordinates). See Drawing : Other.
setDrawColorsAs(int);
The default is 0. Valid values are: 0=as colors, 1=as grays, 2=as black. See Drawing : Other.
setUseSystemFonts(boolean);
The default is true. See Drawing : Other.
setDrawBoldMarkers(boolean);
The default is false. See Drawing : Other.
setDrawLinesThroughMarkers(boolean);
The default is false (put a gap in the line where the markers are). See Drawing : Other.
setDrawErrorBarsThroughMarkers(boolean);
The default is false. See Drawing : Other.
setDrawCapsOnErrorBars(boolean);
The default is true. See Drawing : Other.
setIgnoreMissingValues(boolean); [deprecated]
The default is false. See Drawing : Other. [As of version 5.920, this is deprecated. Use setMissingValuesMakeGaps() instead.]
setMissingValuesMakeGaps(boolean);
The default is true. See Drawing : Other. [Added in version 5.920.]

Datafile Procedures  

Loading data into a Datafile slot
The openDatafile command corresponds to using Datafile : x : File : Open in CoPlot. For details, see Datafile. When CoPlot saves a drawing in a .draw file, this is the command it uses to record which datafiles are in use. [Added in version 5.913.]

CoPlot automatically converts \'s in datafile names to /'s when the .draw file is saved. When .draw files are opened, /'s are converted to \'s if appropriate for the current operating system. [Added in version 5.918.]
 

openDatafile(int slot, int fileType, int mode, String fileDirectory, String fileName, int simplify, int headerLength, String fileStructure);
where:
slot
is the datafile slot number (1-15).
fileType
is the type of file: 0=columnar, 1=comma, 2=tab, 3=space, 4=binary, 5=dt, 6=dbase, 7=excel, 8=lotus1, 9=lotus3, 10=microstat, 11=mstat, 12=quattro.
mode
is 0=replace current data, 1=append to the right, 2=append below. Usually, you will use mode 0.
fileDirectory
is the file directory.
fileName
is the file name.
simplify
specifies how much to simplify the column data types: 0=don't, 1=aggressive.
headerLength
For binary files, this specifies the number of bytes to ignore at the beginning of the file. For ASCII files, this specifies the number of lines to ignore at the beginning of the file.
fileStructure
For binary file types, this specifies what information is in each record.
datafile.xxx commands
If you are writing your own .draw files and want to store the data directly in the .draw files, you can use the following datafile commands. They are an alternative to the standard way to read data into a drawing (see openDatafile above to read data from an existing data file). When CoPlot saves a drawing in a .draw file, it never stores the data in this manner. Also, unless you use Datafile : x : File : Save As, the data loaded with these commands will not be saved in a data file. So this approach to loading data is useful only for a one time use of the data (for example, when creating a graph with a batch file or shell script).

Here are the datafile.xxx commands (presented in the order they should be used). Rows and columns are numbered 1..n. [All of these commands were introduced in 5.913.]
 

createDatafile(int slot);
This creates an empty datafile (0 columns and 0 rows) in the specified slot (1-15). You should call this before using any of the datafile.xxx() commands.
datafile.insertRows(int where, int howMany);
You should call this just once per datafile. For example, use datafile.insertRows(1, 100); to make 100 rows.
datafile.insertColumn(int where, String type, String name);
You must call this once per column, starting with column 1 and proceeding to the last column.
  • where is the column number (1..).
  • type is: 'b'=boolean, 'B'=Byte, 's'=short, 'i'=int, 'l'=long, 'f'=float, 'd'=double, 'c'=char, 'S'=String.
  • name is the name for the column (usually 9 or fewer characters, but may be any length).
datafile.setRow(int row, stringList csvData);
sets all of the data for one row, given comma-separated-values stored in a string. Call this once for every row of data. The data will be automatically converted from a string to the appropriate data type. This is an alternative to setString() and setCol().
datafile.setCol(int col, stringList csvData);
sets all of the data for one column, given comma-separated-values stored in a string. Call this once for every column of data. The data will be automatically converted from a string to the appropriate data type. This is an alternative to setString() and setRow(), but is faster.
datafile.setString(int col, int row, string value);
sets one data value in the current datafile. Call this once for each cell in the data table. The data will be automatically converted from a string to the appropriate data type. This is an alternative to setRow() and setCol(), but is slower.

Attribute and Object Procedures  

The bulk of a drawing file consists of the procedures related to setting attributes and creating objects. The attributes exactly match the attributes on the Edit : xxx menus; see Edit : Big Text, Edit : Dimension, Edit : Ellipse, Edit : Graph, Edit : Image, Edit : Path, and Edit : Text.

When creating an object in a drawing file, the order of procedures is backwards from the order you use in CoPlot. In a drawing file, you specify the attributes first, then create the object. For subsequent objects of the same type, you need not specify every attribute; just specify the attributes that have changed. For example, you might:

  1. Set all of the line attributes (width, color, type, and dash size).
  2. Create 5 lines with those attributes.
  3. Change the line color.
  4. Create 2 more lines.
This is not true for graph attributes, which don't carry over from one graph to the next.

Different types of objects use different groups of attributes.

Big Text Objects
use Shape, Background, Line, Text, and Characters drawing attribute procedures.
Dimension Objects
use Line, Arrow, Text, and Characters drawing attribute procedures.
Ellipse Objects
use Fill, Line, Arrow, Ellipse, Text, and Characters drawing attribute procedures.
Graph Objects
use the Characters procedure to specify the optional graph name.
Image Objects
use the Characters procedures to specify the file name.
Path Objects
use Fill, Line, Arrow, Marker, and PathType drawing attribute procedures.
Text Objects
use Shape, Background, Line, Text, and Characters drawing attribute procedures.

For the Fill, Line, Marker, and Text groups of attributes, if the related color attribute is Color2.notDrawn, the other attributes in that group are ignored and not stored. Similarly, for the Arrow groups of attributes, if the arrowTypeStart is notDrawn and the arrowTypeFinish is notDrawn, the other attributes in that group are ignored and not stored. For example, if lineColor is Color2.notDrawn, the lineWidth setting will not be saved. This saves a tremendous amount of space in the drawing list.

Attributes for Primitive Drawing Objects

The Group Attribute
setGroup(int);
This is used for all drawing objects (not just primitives).
Background Attributes
setBackgroundColor(color);
The default color is Color2.notDrawn.
Fill Attributes
setFillColor(color);
The default color is Color2.notDrawn.
setFillType(int);
The default fill type is 1 (horizontal lines).
setFillSize(double);
The default is 0.1 Drawing Coordinate units.
setFillLinewidth(double);
The default is 0.003 Drawing Coordinate units.
Line Attributes
setLineColor(color);
The default color is Color2.black.
setLineType(int);
The default line type is 0 (a solid line).
setLineDashsize(double);
The default is 0.02 Drawing Coordinate units.
setLineWidth(double);
The default is 0.003 Drawing Coordinate units.
Arrow Attributes
setArrowTypeStart(int);
setArrowTypeFinish(int);
Valid values are: 0=(notDrawn), 1=Fancy, 2=Filled, 3=Line. The default for both is 0 (notDrawn). [Added in version 5.913.]
setArrowHeadsize(double);
The default is 0.1 Drawing Coordinate units.
setArrowAngle(int);
The default is 30 degrees.
setArrowColor(color); [deprecated]
The default color is Color2.black. [As of version 5.913, this is deprecated. Use setLineColor() and/or setArrowTypeStart(0) and setArrowTypeFinish(0) instead.]
setArrowType(int); [deprecated]
Valid values are: 0=Fancy at initial point, 1=Fancy at final point, 2=Fancy at both points, 3=Filled at initial point, 4=Filled at final point, 5=Filled at both points, 6=Line at initial point, 7=Line at final point, 8=Line at both points. The default for both is 1 (Fancy at final point). [As of version 5.913, this is deprecated. Use setArrowTypeStart() and setArrowTypeFinish() instead.]
Marker Attributes
setMarkerColor(color);
The default color is Color2.notDrawn.
setMarkerBackgroundColor(color);
The default is Color2.notDrawn. [Added in version 6.100.]
setMarkerFont(int);
The default is 3 (which by default is the marker font). See Drawing : Load Fonts.
setMarkerType(int);
The default is 52 (which is a plus sign in the Marker font).
setMarkerSize(double);
The default is 0.1 Drawing Coordinate units.
Shape Attributes
setShapeType(int); 
Valid values are: 0=Arrow, both, 1=Arrow, left, 2=Arrow, right, 3=Bracket, left, 4=Bracket, right, 5=Bullet, 6=Burst 1, 7=Burst 2, 8=Circle, 9=Circle, with line, 10=Cloud, 11=Cloud, point down, 12=Cloud 2, 13=Cloud 2, point down, 14=Computer, PC, 15=Computer, Server, 16=Cube, right, 17=Cylinder, horizontal, 18=Cylinder, vertical, 19=Diamond, horizontal, 20=Ellipse, 2 wide, 21=Ellipse, flexible, 22=Fax, 23=Hexagon, 24=Home plate, down, 25=Home plate, left, 26=Home plate, right, 27=Home plate, up, 28=Octagon, 29=Parallelogram, left, 30=Parallelogram, right, 31=Pentagon, 32=Person, 33=Printer, 34=Rectangle, 35=Rectangle, cut upper left, 36=Rectangle, cuts bottom, 37=Rectangle, cuts top, 38=Rectangle, folded corner, 39=Rectangle, jagged bottom, 40=Rectangle, lines left right, 41=Rectangle, lines top left, 42=Rectangle, point down, 43=Rectangle, point left center, 44=Rectangle, point lower left, 45=Rectangle, point lower right, 46=Rectangle, point right center, 47=Rectangle, point up, 48=Rectangle, point upper left, 49=Rectangle, point upper right, 50=Rectangle, rounded, 51=Rectangle, rounded sides, 52=Rectangle, sides in out, 53=Rectangle, sides out in, 54=Rectangle, slant top, 55=Rectangle, tab, 56=Rectangle, wavy bottom, 57=Rectangle, wavy top bottom, 58=Square, 59=Square, round right, 60=Trapezoid, down, 61=Trapezoid, up, 62=Triangle, down, 63=Triangle, left, 64=Triangle, right, 65=Triangle, up, 66=6 sides, horizontal, 67=6 sides, vertical, 68=Phone, 69=Burst 3, 70=Burst 4, 71=Rectangle, point left, 72=Rectangle, point right. The default is 34 (Rectangle). Note that the order on the Choice widget is alphabetical, which is different from the numerical order. [Added in version 5.912.]
setShapeHAlign(int); 
Valid values are: FartherLeft3=0, FartherLeft1=1, ShapeLeftEdge=2, TextLeftEdge=3, Center=4, TextRightEdge=5, ShapeRightEdge=6, FartherRight1=7, FartherRight3=8. The default is 4 (Center). [Added in version 5.912.]
setShapeVAlign(int); 
Valid values are: Above3=0, Above1=1, ShapeTop=2, Line1Top=3, Line1Upper=4, Line1Center=5, Line1Lower=6, Line1Bottom=7, TextCenter=8, LineNLower=9, ShapeCenter=10, ShapeBottom=11, Below1=12, Below3=13. The default is 10 (ShapeCenter). [Added in version 5.912.]
setShapeWidth(double);
The default is "." (default value). [Added in version 5.912.]
setShapeHeight(double);
The default is "." (default value). [Added in version 5.912.]
setShapeBorder(double);
The default is 1. [Added in version 6.100.]
setShapeAngle(double);
The default is 0 degrees. [Added in version 5.912.]
setShapeShadow(int); 
Valid values are: 0=(none), 1=LowerLeft, 2=LowerRight, 3=UpperLeft, 4=UpperRight, 5=LowerLeft*3, 6=LowerRight*3, 7=UpperLeft*3, 8=UpperRight*3. The default is 0 (none). [Added in version 5.912.]
Text Attributes
setTextColor(color);
The default color is Color2.black.
setTextFont(int);
The default is 0 (which by default is the Helvet font). See Drawing : Load Fonts.
setTextHeight(double);
The default is 0.1 Drawing Coordinate units.
setTextPosition(int);
The default is 4. Valid values are: 0=UpperLeft, 1=UpperCenter, 2=UpperRight, 3=CenterLeft, 4=CenterCenter, 5=CenterRight, 6=LowerLeft, 7=LowerCenter, 8=LowerRight.
setTextHAlign(int); [deprecated]
Valid values are: 0=Left, 1=Center, 2=Right. The default is 0 (Left). [As of version 5.912, this is deprecated. Use setShapeHAlign(oldValue+3) instead.]
setTextVAlign(int); [deprecated]
Valid values are: 0=Top, 1=Upper, 2=Center, 3=Lower, 4=Bottom. The default is 3 (Lower). [As of version 5.912, this is deprecated. Use setShapeVAlign(oldValue+3) instead.]
setTextAngle(double); [deprecated]
The default is 0 degrees. [As of version 5.912, this is deprecated. Use setShapeAngle(double) instead.]
Path Attributes
setPathType(int);
Valid values are 0=line, 1=spline, 2=bezier. The default is 0 (line).
Ellipse Attributes
setEllipseSize(double);
The default is 0.5 inch.
setEllipseInnersize(double);
The default is 0 Drawing Coordinate units.
setEllipseWidth(double);
The default width/height ratio is 1.
setEllipseStart(double);
The default is 0 degrees.
setEllipseFinish(double);
The default is 360 degrees.
setEllipseNSides(int);
The default is 90.
setEllipseTextPosition(int);
0=HorizontalOut, 1=RadialIn, 2=RadialOut. The default is 0. [Added in version 5.913.]
setEllipseAngle(double);
The default is 0 degrees.
setEllipseSkew(double);
The default is 0 degrees.
Characters
setCharacters(string);
The default is "".
Image attributes
There are several image attributes. See the list below.
Graph attributes
There are many graph attributes. See the list below.

Create an Object - After the attributes for an object have been set, use create(string, doubleList); to actually create the object (for example, 'create("path", "2,1,2,2");'). string has the type of object (bigText, dimension, ellipse, image, graph, path, and text). doubleList has the x,y points.

Image Attributes

Unlike the drawing attributes listed above, image attributes must be set separately for each image. For example, if one image has a non-default Top Margin, the non-default value doesn't automatically carry over to the next image.

For each image,

  1. Use setCharacters to specify the image file name. CoPlot automatically converts \'s in image file names to /'s when the .draw file is saved. When .draw files are opened, /'s are converted to \'s if appropriate for the current operating system. [Added in version 5.918.]
  2. Call newImage(); to create the local image object.
  3. Call the various image.xxx(); commands for settings that are different from the defaults.
  4. Call create("image", "x, y");, where x, y is the center of where the image will be drawn. (Prior to 5.917, you had to specify x1,y1,x2,y2 - the upper left and upper right corners of the image's location.)

The image.xxx attributes correspond to options on the Edit : Image dialog box:

image.setSize(double);
The default is 0.32 Drawing Coordinate units. [The command was added in 5.917.]
image.setAngle(double);
The default is 0 degrees. [This command added was in 5.917.]
image.setLeftMargin(int);
The default is 0 pixels.
image.setRightMargin(int);
The default is 0 pixels.
image.setTopMargin(int);
The default is 0 pixels.
image.setBottomMargin(int);
The default is 0 pixels.
image.setNotDrawnColor(color);
The default notDrawn color is Color2.notDrawn.
image.setNegativeColors(boolean);
The default is false.
image.setPaletteColorsOnly(boolean);
The default is false.
image.setBrightness(String);
The default is "Regular".
image.setContrast(String);
The default is "Regular".
image.setBackgroundColor(int);
The default color is Color2.notDrawn.
image.setLineColor(int);
The default color is Color2.notDrawn.
image.setLineWidth(double);
The default is 0.003 Drawing Coordinate units.

Graph Attributes

Unlike the drawing attributes listed above, graph attributes must be set separately for each graph. For example, if one graph has a non-default graph title, the non-default value doesn't automatically carry over to the next graph.

For each graph,

  1. You must first call newGraph(); to create the local graph object.
  2. Call the various graph.xxx(); commands for settings that are different from the defaults.
  3. Finally, call create("graph", "x,y");.

The graph attributes are in groups which correspond to the buttons on the Edit : Graph dialog box:

Graph : Overview Commands - most of this settings correspond to options on the Edit : Graph : Graph : Overview dialog box.
graph.setVisible(boolean);
The default value is true. See Edit : Graph. [Added in version 5.920.]
graph.setBackgroundColor(color);
The default background color is Color2.notDrawn.
graph.setType(int);
Valid types are: 0=XY, 1=3D, 2=Conic, 3=Mercator, 4=Orthographic, 5=Polar, 6=Triangle. The default is 0.
graph.setZ3DSpin(double);
The default is 30 degrees.
graph.setZ3DAttitude(double);
The default is 20 degrees.
graph.setXAxisSize(double);
The length of the X axis in Drawing Coordinates. The default is 2.4. [Added in version 5.915.]
graph.setYAxisSize(double);
The length of the Y axis in Drawing Coordinates. The default is 2.4. [Added in version 5.915.]
graph.setZAxisSize(double);
The length of the z axis in Drawing Coordinates. The default is 2.4. [Added in version 5.915.]
graph.setAngle(double);
This sets the rotation angle for the entire graph. The default is 0 degrees. [Added in version 5.915.]
graph.setDatasetLabelsFont(int);
The number of the font to be used for datasets whenever text is needed ( Representation=Markers/Labels, Markers/Labels3D, WindBarb, etc.). Valid values are 0 - 14. The default is 0. [Added in version 5.914.]
graph.setDatasetLabelsFontStyle(int);
The number of the font style to be used for datasets whenever text is needed (0=Plain, 1=Bold, 2=Italics, 3=BoldItalics). [Added in version 5.920.]
graph.setDrawXYGraphAsOriginGraph(boolean);
The default is false. [Added in version 5.915.]
graph.setDrawPolarGraphAsCompassGraph(boolean);
The default is false. [Added in version 5.915.]
graph.setDrawTriangleGraphReversed(boolean);
The default is false. [Added in version 5.915.]
graph.setDrawColorArraysDarkToLight(boolean);
The default is true. [Added in version 5.920.]
graph.setY2DX1(double);
Deprecated as of 5.915 -- the graph's center is now specified by the graph object's x,y location. Old information: The default is 3 (see Drawing Coordinates). The center of the graph (as defined by the setY2D values) should match the center of the graph when you use create("graph", x,y);. If it doesn't, the setY2D values will be shifted so that graph is the same size and shape, but moved to the new center point.
graph.setY2DY1(double);
Deprecated as of 5.915 -- the graph's center is now specified by the graph object's x,y location. Old information: The default is 3 (see Drawing Coordinates).
graph.setY2DX2(double);
Deprecated as of 5.915 -- the graph's center is now specified by the graph object's x,y location. Old information: The default is 5.4 (see Drawing Coordinates).
graph.setY2DY2(double);
Deprecated as of 5.915 -- the graph's center is now specified by the graph object's x,y location. Old information: The default is 5.4 (see Drawing Coordinates).
graph.setZ3DSize(double);
Deprecated as of 5.915 -- see graph.setZAxisSize. Old information: The default is 2.4 Drawing Coordinate units.
graph.setZ3DXSize(double);
Deprecated as of 5.915 -- see graph.setZAxisSize. Old information: The default is 100.0 percent.
graph.setZ3DYSize(double);
Deprecated as of 5.915 -- see graph.setZAxisSize. Old information: The default is 100.0 percent.
graph.setDrawingOrder(String);
The default is "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11". See Drawing Order. [Added in version 5.920.] The numbers, 1 - 11, represent parts of the graph: 1=map layers 1-6, 2=map layers 7..., 3=axis grid and zero lines, 4=axis lines, ticks, labels, titles, 5=function 1, 6=functions 2..., 7=dataset 1, 8=datasets 2..., 9=legend, 10=graph title, 11=comments.
Graph : Title Commands - correspond to options on the Edit : Graph : Graph : Title dialog box. All of the procedures take a list that should have two values (corresponding to title1 and title2).
graph.title.text(stringList);
The default for title1 and title2 is ".".
graph.title.radius(doubleList);
The default for title1 and title2 is 0.5 Drawing Coordinate units. Note that a graph title's position is stored internally as r,theta polar coordinates relative straight outward from the center of the axis. Stored in this way, the position doesn't have to be adjusted when the graph size and shape is changed.
graph.title.theta(doubleList);
The default for title1 and title2 is 0 degrees.
graph.title.color(colorList);
The default color for title1 and title2 is Color2.black.
graph.title.font(intList);
The default for title1 and title2 is 0 (which by default is the Helvet font). See Drawing : Load Fonts.
graph.title.fontStyle(intList);
Valid values are: 0=Plain, 1=Bold, 2=Italic, 3=Bold Italic. The default for title1 and title2 is 0.
graph.title.height(doubleList);
The default for title1 and title2 is 0.1 Drawing Coordinate units.
graph.title.angle(doubleList);
The default for title1 and title2 is 0 degrees.
graph.title.hAlign(intList);
Valid values are: 0=Left, 1=Center, and 2=Right. The default for title1 and title2 is 1.
Graph : Map Commands - correspond to options on the Edit : Graph : Map dialog box. Other than setNLayers, all of the procedures takes a list that should have nLayers values.
graph.map.setLineDetail(int);
The default is 0 (automatic). Other valid values are the integers 1 (coarse) to 9 (fine).
graph.map.setNLayers(int);
The default is 0. You must use this before assigning other map attributes.
graph.map.mapFile(stringList);
The default for each map layer is "".
graph.map.objectDetail(stringList);
The default for each map layer is "1-2".
graph.map.backgroundColor(colorList);
The default color for each map layer is Color2.notDrawn.
graph.map.lineColor(colorList);
The default color for each map layer is Color2.mapDefault.
graph.map.lineType(intList);
The default line type for each map layer is 0 (a solid line).
graph.map.lineDashsize(doubleList);
The default for each map layer is 0.02 Drawing Coordinate units.
graph.map.lineWidth(doubleList);
The default for each map layer is 0.003 Drawing Coordinate units.
graph.map.markerColor(colorList);
The default color for each map layer is Color2.notDrawn.
graph.map.markerSize(doubleList);
The default for each map layer is 0.1 Drawing Coordinate units.
graph.map.textDetail(stringList);
The default for each map layer is "".
graph.map.textColor(colorList);
The default color for each map layer is Color2.mapDefault.
graph.map.textHeight(doubleList);
The default for each map layer is 0.1 Drawing Coordinate units.
graph.openDataFile.
There was a command to let you load data into graph.data, but graph.data is gone and the command is now deprecated (as of 5.913): graph.openDataFile(int fileType, int mode, String fileDirectory, String fileName, int simplify, int headerLength, String fileStructure); Use openDatafile instead.
graph.data
There were commands to let you load data directly in graph.data, but graph.data is gone and the commands are now all deprecated (as of 5.913). Use the datafile.xxx commands instead.
graph.data.insertRows(int where, int howMany);
Deprecated in 5.913. Use datafile.insertRows instead.
graph.data.insertColumn(int where, String type, String name);
Deprecated in 5.913. Use datafile.insertColumn instead.
graph.data.setString(int col, int row, string value);
Deprecated in 5.913. Use datafile.setString instead.
graph.data.setRow(int row, stringList csvData);
Deprecated in 5.913. Use datafile.setRow instead.
graph.data.setCol(int col, stringList csvData);
Deprecated in 5.913. Use datafile.setCol instead.
Graph : Dataset Commands - correspond to options on the Edit : Graph : Dataset dialog box. Other than setNDatasets, all of the procedures takes a list that should have nDatasets values.
graph.dataset.setNDatasets(int);
The default is 0. You must use this before assigning other dataset attributes.
graph.dataset.datafile(intList);
The default for each dataset is 1.
graph.dataset.representation(intList);
The default for each dataset is 1. The representations are: 0=Bars/2D, 1=Bars/3D, 2=Bars/3D simple, 3=Box & whisker, 4=Fill above, 5=Fill below, 6=Fill between 2 Y, 7=Fill inward, 8=Fill outward, 9=Fill zero, 10=, 11=Line, 12=Line/staircase, 13=Markers, 14=Markers/labels, 15=Markers/nth point, 16=Markers/variable, 17=Spline, 18=Grid/2D/colored blocks/1 point,19=Grid/2D/colored blocks/4 points, 20=Grid/3D/colored blocks/1 point,21=Grid/3D/colored blocks/4 points, 22=Grid/3D/colored surface, 23=Grid/3D/one color, 24=Grid/3D/transparent, 25=Vector, 26=Wind barb, 27=Grid/2D/bold nth line, 28=Grid/2D/bold nth spline, 29=Grid/2D/colored surface, 30=Grid/2D/line color, 31=Grid/2D/line dashsize, 32=Grid/2D/line width, 33=Markers/variable/color, 34=, 35=Grid/3D/histogram, 36=Grid/3D/one color with sides, 37=Grid/3D/pyramids, 38=, 39=, 40=, 41=Bars/3D pyramids, 42=Histogram, 43=BarGraph/Grouped, 44=BarGraph/Stacked, 45=BarGraph/100%.
graph.dataset.variable1(intList);
The default for each dataset is 1.
graph.dataset.variable2(intList);
The default for each dataset is 2.
graph.dataset.variable3(intList);
The default for each dataset is 3.
graph.dataset.variable4(intList);
The default for each dataset is -1 (blank).
graph.dataset.variable5(intList);
The default for each dataset is -1 (blank).
graph.dataset.variable6(intList);
The default for each dataset is -1 (blank).
graph.dataset.variable7(intList);
The default for each dataset is -1 (blank).
graph.dataset.extra1(intList);
The default for each dataset is 4.
graph.dataset.extra2(doubleList);
The default for each dataset is 0.
graph.dataset.backgroundColor(colorList);
The default color for each dataset is Color2.notDrawn.
graph.dataset.color(colorList);
The default color for each dataset is Color2.black.
graph.dataset.markerFont(intList);
The default for each dataset is 3 (which by default is the Marker font). See Drawing : Load Fonts.
graph.dataset.markerType(intList);
The default for each dataset is 52 (which is a plus sign in the Marker font).
graph.dataset.size(doubleList);
The default for each dataset is 0.1 Drawing Coordinate units.
graph.dataset.fillType(intList);
The default fill type for each dataset is 1 (horizontal lines).
graph.dataset.fillSize(doubleList);
The default for each dataset is 0.1 Drawing Coordinate units. [Added in version 5.918.]
graph.dataset.lineWidth(doubleList);
The default for each dataset is 0.003 Drawing Coordinate units.
graph.dataset.lineType(intList);
The default line type for each dataset is 0 (a solid line).
graph.dataset.lineDashsize(doubleList);
The default for each dataset is 0.02 Drawing Coordinate units.
graph.dataset.errorWidth(doubleList);
The default for each dataset is 0.003 Drawing Coordinate units.
graph.dataset.legend(stringList);
The default for each dataset is ".".
graph.dataset.keepIf(stringList);
The default for each dataset is "".
Graph : Function Commands - correspond to options on the Edit : Graph : Function dialog box. Other than setNFunctions, all of the procedures takes a list that should have nFunctions values.
graph.function.setNFunctions(int);
The default is 0. You must use this before assigning other function attributes.
graph.function.equation(stringList);
The default for each function is "".
graph.function.legend(stringList);
The default for each function is ".".
graph.function.representation(intList);
The default for each function is 3. The representations are: 0=Fill above, 1=Fill below, 2=Fill zero, 3=Line, 4=Grid/2D/bold nth line, 5=Grid/2D/bold nth spline, 6=Grid/2D/colored surface, 7=Grid/2D/line color, 8=Grid/2D/line dashsize, 9=Grid/2D/line width, 10=Grid/2D/colored blocks/1 point, 11=Grid/2D/colored blocks/4 points, 12=Grid/3D/colored blocks/1 point, 13=Grid/3D/colored blocks/4 points, 14=Grid/3D/colored surface, 15=Grid/3D/one color, 16=Grid/3D/transparent, 17=Grid/3D/one color with sides.
graph.function.backgroundColor(colorList);
The default backgroundColor for each function is Color2.notDrawn.
graph.function.color(colorList);
The default color for each function is Color2.black.
graph.function.fillType(intList);
The default fill type for each function is 1 (horizontal lines).
graph.function.fillSize(doubleList);
The default for each function is 0.1 Drawing Coordinate units.
graph.function.lineType(intList);
The default line type for each function is 0 (a solid line).
graph.function.lineDashsize(doubleList);
The default for each function is 0.02 Drawing Coordinate units.
graph.function.lineWidth(doubleList);
The default for each function is 0.003 Drawing Coordinate units.
graph.function.xEvaluate(intList);
The default for each function is 100.
graph.function.yEvaluate(intList);
The default for each function is 25.
graph.function.zSpacing(stringList);
The default for each function is ".".
graph.function.from(doubleList);
The default for each function is a missing value (represented by a dot).
graph.function.to(doubleList);
The default for each function is a missing value (represented by a dot).
Graph : Axis : Overview Commands - correspond to options on the Edit : Graph : Axis : Overview dialog box. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.type(intList);
The default for each axis is 0. The valid types are: 0=Linear Scale, 1=Log Base 10, 2=Degrees, 3=Normal Probability, 4=Standard Deviation, 5=Double Log base 10, 6=Natural Log, 7=Date, 8=Seconds, 9=Pi, 10=Probit, 11=Square Root.
graph.axis.low(doubleList);
The default for each axis is a missing value (represented by a dot).
graph.axis.high(doubleList);
The default for each axis is a missing value (represented by a dot).
graph.axis.offset(doubleList);
The default for each axis is 0 Drawing Coordinate units.
graph.axis.setConicParallel1(double);
The default is "." (automatic). Other valid values are doubles between -89 and 89.
graph.axis.setConicParallel2(double);
The default is "." (automatic). Other valid values are doubles between -89 and 89.
Graph : Axis : Title 1 Commands - correspond to options on the Edit : Graph : Graph : Title dialog when Which Part is set to Title1. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.title1.text(stringList);
The default for each axis is ".".
graph.axis.title1.radius(doubleList);
The default for each axis is 0.5 Drawing Coordinate units. Note that an axis title's position is stored internally as r,theta polar coordinates relative straight outward from the center of the axis. Stored in this way, the position doesn't have to be adjusted when the graph size and shape is changed.
graph.axis.title1.theta(doubleList);
The default for each axis is a missing value (automatic) (represented by a dot).
graph.axis.title1.color(colorList);
The default color for each axis is Color2.black.
graph.axis.title1.font(intList);
The default for each axis is 0 (which by default is the Helvet font). See Drawing : Load Fonts.
graph.axis.title1.fontStyle(intList);
Valid values are: 0=Plain, 1=Bold, 2=Italic, 3=Bold Italic. The default for each axis is 0.
graph.axis.title1.height(doubleList);
The default for each axis is 0.1 Drawing Coordinate units.
graph.axis.title1.angle(doubleList);
The default for each axis is a missing value (represented by a dot). If you enter a specific value, it is in degrees.
graph.axis.title1.hAlign(intList);
Valid values are: 0=Left, 1=Center, 2=Right. The default for each axis is 1 (Center).
graph.axis.title1.visible(intList);
Valid values are: 0=on main axis, 1=on opposite axis, 2=on main and opposite axes. The default for each axis is 0.
Graph : Axis : Title 2 Commands - correspond to options on the Edit : Graph : Graph : Title dialog when Which Part is set to Title2. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.title2.text(stringList);
The default for each axis is ".".
graph.axis.title2.radius(doubleList);
The default for each axis is 0.7 Drawing Coordinate units. Note that an axis title's position is stored internally as r,theta polar coordinates relative straight outward from the center of the axis. Stored in this way, the position doesn't have to be adjusted when the graph size and shape is changed.
graph.axis.title2.theta(doubleList);
The default for each axis is a missing value (automatic) (represented by a dot)
graph.axis.title2.color(colorList);
The default color for each axis is Color2.black.
graph.axis.title2.font(intList);
The default for each axis is 0 (which by default is the Helvet font). See Drawing : Load Fonts.
graph.axis.title2.fontStyle(intList);
Valid values are: 0=Plain, 1=Bold, 2=Italic, 3=Bold Italic. The default for each axis is 0.
graph.axis.title2.height(doubleList);
The default for each axis is 0.1 Drawing Coordinate units.
graph.axis.title2.angle(doubleList);
The default for each axis is 0 degrees.
graph.axis.title2.hAlign(intList);
Valid values are: 0=Left, 1=Center, 2=Right. The default for each axis is 1 (Center).
graph.axis.title2.visible(intList);
Valid values are: 0=on main axis, 1=on opposite axis, 2=on main and opposite axes. The default for each axis is 0.
Graph : Axis : Labels Commands - correspond to options on the Edit : Graph : Axis : Labels dialog box. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.labels.text(stringList);
The default for each axis is ".".
graph.axis.labels.radius(doubleList);
The default for each axis is 0.1 Drawing Coordinate units. Note that an axis label's position is stored internally in polar coordinates (r,theta) relative to straight outward from the center of the axis. Stored in this way, the position doesn't have to be adjusted when the graph size and shape is changed.
graph.axis.labels.theta(doubleList);
The default for each axis is 0 degrees.
graph.axis.labels.color(colorList);
The default color for each axis is Color2.black.
graph.axis.labels.font(intList);
The default for each axis is 0 (which by default is the Helvet font). See Drawing : Load Fonts.
graph.axis.labels.fontStyle(intList);
Valid values are: 0=Plain, 1=Bold, 2=Italic, 3=Bold Italic. The default for each axis is 0.
graph.axis.labels.height(doubleList);
The default for each axis is 0.1 Drawing Coordinate units.
graph.axis.labels.angle(doubleList);
The default for each axis is 0 degrees.
graph.axis.labels.hAlign(intList);
Valid values are: 0=Left, 1=Center, 2=Right, 3=Auto. The default for each axis is 3 (Auto).
graph.axis.labels.visible(intList);
Valid values are: 0=on main axis, 1=on opposite axis, 2=on main and opposite axes. The default for each axis is 0.
graph.axis.labels.division(stringList);
The default for each axis is ".".
graph.axis.labels.format1(intList);
The default for each axis is 0 (general format). See format options in the CoStat Manual (costat.htm).
graph.axis.labels.format2(intList);
The default for each axis is 0 (if format1 is 0, 0 here specifies a 9 digit field).
graph.axis.labels.decimalPoint(intList);
The default for each axis is 0 (a period).
graph.axis.labels.prefix(stringList);
The default for each axis is "".
graph.axis.labels.suffix(stringList);
The default for each axis is "".
graph.axis.labels.drawFirstLabel(booleanList);
The default for each axis is true. (This was added in 5.923.)
graph.axis.labels.drawLastLabel(booleanList);
The default for each axis is true. (This was added in 5.917.)
Graph : Axis : Axis Line Commands - correspond to options on the Edit : Graph : Axis : Lines dialog when Which Part is set to Axis Line. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.axisLine.type(intList);
The default line type for each axis is 0 (a solid line).
graph.axis.axisLine.dashsize(doubleList);
The default for each axis is 0.02 Drawing Coordinate units.
graph.axis.axisLine.width(doubleList);
The default for each axis is 0.003 Drawing Coordinate units.
graph.axis.axisLine.color(colorList);
The default color for each axis is Color2.black.
graph.axis.axisLine.arrowHeadVisible(intList);
For each axis, 0=Low End, 1=High End (the default), and 2=Both Ends.
graph.axis.axisLine.arrowHeadsize(doubleList);
The default for each axis is 0 Drawing Coordinate units.
graph.axis.axisLine.visible(intList);
Valid values are: 0=on main axis, 1=on opposite axis, 2=on main and opposite axes. The default for each axis is 2.
Graph : Axis : Ticks 1 Commands - correspond to options on the Edit : Graph : Axis : Lines dialog when Which Part is set to Ticks 1. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.ticks1.type(intList);
The default line type for each axis is 0 (a solid line).
graph.axis.ticks1.dashsize(doubleList);
The default for each axis is 0.02 Drawing Coordinate units.
graph.axis.ticks1.width(doubleList);
The default for each axis is 0.003 Drawing Coordinate units.
graph.axis.ticks1.color(colorList);
The default color for each axis is Color2.black.
graph.axis.ticks1.division(stringList);
The default for each axis is ".".
graph.axis.ticks1.in(doubleList);
The default for each axis is 0.06 Drawing Coordinate units.
graph.axis.ticks1.out(doubleList);
The default for each axis is 0 Drawing Coordinate units.
graph.axis.ticks1.visible(intList);
Valid values are: 0=on main axis, 1=on opposite axis, 2=on main and opposite axes. The default for each axis is 0.
Graph : Axis : Ticks 2 Commands - correspond to options on the Edit : Graph : Axis : Lines dialog when Which Part is set to Ticks2. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.ticks2.type(intList);
The default line type for each axis is 0 (a solid line).
graph.axis.ticks2.dashsize(doubleList);
The default for each axis is 0.02 Drawing Coordinate units.
graph.axis.ticks2.width(doubleList);
The default for each axis is 0.003 Drawing Coordinate units.
graph.axis.ticks2.color(colorList);
The default color for each axis is Color2.black.
graph.axis.ticks2.division(stringList);
The default for each axis is ".".
graph.axis.ticks2.in(doubleList);
The default for each axis is 0.03 Drawing Coordinate units.
graph.axis.ticks2.out(doubleList);
The default for each axis is 0 Drawing Coordinate units.
graph.axis.ticks2.visible(intList);
Valid values are: 0=on main axis, 1=on opposite axis, 2=on main and opposite axes. The default for each axis is 0.
Graph : Axis : Grid 1 Commands - correspond to options on the Edit : Graph : Axis : Lines dialog when Which Part is set to Grid 1. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.grid1.type(intList);
The default line type for each axis is 0 (a solid line).
graph.axis.grid1.dashsize(doubleList);
The default for each axis is 0.02 Drawing Coordinate units.
graph.axis.grid1.width(doubleList);
The default for each axis is 0.003 Drawing Coordinate units.
graph.axis.grid1.color(colorList);
The default color for each axis is Color2.notDrawn.
graph.axis.grid1.division(stringList);
The default for each axis is ".".
Graph : Axis : Grid 2 Commands - correspond to options on the Edit : Graph : Axis : Lines dialog when Which Part is set to Grid 2. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.grid2.type(intList);
The default line type for each axis is 0 (a solid line).
graph.axis.grid2.dashsize(doubleList);
The default for each axis is 0.02 Drawing Coordinate units.
graph.axis.grid2.width(doubleList);
The default for each axis is 0.003 Drawing Coordinate units.
graph.axis.grid2.color(colorList);
The default color for each axis is Color2.notDrawn.
graph.axis.grid2.division(stringList);
The default for each axis is ".".
Graph : Axis : Zero Line Commands - correspond to options on the Edit : Graph : Axis : Lines dialog when Which Part is set to Zero Line. All of the procedures take a list that should have 4 values (corresponding to the X, Y, Z, and T axes).
graph.axis.zeroLine.type(intList);
The default line type for each axis is 0 (a solid line).
graph.axis.zeroLine.dashsize(doubleList);
The default for each axis is 0.02 Drawing Coordinate units.
graph.axis.zeroLine.width(doubleList);
The default for each axis is 0.003 Drawing Coordinate units.
graph.axis.zeroLine.color(colorList);
The default color for each axis is Color2.notDrawn.
graph.axis.axisLine.arrowHeadVisible(intList);
For each axis, 0=Low End, 1=High End (the default), and 2=Both Ends.
graph.axis.zeroLine.arrowHeadsize(doubleList);
The default for each axis is 0 Drawing Coordinate units.
Graph : Legend Commands - correspond to options on the Edit : Graph : Legend dialog box.
graph.legend.setText(string);
The default is "".
graph.legend.setOrder(intList);
The integers 1 through 20 in a comma-separated list specify the order of datasets and functions in the legend. 1 - 9 represent functions #1 - #9. 10 represents functions #10 and higher. 11 - 19 represent datasets #1 - #9. 20 represents datasets #10 and higher. The default is "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20". [Added in version 6.100.]
graph.legend.setEncodedX(double x);
This specifies the x part of the legend's location in an encoded way. The encoding is: pretend the Graph Angle is 0 degrees, encodedX = (drawingX-graph.x)/ (graph.xAxisSize/2). Thus, it is the x distance relative to the graph's center point and relative to the X axis size. [Added in version 5.916]
graph.legend.setEncodedY(double y);
This specifies the y part of the legend's location in an encoded way. The encoding is: pretend the Graph Angle is 0 degrees, encodedY = (drawingY-graph.y)/ (graph.yAxisSize/2). Thus, it is the y distance relative to the graph's center point and relative to the Y axis size. [Added in version 5.916]
graph.legend.setX(double); [deprecated]
[As of version 5.915, this is deprecated. Use graph.legend.setEncodedX instead.]
graph.legend.setY(double); [deprecated]
[As of version 5.915, this is deprecated. Use graph.legend.setEncodedY instead.]
graph.legend.setTextColor(color);
The default color is Color2.black.
graph.legend.setFont(int);
The default is 0 (which by default is the Helvet font). See Drawing : Load Fonts.
graph.legend.setFontStyle(int);
The default is 0=plain. Other valid values are 1=bold, 2=italics, and 3=bold italics.
graph.legend.setHeight(double);
The default is 0.1 Drawing Coordinate units.
graph.legend.setAngle(double);
The default is 0 degrees.
graph.legend.setType(int);
The default legend type is 1=Vertical. Valid values are: 0=Horizontal, 1=Vertical, or 2=Interlaced.
graph.legend.setInterline(double);
The default is 1, which represents the standard interline spacing
graph.legend.setExampleSize(double);
The default is 1, which represents the standard size (which is scaled relative to the legend height value).
graph.legend.setBackgroundColor(color);
The default color is Color2.notDrawn.
graph.legend.setLineColor(color);
The default color is Color2.notDrawn.
graph.legend.setLineWidth(double);
The default is 0.003 Drawing Coordinate units.
graph.legend.setShapeType(int);
See the list of valid shape types. The default is 34 (Rectangle).
graph.legend.setShapeHAlign(int);
See the list of valid shapeHAlign types. The default is 4.
graph.legend.setShapeVAlign(int);
See the list of valid shapeVAlign types. The default is 10 (ShapeCenter).
graph.legend.setShapeShadow(int);
See the list of valid shapeShadow types. The default is 0 (none).
graph.legend.setShapeBorder(double);
The default is 1. [Added in version 6.100.]
graph.legend.setUseCustomLegend(boolean);
The default is false.
graph.legend.setCustomLegendText(String);
The default is "".
Graph : Comment Commands - correspond to options on the Edit : Graph : Comment dialog box.
graph.comment.setNComments(int);
The default is 0. You must use this before assigning other comment attributes.
graph.comment.graphX(doubleList);
The default is 0 (in the graph's coordinate system).
graph.comment.graphY(doubleList);
The default is 0 (in the graph's coordinate system).
graph.comment.graphZ(doubleList);
The default is 0 (in the graph's coordinate system).
graph.comment.shapeType(intList);
See the list of valid shape types. The default is 34 (Rectangle). Note that the order on the Choice widget is alphabetical, which is different from the numerical order. [Added in version 5.912.]
graph.comment.shapeHAlign(intList);
See the list of valid shapeHAlign types. The default is 4 (Center). [Added in version 5.912.]
graph.comment.shapeVAlign(int);
See the list of valid shapeVAlign types. The default is 10 (ShapeCenter). [Added in version 5.912.]
graph.comment.shapeWidth(doubleList);
The default is "." (default value). [Added in version 5.912.]
graph.comment.shapeHeight(doubleList);
The default is "." (default value). [Added in version 5.912.]
graph.comment.shapeBorder(doubleList);
The default is 1. [Added in version 6.100.]
graph.comment.shapeAngle(doubleList);
The default is 0 degrees. [Added in version 5.912.]
graph.comment.shapeShadow(intList);
See the list of valid shapeShadow types. The default is 0 (none). [Added in version 5.912.]
graph.comment.backgroundColor(colorList);
The default color for each comment is Color2.notDrawn. [Added in version 5.912.]
graph.comment.lineColor(colorList);
The default color for each comment is Color2.mapDefault. [Added in version 5.912.]
graph.comment.lineType(intList);
The default line type for each comment is 0 (a solid line). [Added in version 5.912.]
graph.comment.lineDashsize(doubleList);
The default for each comment is 0.02 Drawing Coordinate units. [Added in version 5.912.]
graph.comment.lineWidth(doubleList);
The default for each comment is 0.003 Drawing Coordinate units. [Added in version 5.912.]
graph.comment.textColor(colorList);
The default color is Color2.black. [Added in version 5.912.]
graph.comment.textFont(intList);
The default is 0 (which by default is the Helvet font). See Drawing : Load Fonts. [Added in version 5.912.]
graph.comment.textHeight(doubleList);
The default is 0.1 Drawing Coordinate units. [Added in version 5.912.]
graph.comment.textPosition(intList);
Valid values are: 0=Upper left, 1=Upper center, 2=Upper right, 3=Center left, 4=Center center, 5=Center right, 6=Lower left, 7=Lower center, and 8=Lower right. The default is 4 (Center center). [Added in version 5.912.]
graph.comment.color(colorList); [deprecated]
The default color is Color2.black. [As of version 5.912, this is deprecated. Use graph.comment.textColor(colorList) instead.]
graph.comment.font(intList); [deprecated]
The default is 0 (which by default is the Helvet font). See Drawing : Load Fonts. [As of version 5.912, this is deprecated. Use graph.comment.textFont(intList) instead.]
graph.comment.height(doubleList); [deprecated]
The default is 0.1 Drawing Coordinate units. [As of version 5.912, this is deprecated. Use graph.comment.textHeight(doubleList) instead.]
graph.comment.angle(doubleList); [deprecated]
The default is 0 degrees. [As of version 5.912, this is deprecated. Use graph.comment.shapeAngle(doubleList) instead.]
graph.comment.hAlign(intList); [deprecated]
Valid values are: 0=Left, 1=Center, 2=Right. The default is 0 (Left). [As of version 5.912, this is deprecated. Use graph.comment.textPosition(intList: oldValue+3) instead.]


Menu Tree / Index  

A Sample Drawing File

Here is an example of a drawing file with data embedded in it and the drawing that can be created with it.

In general it is good practice to look at drawing files that CoPlot has created. As with any ASCII file, you can view/edit drawing files in CoText (see Screen : Show CoText) or any other text editor. This file is sample.draw in the cohort directory.

CoPlot.drawVersion(6.100);

createDatafile(1);
datafile.insertRows(1,3);
datafile.insertColumn(1, "d", "X");
datafile.insertColumn(2, "d", "Y");
datafile.setRow(1, "1.5, 0.5");
datafile.setRow(2, "3, 4");
datafile.setRow(3, "8.5, 9.5");

setCharacters("");
newGraph();
graph.title.text("\"Sample Drawing\","+
  "\".\"");
graph.dataset.setNDatasets(1);
graph.dataset.representation("13");
create("graph", "2.09, 8.04");

setLineColor(Color2.green4);
setLineType(0);
setLineDashsize(0.02);
setLineWidth(0.01);
setPathType(0);
create("path", "0.97, 5.08, 2.23, 6.14, "+
  "3.76, 5.64");

setCharacters("");
setBackgroundColor(Color2.yellow4);
setFillColor(Color2.blue4);
setFillType(1);
setFillSize(0.1);
setFillLinewidth(0.01);
setLineColor(Color2.orange4);
setLineWidth(0.02);
setEllipseSize(0.5);
setEllipseInnerSize(0);
setEllipseWidth(1);
setEllipseStart(0);
setEllipseFinish(360);
setEllipseNSides(90);
setEllipseAngle(0);
setEllipseSkew(0);
create("ellipse", "2.04, 5.71");

endOfFile();

Here is the drawing from the sample.draw drawing file:

sample.gif


Menu Tree / Index        

Java Programs, Batch Files, Shell Scripts, Pipes, Perl, Python, Rexx, and Tcl

You can bypass the graphical front end of CoPlot in order to convert drawings in various types of graphics files (notably .draw files) into other types of graphics files (notably .gif files, or printed on the default printer) via Java programs, batch files, shell scripts, pipes, Perl, Python, Rexx, and Tcl.

When you run CoPlot, you are really running a graphical front end to a Java class called Drawing (which comes with CoPlot). It is Drawing that actually maintains the list of drawing objects, draws them to an Image (which CoPlot draws on the screen), opens and saves various types of graphics files, etc.

One way to use the Drawing class is by using the Drawing program, a program that you can run from a command line by typing "drawing" when you are in the cohort directory. The Drawing program is a text mode, command line program that reads in some type of graphics file (for example, .draw, .dra, .gra, .grg, .wmf, .cgm, .gif, .jpg) (or reads system.in) and writes out to an image file (for example, .gif, .jpg), a vector graphics file (for example, .cgm, .wmf, .eps), or the default printer. You can direct the output to system.out instead of to an actual file. As soon as you run drawing, it asks you four questions:

Input file name (""=System.in)?
This can be a .draw file name (for example, test.draw) or nothing. If you enter nothing, it will look for drawing information from System.in (the Java equivalent of C's stdin, which in practice is the command line window). See Drawing (.draw) File Format
Input type (""=0=.draw, 1=.dra, 2=.gra, ...)?
This identifies the type of graphics file coming in. The options are 0=.draw, 1=.dra, 2=.gra, 3=.cgm, 4=.dxf, 5=.wmf, 6=.eps, 7=.gif, 8=.jpg, 9=.pcx, 10=.png, 11=.ppm, 12=.grg.
Output file name (""=System.out)?
This is the name for the image file (for example, test.gif) or nothing (""). If you enter nothing, it will send the resulting information to System.out (the Java equivalent of C's stdout, which in practice is the command line window). For 'Output type=12=defaultPrinter' set this to "".
Output type (0=.draw, 1=.ppm, ""=2=.gif, ...)?
This is the type of image file you want to create. The options are 0=.draw, 1=.ppm, 2=.gif89a, 3=.eps, 4=.pdf, 5=.wpg, 6=.cgm, 7=.wmf, 8=hpgl2bw, 9=hpgl2color, 10=jpgHighQuality, 11=jpgSmallFile, 12=defaultPrinter, 13=pcxBW, 14=pcxColor, 15=.svg, 16=.png, 17=wmfText, 18=cgmText, 19=svgText. The default is 2.

The program then reads the information from the graphics file (or System.in), creates the image, then saves it to the output file (or System.out).

'Drawing' Command Line Parameters - Instead of answering the questions that the program asks, you can use any or all of the following command line parameters in any order:

in-inputFileName
The default is for the input file to come from System.in.
it-inputType
The default is 0 (a .draw file).
on-outputFileName
The default is for the output file to go to System.out.
ot-outputType
The default is 2 (a .gif file).
d-
This suppresses the diagnostic messages that are usually sent to System.err.
For example, drawing in-wheat.draw on-wheat.gif will take the input file wheat.draw and create an output file called wheat.gif. Since the input type and output type were not specified, the defaults (0=.draw and 2=.gif) will be used.

Running Command Line Programs - To run CoHort's command line programs like Drawing, you need to go to the cohort directory (in Windows, for example: cd \progra~1\cohort6), and then run the batch file (for example: drawing).

To run CoHort's command line graphical programs in Unix, you also need to install xvfb (a virtual frame buffer) and run it in back-end mode. Otherwise, you will get an error message saying the X Window session wasn't found. (This may become unnecessary with Java 1.4, where you can use the Java command line switch "-Djava.awt.headless=true".)

Coordinates - If the incoming file is a .draw file, the setXBounds, setYBounds, and setScale commands specify the size of the drawing (ultimately, in inches). (See Drawing : Coordinates.) .dra, .gra, and .grg files also specify the size of the drawing. If the output file is an image file, the Drawing program creates an image that is the exact size necessary (converting 1 inch to 100 pixels, and adding 1 so the border is visible). In the example below, a drawing that is 1.2 x 0.4 inches will generate an image that is 121 x 41 pixels.

Errors - If a syntax error is found while reading the graphics file or creating the image, the error is printed to System.err (on the screen), but processing continues. If you use the "d-" command line flag, these errors are suppressed. If an error occurs while creating the output file, the error is printed to System.err and the program stops with a System.exit(1) command (error level=1). All error messages start with the word "Error" at the beginning of a line.

Pipes - Note that you can pipe all of the information into Drawing and have the results come out a pipe. For example, let's say we have a program called drawGenerator which generates the following text (note that the lines marked [blank] should be truly blank lines):

[blank]
0
[blank]
2
CoPlot.drawVersion(6.100);
setXBounds(0, 1.2);
setYBounds(0, 0.4);

setTextColor(Color2.red4);
setTextFont(0);
setTextHeight(0.1);
setShapeAngle(0);
setCharacters("Hello, World!");
create("text", "0.6, 0.2");

endOfFile();
(Note that the text answers the four questions posed by Drawing, then has information that would be in a .draw file.) And let's say we have another program called gifProcessor, which reads in .gif files and processes them. Then you can use the following command line to generate the .draw information, pass it to Drawing (which in turn converts the .draw information to a .gif file), and pass the .gif file to gifProcessor (although there isn't room here, this command must be on one long line):
drawGenerator | java.exe -Xmx512m -Xincgc -Dcohort=%cohort% -cp %cohort%cohort.jar com.cohort.Drawing | gifProcessor
Unfortunately, you can't put all of Drawing's command line settings (-Xmx, -X, -D, -cp) in a batch file (if you do, the pipes don't work).

The image coming out of this example is:

HelloWorld.gif

Batch Files and Shell Scripts - Since Drawing is a text mode, command line program, it can process graphics files in an automated way in batch files (Windows) and shell scripts (UNIX). One common use would be to use Drawing to automatically process data from some other program, generate a graph or drawing, and save it in a .gif file for later viewing. Another use would be on a web server, as part of a script which generates and serves a custom graph or drawing (in .gif form), based on a request by a remote client.

Programming with Java, Perl, Python, Rexx, or Tcl - A different approach to getting the services of the Drawing class is to use the Drawing class directly from a Java program or from a program in a different language that can access Java objects. Basically, you must create an instance of the Drawing class and then you can call any of the procedures used in a .draw program just by putting "drawing." at the beginning of the method call. For example, "setXBounds(0, 1.2);" in a .draw file becomes "drawing.setXBounds(0, 1.2);" in a Java program. See the Drawing (.draw) File Format for a full list of commands and their parameters.

Guidelines - Here are some guidelines for converting .draw files into Java programs that call methods of the Drawing class:

Here is a minimal example which just opens a .draw file and saves it as a .jpg file. (See the minimal.* files in the cohort directory.)

import com.cohort.Drawing;
public class Minimal {
  public static void main(String args[]) {
    System.err.println("Creating wheat.jpg...");
    Drawing drawing=new Drawing();
    String error=drawing.convertDrawing(
      "wheat.draw", 0, 
      "wheat.jpg", 10, false);
    System.err.println(error);
    System.exit(0);
  }
}

ClassPath - The javac compiler and the java program, which runs Java .class files, need to know where to look for existing .class files. You need to specify this information with the -cp switch on the javac and java command lines; otherwise, you will get an error message saying something like Class not found: 'x.class'. If you put your .class file (for example, minimal.class) in the same directory as the cohort.jar file, your -cp switch can be quite simple (in Windows and OS/2: "-cp .;cohort.jar"; for Unix and Macintosh, just change the separator from ";" to ":"). If the files are in different directories, you need to specify complete names, for example, "-cp c:\myClasses;c:\progra~1\cohort.jar". (Note the use of the Windows short form "progra~1" of the directory name "Program Files", which avoids problems with the space in the directory name). [Before version 6.100, CoHort command line programs required that you set the cohort environment variable (set cohort=...). This is no longer recommended.]

HelloWorld - Here is an example which shows how to convert the sample HelloWorld.draw file from above into a Java program which makes a .jpg file. This example also shows how to create a java.awt.Image and how to reset the drawing if you want to work with another drawing. (See all of the HelloWorld files in the cohort directory.)

import com.cohort.Drawing;
import com.cohort.Color2;
public class HelloWorld {

  public static void main(String args[]) {
    System.err.println("Creating HelloWorld.jpg...");
    Drawing drawing=new Drawing();

    //CoPlot.drawVersion(6.100); 
    drawing.setXBounds(0, 1.2);
    drawing.setYBounds(0, 0.4);

    drawing.setTextColor(Color2.red4);
    drawing.setTextFont(0);
    drawing.setTextHeight(0.1);
    drawing.setShapeAngle(0);
    drawing.setCharacters("Hello, World!");
    drawing.create("text", "0.6, 0.2");

    //save the drawing as a .jpg file
    String error=drawing.fileSaveAs(10, "HelloWorld.jpg"); //10=.jpgHighQuality
    if (error.length()>0) System.err.println(error);

    //Save the drawing as a java.awt.image.
    error=drawing.fileSaveAsImage();
    if (error.length()>0) System.err.println(error);
    //Get the Image you just made.
    java.awt.Image image=drawing.getCurrentImage();
    //If this were a graphical program, you could display the image:
    //if (image!=null) panel.getGraphics().drawImage(image, 0, 0, null);

    //If you were going to create a new drawing, you would reset the drawing:
    drawing.reset();             

    //You could then start over here, with a description of another drawing.
    //drawing.setXBounds(0, 8);
    //...

    System.err.println("Done.");
    System.exit(0);
  }
}
Of course, you will probably have a more complex program which does lots of other things and periodically creates a drawing and saves it as some type of graphics file (or uses type=12 to print it) or displays it as an image on the screen.

Advice - The easiest way to get started using the methods in the Drawing class is look at .draw files. For example, you might make a drawing in CoPlot which is the basic type of drawing that you want your program to create. Then, you can use the .draw file as a starting point for creating your program.

Perl - If you are a Perl programmer and wish to access Drawing, from a Perl script, you can do so with Java/Perl Lingo (JPL), which is freely available. JPL also makes it possible to run Perl scripts from within Java program. JPL, including its source code, is available for download as part of Perl version 5.005_54 (and later versions) from the Perl Web site (www.perl.com).

Support - We will help you use your CoHort software programs, but we can't extend that support to issues related to connections with other languages.

Continuous Processing -   "Drawings" is a slightly different version of the Drawing program that is designed to process a series of .draw files. Because this setup doesn't have to restart the Java Virtual Machine and the Drawings program for each drawing, it saves lots of time. All diagnostic and error messages are printed to System.err.

Normally, the program accepts input from System.in. However, if you use the command line options host-hostName and port-portNumber, you can use a socket to supply information to Drawings.

After initializing itself, the program repeatedly:

  1. Reads the information from a .draw file which has been fed into the program via System.in or a socket. The endOfFile() command in the .draw file signifies the end of the .draw file.
  2. The program then processes drawings.xxx commands. The options are:

Copyright - Remember that CoHort Software programs are licensed for one user at a time. If you need to license our software for distribution or for additional installations (for example, for use on a web server), please contact CoHort Software.


Menu Tree / Index  

References

Allen, S.G. 1981. Agronomic and Genetic Characterization of Winter Wheat Plant Height Isolines. Montana State University. Bozeman, Montana.

Cleveland, William S. 1994. The Elements of Graphing Data, 2nd Ed. Chapman & Hall.

Kosslyn, Stephen M. 1994. Elements of Graph Design. W.H. Freeman. New York, New York.

Miller, A.R. 1981. BASIC Programs for Scientists and Engineers. Sybex. Berkeley, California.

Snyder, J.P. 1983. Map Projections Used by the U.S. Geological Survey, 2nd Ed.. Geological Survey Bulletin 1532. Available from the U.S. Government Printing Office or the USGS.

Sokal, R.R. and F.J. Rohlf. 1969. Biometry. 1st Edition. W.H. Freeman and Co. San Francisco, California.

Sokal, R.R. and F.J. Rohlf. 1981. Biometry. 2nd Edition. W.H. Freeman and Co. San Francisco, California.

Sokal, R.R. and F.J. Rohlf. 1995. Biometry. 3rd Edition. W.H. Freeman and Co. San Francisco, California.

Tufte, E.R. 1983. The Visual Display of Quantitative Information. Graphics Press, Box 430, Cheshire, CT 06410.

Tufte, E.R. 1990. Envisioning Information. Graphics Press, Box 430, Cheshire, CT 06410.

Tufte, E.R. Visual Explanations. Graphics Press, Box 430, Cheshire, CT 06410.

__. 1988. Webster's New Geographical Dictionary. Merriam-Webster, Inc. Publishers, Springfield, MA.


Menu Tree | Index  

Index

Remember, if you can't find something in the index, you can use Ctrl F in your browser to search through the text of the entire manual.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z


Menu Tree / Index

Copyright © 1998-2002 CoHort Software.