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:
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