heal-research / HeuristicLab

HeuristicLab - An environment for heuristic and evolutionary optimization
https://dev.heuristiclab.com
GNU General Public License v3.0
39 stars 16 forks source link

Scatter plot view for visualizing n-dimensional data points #2151

Open HeuristicLab-Trac-Bot opened 10 years ago

HeuristicLab-Trac-Bot commented 10 years ago

Issue migrated from trac ticket # 2151

milestone: HeuristicLab 3.3.x Backlog | component: Analysis.Views | priority: medium

2014-02-04 14:14:20: @abeham created the issue


Currently, there is a ScatterPlot which contains Point2D 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.

HeuristicLab-Trac-Bot commented 10 years ago

2014-02-04 14:32:10: @gkronber commented


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

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

HeuristicLab-Trac-Bot commented 10 years ago

2014-02-04 16:27:00: @abeham commented


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