Archive | Updates RSS feed for this section

DatPlot Version 1.3.5: New File Options

Version 1.3.5 is a minor update adding two new file formats that can be parsed and plottted. One is output from the popular flight simulator X-Plane ( DatPlot can read the output file generated by either version 9 or 10 of X-Plane. Several engineering companies use X-Plane for early simulation purposes and the need arose to plot X-Plane generated data in DatPlot.

The second addition is for data files that are delimited by multiple spaces instead of a single space or a single tab character. For example:


In this case, each minus sign or dash represents a single space character. Regardless of the number of spaces, DatPlot strips them and parses the file accordingly. Obviously the same number of columns must exist throughout the file for the parsing to succeed.

DatPlot Version 1.3.3: Bug fix

DatPlot 1.3.3 fixes three bugs that were brought to my attention (thank you!).

  1. A user had a data set where the time over midnight changed from 23:59:59 (HH:MM:ss) to 24:00:00 instead of 00:00:00. DatPlot throws an error since it cannot interpret a time of 24:00:00 (a .NET framework issue). Now, when such time data is imported, DatPlot will replace any times with 24:xx:xx with 00:xx:xx and increase the day by one.
  2. When importing CSV data, any blank lines present were shown in the import preview window. These lines were also given their own line numbers. Unfortunately, internally, DatPlot does not count a blank line with its own line number. Thus, setting the data header, unit and starting line numbers based on the preview numbering resulted in misaligned starting points. Now, DatPlot will strip out any blank lines when showing the data import preview so the line numbers line up with what is use internally.
  3. DatPlot’s CSV reader considers a leading hashmark (#) as a comment symbol. Any data lines leading with this character will not be displayed in the import preview as they are ignored during the data import.

DatPlot Version 1.3.2: Bug fix

Second bug fix in a short time. I wish they weren’t required in the first place, but I’ll squash them as they are found.

A user made me aware of a problem when using time based x-axis and the Data Swap feature (thanks Guillermo!). If a time based x-axis parameter was used, DatPlot crashed when swapping input data. Version 1.3.2 fixes this bug. It can be downloaded from the Download page.

DatPlot Version 1.3.1: Bug fix

I was on vacation last week when a DatPlot user made me aware of a bug that was introduced in Version 1.3. When removing a curve, DatPlot crashed. Not a good thing at all. Back from vacation, I determined what the problem was and squashed the bug. I also fixed an error introduced in Version 1.3 which did not allow intersection data export anymore. Version 1.3.1 is now the latest version of DatPlot. If you are running Version 1.3, please update to 1.3.1 to avoid this bug.

Many thanks to Claude for making me aware of this bug.


DatPlot Version 1.3 Now Available

Version 1.3 of DataPlot is now available. It includes a new feature and a bug fix.

Version 1.3 allows the user to show or hide an information box in the upper right corner of each graph pane that displays the minimum/mean/maximum point values for each curve in the pane. This feature is accessed via the menu (Edit > Toggle Min/Mean/Max) or via the keyboard shortcut CTRL+M. Note that only the points visible on the graph pane are used to calculate the min/mean/max values. Any points of the curve that are not visible on the pane are ignored.

Example of Min/Mean/Max curve information shown


In addition, with Version 1.3 it is now possible (again) to swap data once a saved plot file has been opened. This was the originally intended functionality, but was broken with Version 1.2.

Where’s The Next Version?

It’s been a while since I posted an update. Both to the blog and to DatPlot. Truth is, I’ve been busy with bill paying work. But it looks as if I’ll have some time in the near future to dedicate toward improving DatPlot.

As mentioned in previous posts, I hope to add multiple Y-Axis capability. Some people like to just have one plot showing all their data instead of using strip charts. But to support a larger number of data parameters, it would be handy to have multiple Y-Axis on the left and right sides. I plan on getting back into investigating such an option.

Another idea I have for DatPlot is to support contour plots. Meteorology is a hobby of mine, and I love weather data contour plots. I think DatPlot would also benefit from supporting contour plots.

Stay tuned, more to come!

DatPlot Version 1.2 Is Now Available

As mentioned in a previous blog post, DatPlot V1.2 significantly changes how the DPM file format is structured. In addition to saving the actual plot data, all data in the data table is now saved as well. The DPM file is now fully independent of the original source data file and the DPM file is fully portable.

It also means that DPM files opened with V1.2 are automatically updated to the new file format. In other words, if you open a V1.0/V1.1 saved DPM file in V1.2, your old DPM file will be replaced with the new DPM file format and you will not be able to open the DPM with V1.0/V1.1 anymore.


Besides this change in DPM file format, the two new additions to DatPlot V1.2 are time/date formatted X axis and pasting new data into the data table.

Time/Date Formatted X Axis

DatPlot can now read time/date formatted input such as 13:11:59.075 (HH:mm:ss.fff). As long as the time/date value in the data stream corresponds to the format supported by Microsoft Excel, DatPlot should be able to read such values. During data import, DatPlot checks every data column to see if the values in it can be parsed as a date/time value. If so, that column is internally identified as a date/time parameter. When the user selects a date/time parameter for use as the X axis parameter, DatPlot displays a dialog so the user can choose how to display this date/time parameter:

Copy/Paste New Data Onto Data Table

Starting with version 1.2, DatPlot allows the user to copy column data from an external source, such as an Excel spreadsheet, and paste the data into DatPlot for plotting. This is often desired when additional parameters are calculated from the source data file in Excel and those calculated parameters need to be plotted along with the source data parameters. In this case, the user can perform all calculations in a spreadsheet and simple copy/paste the calculated column values into DatPlot for plotting.

Note that only a single column at a time can be pasted into the data table (no data block paste support). Also, if the pasted data contains more rows than the data table contains, only the number of values corresponding to the numbers of rows are pasted. Finally, if DatPlot is closed after new data was added without saving a DPM file, all new data addition is lost.

For more information on how to copy/paste new data into DatPlot, please refer to the DatPlot help file under the entry How To Paste New Data Into The Data Table For Plotting.

DatPlot Version 1.1 Is Now Available

After only four days of launching DatPlot, I decided it was already time for version 1.1. Not due to any bugs submitted, but due to a couple of annoyances I came across and the desire for DatPlot to be a little more in-your-face about checking for updates.

Since I hope to update DatPlot every 6-8 weeks, depending on workload, feature suggestions and required implementation time, I decided there had to be some mechanism to prompt the user to check for updates. With version 1.0, you could manually check for updates (Help > Check for updates), but I wanted DatPlot to do its part to periodically remind the user. I decided not to go as far as perform update checks in the background every time DatPlot launches, mainly because there are likely users behind corporate firewalls who may not have access to the internet.

Instead, DatPlot will prompt the user every 28 days (4 weeks) to check for updates at the Download page of this site:

As the prompt states, the user can easily disable this reminder in the Options settings, if desired. Since the reminder occurs only every 4 weeks, I would recommend against doing that, however, so you will be running the latest version of DatPlot.

Two other improvements were incorporated into version 1.1. Previously, if data was plotted and the user selected Open Existing Plot, the plot was cleared before the user could select a DPM file to open. This could lead to accidental loss of the currently plotted data (loss of work!). Now DatPlot will not clear the plotted data until the user selects and opens another DPM file and therefore leaves the user a chance to cancel out of the Open DPM process without losing work.

Finally, the prompt shown when loading new source data (and now also when opening an existing DPM file) was reworded to more clearly communicate to the user what is happening using a simple Yes/No question.


Dogfooding DatPlot

I’ve been fortunate enough to be dogfooding DatPlot on some engineering work I’m currently doing for a client. Dogfooding is a term used when you use your own software on a real-world project to see how it works. So far, I’m very happy with DatPlot. The things I like about DatPlot and what have made me far more efficient than in the past doing similar work:

  • Data Source Swap: It took me 45 minutes to generate a dozen strip chart plots by simply swapping source data once I had the original chart set up, moving the three event lines to the proper event locations and rewording the title information. That’s under 4 minutes per plot on average! Using MS Excel to achieve similar plots previously took me 3-4 times as long, maybe even longer (ok, not quite similar, as generating strip chart plots in Excel is a pain in the rear verging on impossible to say the least).
  • Event Lines: In this case they have come in very handy as I can place them, move them where I want them and simply read off the curve intersection points to extract the desired information. Previously I had to manually read off the data points – often using pencil and ruler on a paper printout (also a pain if the scale is tight) – or dig in the raw numeric data and try to find the exact row I’m looking for where the event occured.
  • Zooming/Panning: It’s very refreshing to be able to dynamically zoom and pan on your chart to get the look you want. I did find myself setting axis scales manually once I knew exactly what scale I wanted to display. It simply provides more exact control this way.
  • Chart Annotation: I’m glad I decided to add a chart annotation feature, as I’ve been able to use it to convey additional information on the chart. This way everything is available electronically on one chart.
I’ve also discovered several shortcoming, some of which I have already addressed, some of which I plan on addressing soon:
  • DPM Saving Mechanism: DatPlot does not save the full data source file (typically a CSV file or similar) as part of the DPM (DatPlot Master) file, it only saves the numeric data data for the parameters plotted in the DPM and the path to the data source file. Why? To keep DPM file sizes small and prevent data duplication. When opening a DPM file, DatPlot expects the data source file to be in the saved location, otherwise it cannot load the full data set, and no new data can be added to the plot. Well, this is not a good solution when DPM files are to be shared with other people using different file folder structures.
    I’m changing the setup where the DPM still does not save the full data source file, but now allows the user to browse and select the data source file when DatPlot cannot find the original data source file, either because it was moved or renamed. Alternatively, you can choose not to update the file location and DatPlot will still show you the saved plot, but you will not be able to add additional parameters to the plot, because the source data is not available.
  • Line Addition: I needed to add a simple straight, hand drawn line on the charts to show a slope. I added this feature to DatPlot.
  • Curve Fitting: I want to get a curve fitting system implemented sooner rather than later as I think it will be helpful and needed.
It’s been a great experience using my own software for a real-world project. I’m still hoping to make version 1.0 of DatPlot by the end of August, all depending on how much time I have to finalize things. Keep checking this blog for updates!

August 2011 Update

DatPlot Changes & License Decision

DatPlot has been in the hands of four beta testers for a couple of weeks now. Through their feedback, I’ve been able to add a few useful features to DatPlot in addition to fixing a few bugs found. Specifically the following changes were made to DatPlot (thank you to all beta testers!):

  • Added ability to add/move/edit/remove text annotations on graph pane surface
  • Added ability to manually set X, Y and Y2 (right Y axis) axis minimum and maximum range values
  • Added ability to use logarithmic scale for X, Y, and Y2 axis
  • Added ability to plot data with partially missing (blank) parameter values
  • Added help documentation
  • Numerous bug fixes….
I’ve also made a decision on how I want to offer DatPlot. I decided to go with a simple freeware license. Basically you will be able to download for free and use DatPlot for your own (legal) needs, however you wish. For the full legal juiciness of the license, you will have to wait until you can download and install DatPlot, hopefully by the end of August 2011. More soon!