bug-plotutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-plotutils] GNU graph (GNU plotutils) fails to accept data files wit


From: Robert L. Masterson
Subject: [Bug-plotutils] GNU graph (GNU plotutils) fails to accept data files with labeled points, which UNIX V7 graph supported
Date: Sat, 7 Sep 2019 22:45:20 -0400


To whom it may concern,

This bug report is for GNU graph; the bug appears to exist in all versions based on the current (post-1995) plotutils, but the bug was not present in the earlier GNU version of graph that was part of the 1991 "GNU Graphics Utilities" package.

GNU graph is a missing an important feature that makes it unable to process a large class of data files supported by UNIX V7 graph (and all subsequent versions of graph derived from it) and by the graph that was distributed as part of the GNU Graphics Utilities.  Particularly, the default "ASCII" format to GNU graph supports only numbers specifying the point location (either coordinate pairs, or single values if the --auto-abscissa option is specified) and does not support the optional label for the point that is supported by UNIX V7 graph.  In fact, GNU graph stops processing a data file without any error diagnostic as soon as it encounters the first label.

While stopping processing without any error diagnostic is clearly a bug, it seems more of an oversight that the point label functionality was not included in the current GNU graph.  The comprehensive plotutils documentation describes the various data formats, and labels are not mentioned.  In other words, the lack of point labels is consistent with the current GNU graph's documentation.  (But not with the previous GNU Graphics Utilities graph's documentation, which describes point labels in the data format in some detail.)

I find it odd that this functionality was not included in the replacement for the earlier GNU graph, because the text rendering capabilities of the modern GNU graph (as exercised, for example, by axis labels) are vastly superior to what was available in either V7 graph or the GNU graphics version of graph, but support for files containing point labels was not implemented.  I consider this a bug, but if it was a conscious implementation decision to make GNU graph incompatible with UNIX V7 graph and the previous GNU version, I suggest reconsidering that decision.

For reference, the relevant portion of the UNIX V7 graph(1g) manual is provided below.  I underlined the key language concerning the supported data format.

NAME
        graph – draw a graph

SYNOPSIS
        graph [ option ] ...

DESCRIPTION
        Graph with no options takes pairs of numbers from the standard input as abscissas and ordinates of a graph. Successive points are connected by straight lines. The graph is encoded on the standard output for display by the plot(1) filters.

        If the coordinates of a point are followed by a nonnumeric string, that string is printed as a label beginning on the point. Labels may be surrounded with quotes "...", in which case they may be empty or contain blanks and numbers; labels never contain newlines.

...

And here is the description of point labels in graph data files from the former GNU implementation, in the GNU Graphics Utilities documentation:

The format of input to graph

As mentioned above, by default graph reads ascii pairs of values, x and y coordinates, from the standard input or files specified on the command line. Optional labels may be placed after each coordinate in the data file. The label ends at the end of the line:

3.0  0.4 this is a label for point (3.0, 0.4).

The label must be enclosed in double quotes if it would otherwise be appear to be a coordinate:

3.0  0.4 "5.0 looks like a value."

You can use the `-b' to break lines after each label in the input. Use a pair of empty double quotes if you need to break a line, but do not need a label.

0.0  0.0
2.0  0.0
1.0  0.2
""
0.0  0.1
2.0  0.2
4.0  0.3

You can also break cuves using `-M' option to break lines whenever the abscissal values between successive pairs of points decrease. When using `-M', each continuous curve has monotonically increasing abscissal values.

0.0  0.0 first data set
2.0  0.0
4.0  0.2
0.0  0.1 second data set
2.0  0.2
4.0  0.3

graph will automatically generate abscissal values for you if you specify the `-a' option. Only ordinate values are given in the data, and the data is then assumed to be equally sampled along the abscissa. The values following `-a' on the command line specify the sampling interval and the abscissal value of the first data point.

0.0 0.1 0.2 label for point (2.0, 0.2) 0.3 0.2 0.3

Thank you.
 
Sincerely,

Robert L. Masterson
address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]