DataGraph Forums › Technical Support › Feedback and Suggestions › Row selection and appearance
Three suggestions that would greatly improve the data exploration functionality of data graph. As background, I work with geochemical data where each row represents a sample and each column a concentration or value for a different measurement on that sample. Our samples are then organized into different groups, although their assignment can be dynamic as you explore the data:
1) Adding a function to “turn on” or “turn off” rows, similar to how currently columns can be elected with a check box to “show” or not, but when the row is not checked, its data will not be plotted. I know there are ways to accomplish this now through filters, but it is not easy to do if you just want to quickly turn on and off display of a single point or two.
(2) The global variables are a great start for assigning color/symbol to certain data, but it would be great if this could also be done on a row-by-row basis, visually. Then it would be easy to manually select a single or a couple of samples [rows] and change their color/symbol to highlight them on the plot. I’m accomplishing this now by having a “group” column assigned to a global variable, but this can be a bit cumbersome to modify.
(3) It would be *really* excellent to have a dynamic data selection tool on plots, where a polygon (not just a rectangle or circle) could be drawn around groups of data on a plot to “lasso” them, and then highlight those data point’s rows on the table and even assign a new symbol type for them, that would then be updated on all other graphs. I know there are now some ways to do this through filtering ranges of certain values, but it would be very powerful and helpful to be able to do this dynamically on an x-y plot, to select for instance a cluster of data.
I recognize these may not be easy to implement, but they would be a huge benefit for this program for folks doing geochemical data exploration.
Let me start chewing at this 🙂 Thank you for putting out these thoughts and I can’t address everything at once. Some of these points I have reasons why not to do, others I will need to think about a “DataGraph way” to accomplish this.
I will think about other ways to select data in the table. Currently you can control-click on a point to select it in the table. If you hold down the shift key it will add to the selection.
The selection however is purely a way to prepare rows for either overwriting them or deleting them and is not used as a way to affect the drawing. That is deliberate, since I don’t restore the selection when you open a file and a lot of actions will deselect the row selection. That means that row selection is too brittle. The DataGraph way is to set things up structurally and the file is describing a state that can be fully described in the stored file, you can undo/redo actions to change that state and it should be easy to change the data and actions. Another key design goal is to make the same approach work for 20 rows as 200, 2000, … Very quickly row selections in a table will require vertical scrolling.
The filters (mask is DataGraph) is the oldest and most fleshed out way to do this. More recently we added a mask column that has a sub-set of the filter options in a column so you can select a sub-set of entries there.
I’ve started to add interactivity to the graph using click actions (enabled through the gear menu for that command). That allows you to for example highlight a single point by using the click action of a Points command to set a global variable to the row number you clicked on. This variable can then be used in a mask/filter to highlight the point. I also added a new variable type – Text Set – that allows you to create a check list of entries and the click action can toggle those entries on and off and then the drawing command can draw that. We just added an example to the help page for the Text Set. That means you have two drawing commands, one to draw all of the points and handle clicking, another to draw on top of that the selected points based on the filter.
This is where we could add an additional selection mechanism. But the selection should be changing data in either a column or global variable. Maybe this is done through more click actions, maybe it is done by using a special toggling column that is the recipient of click actions. Maybe there is a lasso tool, but graphs can be very intricate with layers of points, lines, histograms box plots etc and it needs to be made clear which command you are directing this to.
The best way to evolve this is based on data and use cases. If you could share a data file to make the conversation concreate that would be great. And ideally a data set that can be shared with the community and included in our Online Examples mechanism that is in the beta and will be part of 4.5. Not all data can be released like that, and we could certainly create a fake data set with the same structure if you can share a data set but don’t want it made public.
This addresses hopefully (1) and part of (3).
DataGraph Forums › Technical Support › Feedback and Suggestions › Row selection and appearance