Opened 3 years ago

Last modified 3 years ago

#2151 new feature request

Scatter plot view for visualizing n-dimensional data points

Reported by: abeham Owned by: swagner
Priority: medium Milestone: HeuristicLab 3.3.x Backlog
Component: Analysis.Views Version: 3.3.9
Keywords: Cc:


Currently, there is a ScatterPlot which contains Point2D<double> that can be viewed. Often one comes across data that has multiple dimensions which should be viewed by e.g. selecting two axes to compare these dimensions. The existing RunCollectionBubbleChartView comes closest to this functionality, but is specific to runs and runcollections.

A more generalized view should be implemented. The view should accept IEnumerable<IEnumerable<Point>> where Point is Point { Dictionary<string, double> Values; IContent Tag; }. The outer enumerable would indicate different series and the inner enumerable the points in each series. Ideally, the Point should be able to handle store string and DateTime/TimeSpan data types as well as the view being able to handle them correctly.

Change History (2)

comment:1 Changed 3 years ago by gkronber

I don't understand the reasoning for the data types completely.

Either we work with IEnumerable<Point> where each Point is basically a Dictionary<string, double>, or we work with IEnumerable<IEnumerable<Point>> where each point is either a double, DateTime or string value.

comment:2 Changed 3 years ago by abeham

That was a suggestion by mkommend to have a possibility to group points to different series. The simpler approach would be to have only a single series represented by an IEnumerable<Point>. Both implementations are able to satisfy several requirements I often have regarding visualization.

For me the more important matter would be to have correct handling of DateTime values, though that is more tricky to implement. The tag is also somewhat important since I often want to view all dimensions of a certain point. We discussed that it's probably enough to assume that there is some kind of IContent behind each point.

Note: See TracTickets for help on using tickets.