|
From: Daniel J S. <dan...@ie...> - 2015-01-27 09:06:30
|
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); 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? I'm for allowing more than seven columns (note a recursive use of sscanf seems required), but at the same time internal memory storage should be adjustable too--a much bigger project. That is, for large data sets like images, having seven elements for each point could use a lot more memory than necessary. Dan |