An Interactive Plotting and Data-Analysis Package for the IBM PC



Similar documents
KaleidaGraph Quick Start Guide

Adobe Illustrator CS5 Part 1: Introduction to Illustrator

Scientific Graphing in Excel 2010

Gerrit Stols

BD CellQuest Pro Software Analysis Tutorial

GeoGebra. 10 lessons. Gerrit Stols

Understand the Sketcher workbench of CATIA V5.

Quickstart for Desktop Version

Maple Quick Start. Introduction. Talking to Maple. Using [ENTER] 3 (2.1)

Plotting: Customizing the Graph

0 Introduction to Data Analysis Using an Excel Spreadsheet

Easy Plot. Scientific Graphing and Data Analysis. Spiral Software. A product of

Working With Animation: Introduction to Flash

GelAnalyzer 2010 User s manual. Contents

Ovation Operator Workstation for Microsoft Windows Operating System Data Sheet

Pro/ENGINEER Wildfire 4.0 Basic Design

Intro to Excel spreadsheets

Classroom Tips and Techniques: The Student Precalculus Package - Commands and Tutors. Content of the Precalculus Subpackage

Topography of an Origin Project and Workspace

Tutorial for Tracker and Supporting Software By David Chandler

Visualization of 2D Domains

Welcome to CorelDRAW, a comprehensive vector-based drawing and graphic-design program for the graphics professional.

Petrel TIPS&TRICKS from SCM

SketchUp Instructions

Scatter Plots with Error Bars

Maya 2014 Basic Animation & The Graph Editor

Within minutes you can transform your high-resolution digital image in to a DVquality movie that pans, zooms and rotates the once-still image.

Chapter 9 Slide Shows

Solar-Generation Data Visualization Software Festa Operation Manual

TI-Nspire Technology Version 3.2 Release Notes

Final Software Tools and Services for Traders

Spreadsheets and Laboratory Data Analysis: Excel 2003 Version (Excel 2007 is only slightly different)

Applying a circular load. Immediate and consolidation settlement. Deformed contours. Query points and query lines. Graph query.

CNCTRAIN OVERVIEW CNC Simulation Systems

Microsoft Mathematics for Educators:

Chapter 1. Creating Sketches in. the Sketch Mode-I. Evaluation chapter. Logon to for more details. Learning Objectives

Importing and Opening an Alignment

Tutorial: Biped Character in 3D Studio Max 7, Easy Animation

How to make a line graph using Excel 2007

Plots, Curve-Fitting, and Data Modeling in Microsoft Excel

Table of Contents. INTRODUCTION...v. How to Use This Manual...v Terms Used in this Manual...v Fonts Used in this Manual...v

II-13Category Plots. Chapter II-13

Parametric Technology Corporation. Pro/ENGINEER Wildfire 4.0 Design Animation Concepts Guide

Instructions for Use. CyAn ADP. High-speed Analyzer. Summit G June Beckman Coulter, Inc N. Harbor Blvd. Fullerton, CA 92835

A Short Introduction to Transcribing with ELAN. Ingrid Rosenfelder Linguistics Lab University of Pennsylvania

Using Excel for Handling, Graphing, and Analyzing Scientific Data:

Fixplot Instruction Manual. (data plotting program)

Information Literacy Program

Working with Excel in Origin

Lession: 2 Animation Tool: Synfig Card or Page based Icon and Event based Time based Pencil: Synfig Studio: Getting Started: Toolbox Canvas Panels

2. Select Point B and rotate it by 15 degrees. A new Point B' appears. 3. Drag each of the three points in turn.

Design document Goal Technology Description

Introduction to the TI-Nspire CX

Twelve. Figure 12.1: 3D Curved MPR Viewer Window

Graphic Design. Background: The part of an artwork that appears to be farthest from the viewer, or in the distance of the scene.

An introduction to 3D draughting & solid modelling using AutoCAD

Basic AutoSketch Manual

How to use PGS: Basic Services Provision Map App

INTRODUCTION TO THE XL30-FEG SEM. 1.1 The mouse The monitor. Figure THE USER INTERFACE

Linkage 3.2. User s Guide

TABLE OF CONTENTS. INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE...

CATIA Basic Concepts TABLE OF CONTENTS

RGK60 RGK50 RGAM10 RGAM20 RGAM4 Generator set control units

Quick Reference Manual

Interactive Voting System. IVS-Basic IVS-Professional 4.4

CATIA V5 Tutorials. Mechanism Design & Animation. Release 18. Nader G. Zamani. University of Windsor. Jonathan M. Weaver. University of Detroit Mercy

Basic 2D Design Be sure you have the latest information!

NIS-Elements Viewer. User's Guide

Chapter 9. Editing Features. Learning Objectives

Tutorial E D I T C A D. Editing CAD Geodata. TNTmips. and TNTedit

Toolbars and Tabs in SMART Notebook Software

CLOUD DIGITISER 2014!

GeoGebra Statistics and Probability

Lecture Notes, CEng 477

Getting Started With DraftSight A Guide For AEC Users

GlobiLab 1.0 App for Android Quick Start Guide


Formulas, Functions and Charts

Figure 1. An embedded chart on a worksheet.

Excel -- Creating Charts

Absorbance Spectrophotometry: Analysis of FD&C Red Food Dye #40 Calibration Curve Procedure

Creating Charts and Graphs

Datalogger Graph Software Help

Chapter 4 Creating Charts and Graphs

A Guide to Using Excel in Physics Lab

Writer Guide. Chapter 15 Using Forms in Writer

PowerPoint 2007: Basics Learning Guide

Excel 2007 Basic knowledge

UCL Depthmap 7: Data Analysis

Creating 2D Drawings from 3D AutoCAD Models

We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model

GUIDELINES FOR PREPARING POSTERS USING POWERPOINT PRESENTATION SOFTWARE

Chapter 15 Using Forms in Writer

Algolab Photo Vector

Introduction to CATIA V5

ArcGIS. Tips and Shortcuts. for Desktop

Lecture 2 Mathcad Basics

Data Mining. SPSS Clementine Clementine Overview. Spring 2010 Instructor: Dr. Masoud Yaghini. Clementine

10. THERM DRAWING TIPS

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Transcription:

S.N.Karon An Interactive Plotting and Data-Analysis Package for the IBM PC The Personal Computer Resource CenteratLincolnLaboratoryhas developed a plotting program called EasyPlot to display and analyze technical data on IBM Personal Computers. The program offers researchers a fast, interactive. graphical user interface that creates an intuitive environment for quickly viewing, analyzing, and plotting data. This article describes the program and some interesting design techniques that enhance program speed. In February 1987, the Personal Computer Resource Center at Lincoln Laboratory began the project of writing an easy-to-use, scientific plotting package to run on IBM Personal Computers. One year later, the program. called EasyPlot, made its debut. Since then, EasyPlot has generated a large base of users and, with theirfeedback, has grown into a powerful plot _~ing and data-analysis package. This article tlescribes the four software layers that make up the program, and discusses the programming techniques that create a fast, interactive, graphics-based user interface. It also describes some ofthe unique plottingfeatures made possible by the fast interactive graphics. EasyPlot is built from four custom-written software layers. The top layer is the plotting package.itscales andlabels axes automatically, plots multiple curves on a graph, stacks graphs in memory, and lets the user interact with the data and the graph. The lower three layers form the graphics system. They draw objects on the screen, manage windows, and provide the pulldown-menu interface. The bottom layer-the screen-drawing routines-consists of over 3,500 lines of assembly code. The other three layers consist of nearly 30.000 lines of C code. The Plotting Package EasyPlotreadsASCII andspreadsheetfiles in any row-and-column format. It also generates curves and surfaces from mathematical equations entered interactively. EasyPlot candisplay 'The Lincoln Laboratory JowTlal. Volume 2, Number 2 (I 989) data in x-y pl()ts (linear, semilog, and log-log), polar plots {full circle, hemisphere, and quadrant), contour maps, color maps, and 3-D surfaces. Figure 1 shows three plots of the same data-a 3-D surface, a contour map. and a color map-inthe screen-displayinterface. Oncedata is on the screen, EasyPlot offers a number of analysis tools that, at the click of a button, let the user view and interact with the data. The usercan smooth data; calculate best-fit polynomials and splines; compute means. standard deviations, and histograms; perform numerical integrations; run FITs (includinghammingand Kaiser windows); and apply mathematical transformations to data. The mathematicaltransformation feature includes the capability to perform math on multiple curves, such as adding two or more curves together or dividing one curve by another. Figure 2 shows an example of curve generation and transformation. For printed output. EasyPlot producesjournalquality graphs on several devices, including Postscriptprinters. Figure 3 showsfoursamples ofhard-copy output. As the program has grown, each new feature has been carefully integrated into the program to maintain consistencywith otherfeatures and to preserve the program's ease of use. Computing a complex FFT. for example. is as easy as settingtherange onan axis. Features have been designed to work with all the graph formats whenever possible. The equation parser, for example, handles polar and surface equations as well as x-y equations. To compute an x-y 229

Karon - Analysis Packagefor the IBM PC curve. the user enters a function ofx or y at the keyboard: y = 2x"'3-3x. To compute a polar curve. the user enters a function of rand t (where t represents 8) instead of x and y: r = cos (3t). To compute a surface. the :userenters a function of x and y: z = 3sin(x) + 5cos(y). The program automatically distinguishes between equations and files. so the user can focus more on what to plot and less on how to plot it. EasyPlot's fast. interactive interface makes a number of unique and powerful features possible. For viewing data. a zoom feature lets the user draw a rectangle anywhere on the graph and zoom onthatrectangle (Fig. 4). The usercan zoom repeatedly and magnify to any level. After zooming. a scroll-bar feature lets the user quickly scroll the graph from one portion ofdata to another (Fig. 5). A digitizing feature displays the graph coordinates of the cursor at all times (Fig. 5). For labeling, an annotation feature lets the user type annotations anywhere on the graph. If an annotation pertains to a specific data point or curve, the user can draw lines directly on the graph to point from the note to what it describes (Fig. 2[b)). The user can drag annotations. lines. and legends around the screen to fine-tune their positions. These features combine to create an intuitive. hands-on method for working with data and graphs. The plotting package. ortop layer ofeasyplot. has grown significantly since the first version became available at Lincoln Laboratory. User requests guided the growth ofthe program. and as a result every feature serves a need in science and engineering. Fig. 1-(top) By clicking the 3-D buttons on the side of the screen, the usercan rotate a 3-D surface to anyorientation, turn perspective on or off, and remove hidden lines. The program can also animate the surface by rotating it automatically. (center) Contour plot of the surface data shown in top figure. (bottom) Colormap ofthe surface data shown in top figure. Drawing Objects on the Screen With a graphics-based interface. the computermustdrawobjects on thescreenextremely fast. Sluggish graphics erode the usefulness of an interactive program. To overcome this diffi- 230 The Lincoln Laboratory Journal. Volume 2. Number 2 (l989)

Karon - An Interactive PlaUing and Data Analysis Pac/cage Jar the IBM PC efficiency of the inner loop. To minimize the number of instructions in the loop, the processor's internal registers are utilized to hold as many variables as possible and to limit data movement that does not contribute to the computations. Careful design eliminated many instructions that only move variables between registers and temporary storage in memory. As a result the loop was reduced to 23 assemblycode instructions. Seven of the 23 instructions use variables that remain constant for each line. Without performance considerations, the constants would be computed, stored in memory, and accessed from inside the loop. Accessing memory, however, is three to four times slower than accessing a register or having the constant as part of the instruction. Placing the constants in registers was impossible because of the PC processor's limited number ofregisters. Instead, instructions using constants were assembled with dummy immediate data (immediate data becomes part of the actual instruction). and code was added to write the constants over the dummy data before entering the loop. With this locally self-modifying code, the number ofclock cycles for each pass through the loop was reduced from 195 to 118, which resulted in a 65% increase in speed. Fig. 2-EasyPlot can generate curves from equations and canperform mathematicaltransformations on curves. (top) Curves 1 and 2 were generated with equations y = sin(x) and y = 0.1 sin(1ox). (bottom) Curve 3 was created by adding curve 1 and curve 2 in the top figure with the transformation equation y = y 1 + y2. culty, EasyPlot employs a set of optimized routines for drawinglines, text, and otherobjects on the screen. These assembly-code routines provide some of the fastest graphics attainable on the PC, and function as the foundation, or bottom layer, of EasyPlot. The line-drawing routine is an implementation ofbresenham's algorithm [1). The algorithm provides a computationally simple method for drawing a straight line on a raster device. An inner loop iterates once for each pixel along a line; since there are many iterations, the overall performance of the algorithm depends on the Managing the Screen Though sophisticated in their implementation, the screen-drawing routines do nothing more than turn pixels on and off. Their efforts last only until other objects are drawn in the same video space. When the user pulls down and releases a menu, everythingundemeath the menu must be redrawn. Records must be kept on every object drawn so that they can be redrawn when necessary. In EasyPlot, all the line segment and characters are objects, as are circles, rectangles, and their filled counterparts. Other shapes are constructed from these objects. A triangle, for example, is constructed from (and recorded as) three line segments. A windowing package that maintains these records is the second software layer in EasyPlot. The windowing package allows graphic ob- The Lincoln Laboratory Journal. Volume 2. Number 2 (1989) 231

Karon - Analysis PackageJor the IBM PC...;....;......:. Graph Title <:r----'v top curve G---- J middle curve G--------El bottom curve ",g; i14im, y = +2.97E-3x 5-6.52E-2x' +4.86E-1x 3-1.36x 2 +8.40E-1x' +9.69E-1, var:6.57e-002 / r cubic spline 1.0 \ \ \.5 10 L- ------' ~'----_---='----'- 10 30...J 100 300 1000 o o 2.// '- 5th order polynomial 6 8 X-axis title Fig. 3-Examples of EasyPlot printouts. The user can select any size within an 8 1/2" by 11"page for printed graphs. jects to be grouped into logical units, or windows. The application programs (in this case the plotting package and pull-down menu layers of EasyPlot) can place logically connected objects such as the characters in a word into one window. Once grouped in a window, the objects can be drawn, hidden, or moved as a unit. Windows can be large or small and can overlap. A window obscures other windows only if the application package draws area-filling objects in it. The windowing package maintains lists of objects that have been drawn in each window. With these lists, it can display and hide windows upon request. Itdisplays a window by redrawing the objects belonging to that window, and hides a window by redrawing all the other windows that overlap the one being hidden. The pulldown menu system, for example, draws each menu button in a separate window. When the userpulls downa menu, the windowingpackage redraws the buttons' windows and the menu becomes visible. When the user releases the menu, the windowing package redraws all the windows overlapping the menu and the menu disappears. If the screen-drawing routines are fast enough, the redraws appear to be instantaneous. Even with fast drawing routines, however, redrawing windows with large numbers of objects can result in visible delays. To maintain performance under these conditions, EasyPlot's windowing package looks at the coordinates of each object and redraws only those objects which actually overlap the area being redrawn. With many objects on the screen, a simple search through object lists to look at each item's location produces noticeable delays. To alleviate this problem, EasyPlot's windowing package breaks a window into 16 segments. Seventeen object lists are maintained for the window: one for each ofthe 16 segments and one for a default 232 The Lincoln Laboratory Joumal. Volume 2. Number 2 (1989)

.". Karon - Analysis PackageJar the IBM PC Fig. 5-Vertical and horizontal scroll bars let the user scroll quickly from one portion of data to another. A cross-hair feature displays the cursor's coordinates. The Pull-Down Menus The third software layer in EasyPlot is the pull-dawn-menu system. Pull-down menus provide quick access to all of the program's features. When the user selects one of the buttons at the top ofthe screen, a menu appears or is pulled down (Fig. 6). Each button in the menu is labeled to describe its function; the user never Fig. 4-(top) To zoom on data, the user draws a rectangle on the screen. (bottom) The data in the selected rectangle now fills the screen. list. Ifan object lies entirely within a segment, it is recorded in the list for that segment. Ifit spans more than one segment. it is placed in the default list. Thus, only the default list and lists of those segments which overlap the area being redrawn need to be searched for objects to be drawn. EasyPlot divides windows containing user data into segments because large data sets can result in several thousand graphic objects in one window. Since most ofthe redrawing results from pulling down menus, and each menu overlaps a small portion ofthe graph, this technique can easily reduce redrawtime by a factor ofthree or four. Fig. 6-The pull-down menus are always available at the top of the screen. Each menu button is labeled to describe its function. The Lincoln Laboratory Journal. Volume 2. NwniJer 2 (1 9a9; 233

Karon - Analysis PackageJor the IBM PC needs to memorize commands or wade through pages of text menus. The user selects a menu with a mouse, with keyboard cursor keys, or by typingthe first letterofthe menu label. Whenthe user. runs a button, results appear immediately on the graph. A unique letter sequence can be typed at the keyboard to selecteach button. EasyPlot's menu system can read the same letter sequences from a file to invoke menu buttons in batch mode. By providing EasyPlot a file containing batch commands, the user can automatically plot and print any sequence of graphs. Summary With a unique combination ofpower, flexibility, and ease ofuse, EasyPlot has become a tool used dailyby researchers at Lincoln Laboratory. It accepts a wide range of input formats, and prints high-quality graphs with a variety of devices. EasyPlot is more than a convenient tool for making graphs, however. It creates an intuitive, interactive environment for viewing, analyzing, and plotting data. Reference I. J.D. Foley and A. Van Dam. Fundamentals ojinteractive Computer Graphics (Addison-Wesley. Reading. MA.1984l. p. 433. STUART KARON was an assistant staff member in the Computer and Telecommunications Systems Group. He received a B.S. in electrical engineering and an M.S. in computer science from Brown University. MIT recently licensed EasyPlot to Spiral Software ofbrookline. Mass.. to market and continue developing the program. 234 The Lincoln Laboratory Journal. Volume 2. Number 2 (1989)