|
From: sfeam <sf...@us...> - 2015-01-27 16:40:14
|
On Tuesday, 27 January 2015 03:06:16 AM Daniel J Sebald wrote: > On 01/26/2015 10:38 PM, sfeam wrote: > > On Monday, 26 January 2015 07:28:19 PM Philipp K. Janert wrote: > >> > >> The new plot style "with parallelaxes" > >> is cute. Unfortunately, it also dumps > >> core - whenever there are more than 7 > >> columns to plot. > > > > The maximum is set at compile time, but > > yes the default is 7. > > > >> 1) This limitation is not mentioned in > >> the doc. (As far as I can see.) > > > > I thought it was, but now I can't find it either. > > That is an oversight. > > > >> 2) Dumping core unconditionally is not > >> a good user experience. It would be > >> better to detect and reject the illegal > >> input and warn the user. > > > > Indeed. > > > >> 3) The limitation to 7 cols (which, I > >> suspect, depends on limitations in the > >> way "using" is parsed) puts the entire > >> plot style into question. The whole > >> point of parallelaxes plots (to the > >> degree they HAVE a point) is to deal > >> with high-dim data, easily exceeding 7. > > > > If you have such a use-case, go ahead and file a > > feature request. It should not be too hard to make > > the axis structures dynamic rather than static. > > The original request for this feature provided examples > > from the literature but none of them had even as many > > as 7 axes in a single plot. So that seemed > > adequate as a default. Failing to check for more > > columns of input than expected is purely a bug. > > Here's the hunk of code from datafile.c that you are referring to: > > /* check we have room for at least 7 columns */ > if (df_max_cols < 7) > expand_df_column(7); > > df_no_cols = sscanf(line, df_format, > &df_column[0].datum, > &df_column[1].datum, > &df_column[2].datum, > &df_column[3].datum, > &df_column[4].datum, > &df_column[5].datum, > &df_column[6].datum); Not correct. That code path applies _only_ to the command plot <foo> using 1:2:... "format-for-using-statement" where an explicit format is provided. > and I'm trying to recall how the internal storage of data points works. > If I'm remembering correctly, there is some type of limitation on the > number of elements of a data point, e.g., x, y, x tolerance, y > tolerance, z (or color), etc. owing to the use of a structure to store > the data. Was the size of the structure up to seven elements, therefore > it was generally thought that only up to seven columns of a data file > line would be used? Is this parallel axes plot using the same limitation? Not relevant. The data for parallel axis plots is allocated dynamically, one array per axis. Ethan |