College work requires the analysis of experimental data, and one of the best ways to do that is by graphing the data sets. How best to do that? Well, considering that you’re reading this article in a computer-oriented magazine, the obvious answer is to get some software and learn how to have it create publication-ready graphs. If the report on your experiment is due the next day (when was the last time you completed a homework assignment days before it was due?), wouldn’t it be great if you already knew about an easy-to-use, inexpensive program that delivers a graph ready to paste into your word processor? Let me tell you about DPlot!
 |
| Click the thumbnail for full image. (16K) |
DPlot plotting software, written by David Hyde of HydeSoft Computing, provides for several standard plot types: linear, logarithmic, probability, tripartite, polar, and bar charts. Curves and contours can be generated from (x,y,z) data sets imported from a number of sources or entered by hand, or from functions described by f(x,y) and f(t),g(t) equations.
Once the plot is drawn, a number of functions become available. Depending on the plot type, these functions include massaging the data (offsets, multipliers, smoothing, etc), deriving new curves (poly-fit, integrate, differentiate, FFT, from other curves f(Y), etc), and data exploration (curve tracking, interpolation, etc.). You can have as many as 100 curves on the same graph. You can quickly add prepositioned titles and labels, and floating text pointing to specific data points and legends. Superscript, subscript, and symbols (symbol font) in the text were recently added. There is no general-level undo function.
The program has some minor problems and a few major ones. The minor problems are easily worked around and will not cause any lengthy delays in getting your plot. One of the big problems is its inability to completely plot an equation where a divide by zero might occur. Some of the other graphing programs catch this and use e (epsilon), a very small number, as a substitute for zero. For example, sin(x)/x produces the plot shown to the left. A way to avoid a divide by zero situation is to use a start, stop, and increment that skips over zero. For example, Start(-3.05), Stop(3.05), Increment(0.1). In this case, the equation is evaluated at
{…, -0.15, -0.05, 0.05, 0.15, …}
In this latest release, a prior problem that had me perplexed has been fixed as well as several others. Basically, any function that was derived from other curves would IPF—the Y3=f(Y1,Y2) function, for example. DPlot also does not yet understand p (pi). Hyde suggests using instead 4*atan(1.0). He says pi should be available in the next version, perhaps along with the ability to label tickmarks in pi-increments.
DPlot also includes API hooks whereby programmers can output data and drawing commands from Visual Basic and C applications and has "macro" capabilities. Examples of each are included.
An unregistered DPlot puts a noticable watermark in the middle of the plot printout and exported image (Enhanced Metafile). You are not made aware of this when you visit their Web site, nor when you install it. Keep this in mind if the plot you are going to submit to your instructor must look "professional." A big fat "Eval Copy" in your plot may cause some snickering. If you save the plot as an Enhanced Metafile and then load the resulting image file into a metafile editor, you can fine tune your plot.
The 30-day evaluation version checks your system clock and if the date ever gets set backwards, it will refuse to run from that point on.
 |
| Click the thumbnail for full image. (17K) |
Why use DPlot when Office has a chart utility? With DPlot, so much more can be accomplished and the manner of entering data is much closer to how you plotted your own graphs by hand in high school. I’m not that familiar with Excel and its chart wizard, and I would have wasted several hours coaxing a spreadsheet to give me what I wanted, that is, if Excel could have done it in the first place. I was able to bang out a complete graphic for a college scientific paper in less than 15 minutes from the time I finished installing it. (Yes, the "Eval Copy" watermark was there. The instructor didn’t mind.)
I talked to David Hyde:
What prompted you to write DPlot?
I started tinkering with graphics shortly after the first PCs were available, and developed a nice plotting program before long. There are two main forces behind DPlot’s development. In my real-life job, we frequently plot large data sets normally consisting of 128K or 256K points. At the time DPlot was originally developed, there just wasn’t anything available on a PC at a reasonable price that would properly handle these data sets. So one of my first goals was to have DPlot handle large amounts of data efficiently. And, making DPlot available on the Internet opened the floodgates for user suggestions. Many of the program features you see today are the direct result of interacting with users who I’d never have been able to speak with otherwise.
Do you have any academic background in math?
Yes, my degree is in Civil Engineering rather than programming.
Where did you learn to program?
I learned the basics in an engineering class typing Fortran on punch cards back when dinosaurs roamed the earth. Most of what I know of Windows programming was self-taught with a lot of help from Microsoft reference materials. I’ve been lucky to work with and pick up pointers from a couple of very bright people on large programming projects.
What else have you written?
Sadly, not much that the general public would be interested in unless they share my Quake 2 affliction. I’ve written many different weapons effects programs dealing with a variety of military problems, but they are of course restricted to a relatively small audience. I suppose that’s what I’ve enjoyed the most about working on Dplot—having the handcuffs removed and interacting with a much larger audience.
DPlot v1.52
$25.00 (discounts on multiple seat licenses)
$25.00 for the entire Junior or Senior High student body
www.dplot.com
For Windows 95 and up.
1.33 MBytes