phetsims / natural-selection

"Natural Selection" is an educational simulation in HTML5, by PhET Interactive Simulations
GNU General Public License v3.0
3 stars 7 forks source link

Population graph design issues #101

Closed pixelzoom closed 4 years ago

pixelzoom commented 4 years ago

The Proportions graph differs from the Java version, there are some new requirements. It has a data probe, and there is no pause that occurs when environmental factors are applied. So there are a few significant issues that have not been addressed by the design:

I'm working on the Population graph now, so working out these design issues is relatively high priority. I'm going to proceed and do the best that I can to implement something that is flexible.

amanda-phet commented 4 years ago

If plots overlap, one or more sets of data will be hidden. For example, if there are equal numbers of bunnies with white fur and brown fur, only one data set will be visible.

I think we can order the graphs in the order they are seen in the panel. So, if there are equal values to plot, Total would be on top and would occlude the other graphs with equal values. And so one. It is a bit of a usability issue with line/step graphs, but I'm not sure there are great options here. Happy to brainstorm some more.

Let's discuss the other issues with the team since @pixelzoom you and I have already talked about them.

amanda-phet commented 4 years ago

6/11/20 design meeting: will draw a step function with vertical connection lines between jumps. At the leftmost edge of a horizontal line there will be a circular dot to indicate where the probe is collecting data.

amanda-phet commented 4 years ago

Another idea that @oliver-phet thought of is putting circles right on the probe at the point where it overlaps the graph, so it's really clear where we are reading the data. image

image

@pixelzoom Does this seem like a feasible option too? I think we still want to move forward with the above decision, but perhaps this could be an additional visual cue.

pixelzoom commented 4 years ago

... Does this seem like a feasible option too? ...

Yes, it's feasible. It will be a significant chunk of work - likely a day or two. There's already a lot going on with this graph, so I'm concerned about information overload. And I'm also concerned about how the circles will be interpreted, because they are not connected to the displays at all. So... I'm going to hold off on "circles on data probe" until the graph is working. There we can evaluate to see if we feel that the circles are necessary.

amanda-phet commented 4 years ago

OK, well let's keep it in mind but not move forward with the circles on the probe. Let's see how it looks when we implement the above decision.

pixelzoom commented 4 years ago

One potential problem with the solid (filled) points is that they are not differentiated for mutation vs normal alleles. For example, this example could be a little confusing at the rightmost edge of the graph:

screenshot_409
pixelzoom commented 4 years ago

@amanda-phet this is ready for review in master and 1.0.0-dev.58.

Everything is implemented except the points that move along the data probe (as described in https://github.com/phetsims/natural-selection/issues/101#issuecomment-642927906). I'll be happy to implement that if you feel it's necessary or want to see how it feels. But this graph is already feeling pretty "busy" to me.

Of the bullets listed in https://github.com/phetsims/natural-selection/issues/101#issue-634979291, the overlapping plots seems like the biggest issue currently. I don't know how to address that, or whether it needs to be addressed. Keep that in mind as you review.

amanda-phet commented 4 years ago

Can we make the solid filled points slightly smaller? Maybe 80% the current size?

I also wonder if we can do anything to the dotted lines, since sometimes a change in population has a funny looking "jump". can you make the spaces between dashes a bit smaller? And possibly make the dashes a tiny big longer, depending on how that looks.
image

I am not sure there is much we can do about overlapping graphs, and the current graph seems superior to the Java version because of the handy data probe, and the fact that you can choose which graphs to view at any given time. All of those features increase the usability of the graph, IMO.

I'd like to also review this with @kathy-phet and @ariel-phet for their insights.

amanda-phet commented 4 years ago

5/25/20 meeting: we'd like to consider the white intersection circles after interviews. Otherwise this all looks good.

pixelzoom commented 4 years ago

@amanda-phet Does "Otherwise this all looks good" mean that you don't want any changes? Or do you still want the diameter of the points and the line-dash spacing tweaked?

pixelzoom commented 4 years ago

I've reduced the radius of the points to "80% the current size", from 3 to 2.4.

Re the line dash...

Scenery specifies line dash as an array that describes the dash pattern. It's currently [3,3], which means that the dash and space between the dashes are both 3. It's easy to change that to anything that you want. But if the dash is made too long, it may look like a solid line between closely-spaced points. And we will such points if/when we kill bunnies incrementally instead of all at once.

If I understand the "funny looking jump" that you reported, there is also no way to eliminate that. There will always be such jumps where points occur within the line dash pattern. A plot is not individual line segments where the dash starts over for each segment. For performance, each plot is a single scenery Path, and the line dash continues along that entire path.

Not reported is a more noticeable issue with the dashes lines occurs when the graph begins to scroll. The dashed lines appear to strobe, instead of staying in a fixed location. I'm not sure how (or whether?) to deal with that yet.

amanda-phet commented 4 years ago

The dot size looks good to me, but I think others on the team disagreed that it needed to be smaller. @kathy-phet @ariel-phet @oliver-phet want to weigh in? In particular, when I zoom out and see more graphs layered, I like how the smaller dots overlap less. However I'm fine with the larger too if others prefer it.

For the dashes, I'm not sure which is the dash length and which is the space, but can you try changing the spacing to be 2? If it doesn't look good we can revert it, I just thought it would be worth playing around with some values. I understand the plot is not individual line segments, which is why I wanted to tweak the spacing. A different dashed line pattern would produce a different looking plot, but I'm not sure exactly where to make the tweaks, or if any will "fix" the situation I observed.

pixelzoom commented 4 years ago

The general form of the lineDash array is [dash, space, dash, space,...]. I've changed it to [3, 2] in master, so that the dash is 3 and the space is 2.

pixelzoom commented 4 years ago

@amanda-phet and I discussed this issue on Zoom, summary:

There are no other outstanding issues here, so this issue can be closed.