<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Willem,<div class=""><br class=""></div><div class="">That's a great detailed writeup. I'll comment in line and try to keep all of the pictures in place!<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On May 16, 2020, at 7:13 AM, Willem Ferguson <<a href="mailto:willemferguson@zoology.up.ac.za" class="">willemferguson@zoology.up.ac.za</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html;
charset=windows-1252" class="">
<div class=""><p class="">This is just an attempt to enumerate how many types of graphs one
is likely to need, given the discussion until now. As a basis I
use Dirk's Proposal for selecting a appropriate graph.</p><p class=""><img alt="" class="" apple-inline="yes" id="B8AF1A02-F723-414A-BB96-2AD3B3E19E47" src="cid:part1.26DA461D.6C27D048@zoology.up.ac.za"></p><p class="">In the above diagram, the different types of variables have
different colours.</p><p class="">1) The yellow ones are just totals (Total # dives, Total no.
minutes/hours) that are unlikely to have any associated minimum or
maximum.</p><p class="">2) The blue ones are variables defined in terms of categories.
Date : day, week, month, etc; Trip : trip locality; suit: type of
dive suit; tags : tag text. There is no dive suite value inbetween
wetsuit and semidry suit because they are two distinct categories.
<br class="">
</p><p class="">3) The white ones are continuous numeric variables. Duration can
potentially have any arbitrary number of minutes or hours. The
same goes for Max_depth, Min_temp, SAC, and all the other white
ones. Inbetween any two arbitrary depths there are innumerable
intermediate depths and depth only becomes a value along a
continuous scale.<br class=""></p></div></div></blockquote><div><br class=""></div><div>Technically... we store depth in mm (and round when displaying)... yeah, you know where I'm going here. I'm being a childish stickler for details that these are of course discrete values, but for the purpose of this discussion you are correct. They have "nearly continuous" values and in that are distinctly different from the blue categories.</div><div><br class=""></div><div>I have two questions: </div><div>- why is 'dive type' not blue. That's likely just an oversight, right? It's not like depth, duration or temp that are "nearly continuous".</div><div>- and what about date. that one is kinda weird - but I'd say for someone with 8000 dives since 1983, date is "more continuous" than temperature (we dive in water typically between about -2C and +40C, so even at 0.01 degree intervals that's only ~4200 values - and 0.01deg C is way beyond the measurement accuracy here)... I think 'by date' is either white or it is 'special'</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">
</p><p class="">The type of graph that best depicts a relationship between two
types of variables depends on the colour that each of the
variables above has. I need to emphasize that the graphs below are
totally open to discussion. The purpose here is to assess how many
types of graphical elements one would need for a basic statistics
tab in Subsurface.<br class="">
</p><p class="">Plotting a yellow variable against a blue variable is probably
best represented by a simplistic bar graph like:</p><p class=""><img alt="" class="" apple-inline="yes" id="BE088A1B-5DB3-4478-85E9-7826514BED36" src="cid:part2.0E059543.3EE2C2D0@zoology.up.ac.za"></p><p class="">There are no min and max values to indicate. The different suit
categories are indicated along the horizontal axis. There is no
need to specify a degree of "granularity" or increment along the
horizontal axis and no min or max values are involved.<br class=""></p></div></div></blockquote><div><br class=""></div><div>Yes, I think that's reasonable. People like me will run into trouble here because of the way I name my suits. "dry, Whites Fusion with Weezle", "wet, 3mm, with 2/1 hooded vest"</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">
</p><p class="">If one plots a yellow variable against a white (continuous)
variable, then a granularity/increment needs to be specified. In
the image below, an increment of 20m was used.</p><p class=""><img alt="" class="" apple-inline="yes" id="6BF535B6-F135-4402-AD1B-5D1A6BE5946F" src="cid:part3.59EFFBD1.31C85E26@zoology.up.ac.za"></p><p class="">Basically the same type of graph as the one used above. No need
for min/max values. </p></div></div></blockquote><div><br class=""></div><div>The challenge here lies in the ability to come up with "clever" groupings. To a human this is likely somewhat obvious, but you need to invest some thought / algorithm / heuristics into this to get this right. Especially if we include 'date' as a white variable (as I think we should).</div><div>Clearly something that is "solvable", just not necessarily straight forward.</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">Of course, as was well argued previously, the
bar graph can be horizontal in the case of long names on the
horizontal axis, e.g. dive site names:</p><p class=""><img alt="" class="" apple-inline="yes" id="80375CB5-F42E-4BB3-A58F-A57BABF4F688" src="cid:part4.4C675BB6.DAE4D139@zoology.up.ac.za"></p><p class="">While I personally have no qualms with horizontal diagrams where
needed, I would argue it is a regression to default to horizontal
orientations for all bar graphs.</p></div></div></blockquote><div><br class=""></div><div>I think for blue variables horizontal might be easier to get right. But I'm willing to have us consider this a "phase 2" think and start with just vertical and see into how much trouble we run there...</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">The above graphs deal with yellow variables in Dirk's proposal.
Now about the other categories. Plotting a White variable against
a Blue variable has several options, including box and whisker
plots that are not popular in this discussion. My proposal two
days ago was something like this and there was some discussion
around it:</p><p class=""><br class="">
</p><p class=""><img alt="" class="" apple-inline="yes" id="849E9EA8-AD6A-4E4A-B79B-646FDA5DD21E" src="cid:part5.508018B7.17278193@zoology.up.ac.za"></p><p class="">Here SAC is a white (continuous) variable and Suit is a blue
(catagorical) variable. A graphical element that is likely to
differ sharply from the bar graphs used above. Here again, because
the horizontal axis comprises categories, there is no need to
specify a granularity/increment. For lack of a better name (there
is actually a esoteric statistical name for this graph) I call
this a dot graph.</p></div></div></blockquote><div><br class=""></div>The more I look at this, the more I like it.</div><div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">What about plotting a Blue (categorical) variable against a White
(continuous) variable? For our case the order in which the blue
and white variables are selected probably does not matter and the
dot graph shown above (or some derivative of it) should suffice. <br class=""></p></div></div></blockquote><div><br class=""></div><div>I had never thought of blue categories being plotted against the white categories. What's the meaning of a plot of my tags over the depth? Or trips over temperature? I'm not saying that this is wrong or not useful, I'm just trying to understand how that would look and what information the user would get from it?</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">
</p><p class="">What if a white (continuous) variable is plotted against another
white variable (e.g. dive duration against dive depth). The most
appropriate type of graph is probably as scatter diagram:</p><p class=""><img alt="" class="" apple-inline="yes" id="13405809-25EF-4159-9A69-051527FDD233" src="cid:part6.4C9A0270.BB800DB1@zoology.up.ac.za"></p><p class="">The raw data are indicated on the graph. There is no need for
specifying a granularity value because there in no grouping of
values along the horizontal or vertical axes. If a clear
relationship between the two variables exists, it is clearly
visible on the graph as in this case.</p></div></div></blockquote><div><br class=""></div><div>Yes, this seems like the obvious choice here, much better than creating artificial columns by intervals of depth.</div><div><br class=""></div><blockquote type="cite" class=""><div class=""><div class=""><p class="">We have now dealt with <br class="">
</p><p class="">Yellow/white</p><p class="">Yellow/Blue</p><p class="">White/Blue and Blue/White<br class="">
</p><p class="">White/White</p><p class="">What about Blue/Blue?<br class=""></p></div></div></blockquote><div><br class=""></div>Same question as above. What does a graph of, say, suit over tags look like? What does it tell me?<br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">
</p><p class="">There is another type of graph that is potentially extremely
useful : introduce a *third* variable to the graph. For instance,
in the case of the second blue bargraph towards the start of this
message (No.dives vs depth) one could ask what the distribution of
a third category is. For instance, how long did I use various dive
suits at different depths? Or how many dives did I use different
dive suits at different depths? This is the above barchart,
divided into the values for different dive suits. This is also
useful to analyse variables used as tags, e.g. the use of
air/nitrox/trimix during dives, the number of boat/shore dives,
the number of training dives compared to fun dives, the number of
dives using different dive modes as a function of depth, dive
duration, temperature, or whatever white variable has been
selected.<br class="">
</p><p class=""><img alt="" class="" apple-inline="yes" id="6EBBA3AF-B61D-4B5F-84D3-57027468C870" src="cid:part7.31F21585.09FB1B35@zoology.up.ac.za"></p><p class="">Since the horizontal axis corresponds to a white (continuous)
variable, one would need to specify a granularity/increment. The
UI cost for this would be an additional dropdown list/comboox to
select the appropriate categorical variable to appropriately
subdivide each bar of the graph (Dirk's Granularity??). This
diagram handles cases of graphs with a blue(categorical) variable
plotted against another blue (categorical) variable, although a
third variable needs to be specified to form the unit of
measurement (e.g. dive duration in the above graph). This can
probably be selected using Dirk's Granularity Combobox in his
proposal.<br class=""></p></div></div></blockquote><div><br class=""></div><div>We are of course going to get ourselves into trouble here. Yes, the addition of a third variable and the use of color for that is really cool. But that does add significant complexity. And BTW, I'm sure the next person is going to say "I want to add that to a scatter plot"... e.g., in the duration over depth chart, you could use dot color to indicate the suit, or you could pick some tags to be shown (think nitrox, air, trimix). Which are all wonderfully cool graphs, but the complexity is quickly going up.</div><div><br class=""></div><div>How about a fourth axis? Think about this scatter plot where you track suit over depth/duration - would you want to add different dot shapes to indicate your dive type?</div><div><br class=""></div><div>I am half joking, but we all know that someone will ask for this as soon as we release the new statistics :-)</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">
</p><p class="">This handles basically all the possibilities of the different
combinations of Yellow, White and Blue variables in Dirk's
proposal. There are fundamentally FOUR types of graphs that would
be required, forming the basis of visual presentation of the
Statistics tab.<br class=""></p></div></div></blockquote><div><br class=""></div><div>I'd argue that's six (but that's because of my potential additions):</div><div>two values:</div><div>- Bar chart</div><div>- Dot graph</div><div>- Scatter plot</div><div>three values:</div><div>- Stacked bar chart</div><div>- Dot graph with colors</div><div>- Scatter plot with colors.</div><br class=""><blockquote type="cite" class=""><div class=""><div class=""><p class="">
</p><p class="">I hope this appears somewhat useful in the present discussion.</p></div></div></blockquote><br class=""></div><div>Yes, I think this was super useful.</div><br class=""></div><div class="">There are a few questions in my response that I think would benefit from more thought / responses. </div><div class=""><br class=""></div><div class="">And then maybe some more exploration of how things would work to</div><div class="">- pick which categories to show (for some the number is likely small enough, but for tags, full text, and possibly trip you'd want to be able to select those that you want to plot</div><div class="">- pick the grouping of date</div><div class="">- enter the granularity for "near continuous" variables (depth, duration, temperature)</div><div class=""><br class=""></div><div class="">Once we have sketches / proposals for those, I think we have the UI side handled and can design the backend data model that would be able to provide those data.</div><div class=""><br class=""></div><div class="">And then start implementing and iterating :-)</div><div class=""><br class=""></div><div class="">Thanks</div><div class=""><br class=""></div><div class="">/D</div></body></html>