Make the global overview matrix always have a 1:1 tile aspect ratio

Issue #471 open
Robert Leach created an issue

USE CASE: WHAT DO YOU WANT TO DO?

I want to have an intuitive sense of the overall shape of my data matrix.

STEPS TO REPRODUCE AN ISSUE (OR TRIGGER A NEW FEATURE)

  1. Open a matrix whose number of rows and columns is very different (i.e. a tall or wide matrix)
  2. Observe that the shape of the global overview area does not represent the shape of the data

CURRENT BEHAVIOR

The (initial) size of the global overview matrix is always square, regardless of the shape of the data matrix.

EXPECTED BEHAVIOR

The overall shape of the global overview matrix should give the user a sense of the overall shape of their data. Thus a 1:1 tile aspect ratio should be enforced.

DEVELOPERS ONLY SECTION

SUGGESTED CHANGE (Pseudocode optional)

This is a rough outline. It's not thoroughly thought out, but you'll get the basic idea.

  1. Determine longest data edge (rows or columns)
  2. Determine dimensions of area where global overview will be drawn in terms of pixels (rows and columns)
  3. Using the pixel rows available, scale the rows & columns in step 1
  4. If the scaled columns from step 3 are larger than the pixel columns available from step 2, scale the dimensions from step 1 using the pixel columns available from step 2
  5. Set the scale for both dimensions based on the output of step 4
  6. When drawing the matrix, center it in the deficient dimension

Note, this calculation needs to be redone every time the global overview area changes size from the DragGridPanel mouseDragged function.

The end result should be a global overview matrix that fills the space in 1 dimension and is centered in the other.

FILES AFFECTED (where the changes will be implemented) - developers only

DragGridPanel GlobalMatrixView

LEVEL OF EFFORT - developers only

medium

COMMENTS

related to pull request #109 and BB issue #36.

Comments (23)

  1. Christopher Keil repo owner

    I agree about your overall sense point, but if this map is always fully in view, then the setup of the other components will be determined by the matrix size. If the matrix has 20 rows and 2000 columns then it will look really thin and long and you are losing space for the column view.

    If you make it a scrollable drag grid panel and never show the full extent then you can mitigate the effect on other components but the benefit of "overall sense" is lost.

  2. Robert Leach reporter

    I'm not talking about changing the shape of the area dedicated to the global overview matrix. I'm talking about changing the shape of the matrix that that is displayed in that area. Notice I said center the matrix in the short dimension in the global overview area. Yes there will be instances when a long or tall matrix will display as a thin line, however I think that it will be desirable even in those instances. Especially because it conveys information about the shape of the matrix that is otherwise hard to discern. Neither the labels trees nor interactive matrix will be affected by this change. It only affects what is drawn inside the current shape of the mobile overview matrix.

  3. Robert Leach reporter

    The phone matrix should always be displayed despite shape. I didn't mean to suggest that only a portion of it would be displayed.

  4. Christopher Keil repo owner

    If the full matrix would be displayed, the square component shape remains the same, and you have some extreme matrix form (20 row, 2000 columns), would that still be a meaningful map?

    One could argue that it would not be under present circumstances as well. I am in favor and I would really love for the overview matrix to always be 1:1 but I struggle to imagine how extreme matrix shapes will use the space we have.

  5. Robert Leach reporter

    I would argue that in wide or tall matrices, the global overview is currently a low utility/low information panel - arguably, nearly useless. If it also conveyed shape, it would be a little more useful. If it's a 800 by 20000, it would be very useful, especially when the IMV is around 800 by 800 pixels. In that instance, the user has virtually no idea of shape of the matrix just by looking at it and a 1:1 tile aspect ratio in the GOM would convey information that is otherwise not visually discernible.

  6. Anastasia Baryshnikova

    I'm actually not sure that we should enforce an 1:1 ratio.. When we made the panels completely resizable, we wanted to give the user total control over what portion of the screen each section takes. If we lock the dimensions of the overview matrix, we're taking that control away from the user again. We might consider having this as a setting (eventually), but by default the overview should take all the space that the user allocated, just like for the main panel.

  7. Robert Leach reporter

    Locking the proportions of the panel is not what this issue specifies. It's for locking the tile proportions. Null space would be filled by the background color and would still be able to be resized to whatever size the user wants. Here's a mockup of what this issue is proposing. Let's say we have a tall matrix. The shape of the global view would represent the true shape of the matrix regardless of the space the global view panel takes up. The data I'm using here is square data, but just imagine it's taller than wide:

    1to1globalmockup.png

  8. Anastasia Baryshnikova

    Yeah, I understand, but I'm still not sure we should do it.. It's too unclear which way is better. I just asked a colleague and she said that the 2 panels should be synched: if the overview is 1:1, then the main panel should be too, and viceversa. This could be a preference (just like we have it for export) but the default should be "fill in all the available space".

  9. Robert Leach reporter

    We currently have no way for the user to discern the overall shape of their data unless they export and select 1:1. By providing the shape in the global area, we are adding useful information to the user that they don't already have, especially in cases where the matrix is larger in both dimensions than the number of available pixels in the interactive matrix view. Without exporting, the user would have no idea of the relative number of rows and columns. This could lead the user to make invalid judgements on the amount of data they are looking at.

  10. Robert Leach reporter

    I'm not opposed to it being a preference setting, but I would advocate that the default be the 1:1 tile aspect because it adds information. The global overview is a fairly low information & utility panel as it stands. It's sole purpose is to let the user know where they are in the data while zoomed. The more accurate we can make that location, the better it satisfies its purpose. It's like when I was lobbying for the whizzing labels - because I wanted to increase the utility of that space.

  11. Christopher Keil repo owner

    I have a working prototype of what Rob has specified. Some refining is left (I started because I had no access to the Mac for #467 and the issue is extremely problematic, needed to wait for Rob's feedback for #475 since issue is not reproduceable on my systems...)

    So I propose to make a compromise now. We leave the default as-is, the fully filled out matrix. But additionally we add another option to the "View" menu which allows the user to change the overview matrix tile aspect ratio to 1:1. This would be similar to the "Show trees" option.

  12. Anastasia Baryshnikova

    The closest thing we have is Help > Stats (gives the dimensions of the matrix).

    I'm ok with 1:1 being a setting. But I think that, if you make it default and don't let users change it, it will be weird... We can ask around and/or implement and test it on real users.

  13. Anastasia Baryshnikova

    @TreeView3Dev -- that sounds good. Should the option apply to both the overview and the main matrix?

  14. Robert Leach reporter

    Implementing 1:1 in the main matrix is a problematic issue because of the interactiveness of zooming. Implementing non-disorienting zoom features that prevent the user from inferring borders where there are none is an issue that I think won't be solved until we can draw partial tiles. I have a gif I made demonstrating this in the 1:1 BB issue. I'll paste below...

  15. Robert Leach reporter

    There are 2 gifs I created and pasted in issue #455. This is the one that "uses all available space" and demonstrates the problem created by the fact that we can only draw whole tiles:

    185aor.gif

  16. Robert Leach reporter

    1:1 is much easier and doable in the global overview matrix because it never zooms, thus it never has this imaginary data border inference (implied by the gray filled fringes) or the issue with the tiles jumping around.

  17. Anastasia Baryshnikova

    Ok, I'm fine with implementing 1:1 for just the overview matrix. But it has to be a preference:

    • View > Overview panel > Auto (default)
    • View > Overview panel > Aspect ratio 1:1

    (or something similar)

  18. Robert Leach reporter

    OK, I'll accede to that. Would it be easy/desirable to have a menu option that changes upon selection, e.g.:

    If the current aspect is 1:1, it shows:

    View->"Overview: Fill"

    If the current aspect is "fill":

    View->"Overview: Proportional"

    I used words I found in both Quicktime (for how to fill the screen) and Graphic Converter (for scaling), but I admit there could exist more intuitive words than fill & proportional. fitted? stretched? max? "1:1"? I'm not sure what would be the easiest for a user to understand.

    We've had continual misunderstandings between ourselves though as to what "aspect ratio 1:1" means - whether it apples to tiles or the drawing area...

  19. Anastasia Baryshnikova

    I'm ok with the menu change upon selection. For the naming, yeah, there're 1000 options.

    How about Fill & Fixed? But if you want to go with Fill and Proportional, that's ok too. Maybe later on we'll think of better names, but for now this should work.

  20. Log in to comment