Hi,


On Tue, Jan 6, 2015 at 10:37 PM, Alexandre Bergel <alexandre.bergel@me.com> wrote:
Hi Doru,

The API is interesting. As I see it, this will be limited to things like bar, plots or line graphs. For example, a spider chart will not work with this one, but it will use a builder of its own, right?

Yes. Currently, spider chart shares very little from what we have. This is why it deserves its own builder. Maybe this will change in the future, but for now it works well.
But the way, we call Kiviat what you call Spider chart. Just have a look at RTKiviatBuilder. 

I saw it already. I asked about the future intention. What can be reused between Grapher and Kiviat are the axis logic. This is what we had in EyeSee and it worked well.

 [...]
- I do not quite understand how to distinguish the difference between DataSet and StackedDataSet.

Yeah, not easy to grasp. Consider an histogram and a scatter plot.
You will define an histogram as a list of values, e.g,. 4, 5, 6, 7

What you call a histogram is actually just a bar chart :). The histogram is a way to represent the distribution of data, not individual data points. I would rename the vocabulary to use the term "bar (chart)"  instead of histogram.

You will define a scatterplot as a list of points, e.g., 2 @ 3, 5 @ 6, …

An histogram is obtained from a list of objects, and a function Y to obtain the values.
A scatter plot is obtained from a list of objects, and _two_ functions X and Y to obtain the points.

When you do not need to specify an X, e.g., an histogram, then you need a RTStackedDataSet.
When you need to specify an X, e.g., a scatter plot, then you need a RTDataSet. 

Is it clear? Maybe the vocabulary we use is not obvious. 

Yes, I understood this before but the names do not say that. Some names that come to mind are:
- RTUnidimensionalData/RTBidimensionalData or
- RTXData/RTXYData.

But, I would want to raise another point: 

The decomposition is now based on the kind of data and it is the data that specifies if it wants to be represented as bars of lines. This can work if we consider bars and lines. However, if you want to implement a real histogram it won't work well because it would require you provide a list of items and a function to group them into chunks and you would show those chunks. So, you would build a RTHistogramDataSet. What's more, this histogram would work only with bar shapes.

So, perhaps a better decomposition is via the chart type. At least, this is what we learnt from EyeSee and Graph-ET. Of course, we could also build another RTHistogramBuilder altogether, like for Kiviat, but we might be missing reusability and uniformity. I think it would be useful to think about the implications at this point.

Cheers,
Doru
 


--
www.tudorgirba.com

"Every thing has its own flow"