Closed MattFerraro closed 6 years ago
Another cool example of the "AND" operation is the tycho star catalog:
I highlighted stars of a certain color in blue (bottom quartile of the bottom left graph). Then I highlighted just the stars with a low number of observations (bottom quartile of top left graph) in yellow, but only pulling from the blue bucket. What you see in the ra vs dec graph (upper right) is the galactic core in blue, with yellow prolate spheroids of uncertainty on top. I believe this tells us that the galactic core is pretty well observed in this data set, except for in the two yellow regions.
Closed because I merged this behavior separately a few months ago
This is a fairly substantial change to take us from 1 highlight brush (blue) to 3 highlight brushes (blue, green, yellow). The UI paradigm is substantially different from the original viewpoint's, so let me pitch you the whole idea:
Points do not have a single color. Points exist in the red bucket and can also get copied into the blue, green, or yellow buckets. The buckets will always be drawn in the order red-->blue-->green-->yellow, so if a point appears in multiple buckets, its display color will be whichever is drawn last. In this way, the highlight brushes are somewhat akin to photoshop's idea of layers. A potential improvement in the future is to use a drag + drop list (like this one) to order the brushes at will, instead of a hardcoded order. We could also add a check box to optionally hide a brush layer entirely.
In addition, the tab area on the lower right offers plenty of screen real estate to host a color picker, so you could potentially change the colors of the brushes at will.
One interesting wrinkle is what to do with the
i
key, which currently inverts the selection. If I'm using the green brush and I have 10% of the points highlighted, tappingi
will simply take every point that isn't in the green bucket and put it in the bucket, while taking every point that is already in the green bucket and putting it out. At the end, I will have 90% of the points in the green bucket, and the blue and yellow buckets will remain unchanged. This can be surprising behavior if say, 100% of the points are already in the yellow bucket, because in that case all points will just stay yellow. Still, I think layers is a reasonable abstraction for this concept.Multiple brushes make it easy to illustrate "OR" ideas. If you highlight the lower quartile in blue and the higher quartile in yellow, you can just say that the highlighted points are in either the higher OR lower quartile. But how do you illustrate an "AND" idea? That requires a new abstraction--the "select from" panel.
By default, if you are highlighting anything, that means you are finding any points from the red bucket which meet a certain range criteria and you are copying them to the blue|green|yellow bucket. The "select from" panel just changes the source bucket from red to another color. Let's do an example.
Say we start with the inline skating file:
On the lower left graph, we see two bunches of points. Let's highlight the bunch that has a high
AngleKnee
and relatively lowMedialGastrocnemius
in blue. This bundle is sufficiently tight that it likely corresponds to something physically meaningful:We can see in the upper right graph that the blue points actually separate into two species: one with low values of
SpeedAnkl
andSpeedKnee
and one with high values of the same. If we click the yellow tab we are now highlighting with the yellow brush. If we then clickSelect From --> blue
, we are going to highlight only from the blue points.After doing this, we highlight the entire upper half of the upper right graph, and we see the following:
Looking at the upper left graph we can deduce that if the skater's
AngleKnee
is high AND theSpeedKnee
is high, theAngleAnkl
will be rapidly increasing. However, if theAngleKnee
is high AND theSpeedKnee
is low,AngleAnkl
will instead be slowly decreasing. (Actually, to know the difference between increasing and decreasing I had to use the green highlighter on theTime
graph. I highlighted to the right and saw that the points circled theAngleKnee
vsAngleAnkl
clockwise, not anticlockwise)One final wrinkle: What do I do if the user highlights a region in yellow, then tries to highlight in blue but only from the yellow bucket? If I naively did what the user asks for, they will highlight points into the blue bucket but those points will appear to just stay yellow because the yellow brush takes drawing precedence over blue. This strikes me as behavior that is too surprising, so until I have a sortable list of layers I will just disallow that action. If you're using a low precedence brush like blue, you aren't allowed to hit
select from --> yellow
. The button is just disabled for higher priority brushes.