Opened 13 years ago
Closed 12 years ago
#1869 closed feature request (done)
Display multiple DataTables in one view
Reported by: | mkommend | Owned by: | mkommend |
---|---|---|---|
Priority: | medium | Milestone: | HeuristicLab 3.3.7 |
Component: | Optimization.Views | Version: | 3.3.7 |
Keywords: | Cc: |
Description
It would be beneficial if we had the possibility to compare data tables (e.g., quality linechart) across several runs. Therefore a new view for run collections displaying data tables collected from the contained runs should be created.
Change History (17)
comment:1 Changed 13 years ago by mkommend
- Status changed from new to accepted
comment:2 Changed 13 years ago by mkommend
comment:3 Changed 13 years ago by mkommend
r7978: Removed unused references in HL.Analysis.Views.
comment:4 Changed 13 years ago by mkommend
r7979: Corrected introduced bug in DataTableView concerning adding of DataRows.
comment:5 Changed 13 years ago by mkommend
r7980: Added RunCollectionDataTableView.
comment:6 Changed 13 years ago by mkommend
r7981: Forgot to add extension methods ToEnumerable.
comment:7 follow-up: ↓ 9 Changed 13 years ago by abeham
I think you should yield return item rather than allocating an array for that. Anyway, what's the purpose of that method?
comment:9 in reply to: ↑ 7 Changed 13 years ago by mkommend
Replying to abeham:
I think you should yield return item rather than allocating an array for that. Anyway, what's the purpose of that method?
I thought about yielding instead of returning an array, but I couldn't think of any advantage. yield allocates an iterator which is at least as expensive as the array allocation. yield is lazy which could lead to multiple evaluations (e.g, using Count and iterating). Therefore I implemented the method by allocating an array.
The purpose of this method is just to have a convenient way to call methods that require an IEnumerable with an object, which is quite handy sometimes and does no harm.
comment:10 Changed 13 years ago by mkommend
r7986: Cleared combo box items if selected data table changes.
comment:11 Changed 13 years ago by gkronber
Actually, I think we should not have the ToEnumerable extension at all. I think we don't need a ToEnumerable method for all classes.
comment:12 Changed 13 years ago by mkommend
- Owner changed from mkommend to abeham
- Status changed from accepted to reviewing
comment:13 Changed 12 years ago by abeham
- Owner changed from abeham to mkommend
It's a great feature, that I have long been looking forward to! Thanks for implementing this!
I reviewed the changes r7977:7981 and made some small adjustments. I also removed the extension method again. Currently I don't see that we need this, also I'm not sure if this shouldn't rather return an array of that type and be called ToArray() or AsArray() as it was actually a ToArray() disguising as a ToEnumerable().
- Removed ToEnumerable extension method
- Reset rowNumber to 0 when rebuilding the combined data table
- Some minor changes (moved ctor below variable/property declaration, replaced some obvious variable types with var)
Please have a look at the changes I made and consult with me again or set to release if you're okay with it.
Anyway, very nice to have this in HL!
comment:14 follow-up: ↓ 16 Changed 12 years ago by abeham
Let me just add another suggestion. When viewing "All DataRows" we could ignore the color of the runs and use a different color for each DataRow to better separate which row belongs to which group rather than to which run. But that's just a suggestion.
Another possible feature for the future would be to create a chart similar to the ones known from the financial world where a stock curve is shown as a series of box-whisker items. Or just a simple line with whiskers that would display some kind of confidence interval.
comment:15 Changed 12 years ago by gkronber
I think you mean a candlestick chart. But it is not really applicable to what you are trying to represent here.
comment:16 in reply to: ↑ 14 Changed 12 years ago by mkommend
Replying to abeham:
Let me just add another suggestion. When viewing "All DataRows" we could ignore the color of the runs and use a different color for each DataRow to better separate which row belongs to which group rather than to which run. But that's just a suggestion.
That's an interesting thought which I also had during interpreting. However, it also has it benefits to know which row corresponds to which run, especially if rows of the same runs are somehow correlated. It would suggest we leave it as it is now and track further improvements in separate tickets.
comment:17 Changed 12 years ago by mkommend
- Status changed from reviewing to readytorelease
r8128: Readded ToEnumerable extension method.
comment:18 Changed 12 years ago by mkommend
- Resolution set to done
- Status changed from readytorelease to closed
- Version changed from 3.3.6 to 3.3.7
r7977: Added methods to handle collection of data rows in DataTableView.