I have a set of data that looks like this, and I'm trying to figure out how to create a single visual representation:

 ID | Type      | Weight | Score
 1  | Financial |  10    |  100
 2  | Geo       |  35    |  23
 3  | Lifestyle |  62    |  19
 4  | Education |  99    |  65
 5  | Financial |  23    |  91
 6  | Geo       |  11    |  87
 7  | Lifestyle |  45    |  71
 8  | Education |  91    |  29

Scores and weights can both be from 0-100 with higher numbers being better. I'm going to have about 6,000 of these for a single visualization.

I want to accomplish four things:

  • we're dealing with very unsophisticated customers, so we want a representation of "ideal" scores
  • it should be obvious which points carry the most weight and which have the best scores
  • the user should be able to immediately get a sense of what the average score is for this data set, with color or magnitude or a combination
  • it should be obvious which Type of metric is bringing the score down or up

I was thinking of using a 4-quadrant circular plot (looks like a target) where each quadrant represents a different Type of metric, a score on the edge of the circle would be a 0, and a score of 100 would be dead center. A clustering around the center would indicate lots of "bullseyes", and lots of points on the outside indicate misses. But I also want to show that a bullseye is meaningless if the weight is 0, and a miss is huge if the weight is 100. Since it's a circular plot, I can use angle, distance, color, and dot size. If anyone has ideas on how to do this, I'd love to hear them.

I'm not a data visualization expert by any stretch so if anyone has any completely different ideas, I'd love to hear them. In general, I just need advice from people who know more than I do.

  • $\begingroup$ I am not sure I understand this right - but I have the impression that there are some additional pieces that will help clarify. Are you aggregating a series of individual scores (and weights) into a grand total? If so - what is the math that is used to generate that total (sum(weight*score) would be an obvious possibility - but maybe you are doing something else)? In this case - I think you might be better restructuring your data - so each row represents one total, with separate columns for FinanceWeight, FinanceScore, etc. $\endgroup$ – Don Dresser LatentView Dec 11 '14 at 21:17
  • $\begingroup$ What exactly do the weights mean? How are they derived? $\endgroup$ – whuber Dec 11 '14 at 21:21
  • $\begingroup$ @DonDresserLatentView - it's determined with a machine learning algorithm, so it's actually a lot more complicated than that. We're trying to do a dumbed-down representation for our clients. $\endgroup$ – kid_drew Dec 11 '14 at 22:02
  • 1
    $\begingroup$ @whuber - Weights are basically standard deviations of each feature for the whole set of inputs. It's more complicated than that, but that's the basic idea. $\endgroup$ – kid_drew Dec 11 '14 at 22:05
  • $\begingroup$ I'm confused: what's wrong with a colored scatterplot? $\endgroup$ – shadowtalker Dec 13 '14 at 7:28

It's going to be a challenge to meet your requirement of seeing individual scores and weights with 6000 data points. You will probably need to aggregate first or look at subsets.

Here is a combination view, showing all the points and some aggregate representation using box plots. The points are colored by weight. There is still considerable overstriking, which you might alleviate if your software has a "dodge" option for dot placement.

enter image description here

  • $\begingroup$ This is/was a subjective question, but this is the best answer I've seen so far. I'm happy to check off more if I agree with the answers. $\endgroup$ – kid_drew Dec 15 '14 at 16:37
  • $\begingroup$ I'd make two suggestions for this plot. 1) use a nonlinear color gradient so that there's better differentiation between high and low. I'd suggest exponential to make the high scores "pop." Linear might be okay in the OP's actual data, but chances are it isn't ideal. 2) use weighted statistics for the boxplot: math.stackexchange.com/questions/50147/… $\endgroup$ – shadowtalker Dec 16 '14 at 21:32

I'm not a data visualization expert as well. However, here's what I would do to visualize such data set (for the following, I assume that you don't have to aggregate data by Type). I would represent the data set as a line chart (basically, a scatter plot with connecting lines), similar to this:

enter image description here

In order to match your requirements, I would make the following adjustments to the above:

  • ID range would be represented by x-axis;
  • Score values range would be represented by y-axis;
  • Weight values would be represented by the size of a dot (or other object type, if desired), representing a particular data point;
  • Type and corresponding data points would be represented by appropriately colored lines;
  • using different object types and line styles doesn't matter much and is optional.
  • $\begingroup$ Certainly, there are various other ways of visualizing such data set. This is just one of the simplest ones, which might better fit your audience, based on your description. Often, the simplest solution is the best one (or so I've heard: en.wikipedia.org/wiki/Occam%27s_razor). $\endgroup$ – Aleksandr Blekh Dec 12 '14 at 10:13
  • 1
    $\begingroup$ Thanks for the reply. ID isn't actually a field that needs to be represented in the plot - it's just a label for each point. But it might make sense to do a scatter plot with Weight on the X-axis and Score on the Y-axis and delineate Type by color. $\endgroup$ – kid_drew Dec 12 '14 at 17:05
  • 1
    $\begingroup$ Having ID as its own axis can be very, very confusing when it isn't necessary. $\endgroup$ – shadowtalker Dec 16 '14 at 17:51
  • 1
    $\begingroup$ Which of course only highlights what should be the takeaway from this question: the only correct way to visualize your data is whatever way best aligns with your intended purpose $\endgroup$ – shadowtalker Dec 16 '14 at 21:24
  • 1
    $\begingroup$ @ssdecontrol: Sounds fair to me. The problem is that often authors formulate their questions in somewhat ambiguous/fuzzy way, hence the appearance of incorrect (partial) assumptions and/or interpretations. $\endgroup$ – Aleksandr Blekh Dec 16 '14 at 21:43

I don't see why this data should be presented as anything but a scatterplot. Color-code or otherwise label the points by type, and jitter them if overlaps are a problem. Or heck, just fix the x and y scales and make a trellis/lattice/faceted plot.

If you want to emphasize that there is some kind of interaction between the dimensions, I'd suggest some kind of overlay like this:

enter image description here

  • $\begingroup$ The argument that I would make is that a scatterplot like this would make half of the graph pointless. In our data, Weight is basically a measure of the metric's effect on the final score - assuming Weight is on the X-axis, we wouldn't care about anything in Q3 and Q4 because the points have low weight. $\endgroup$ – kid_drew Dec 15 '14 at 16:35
  • $\begingroup$ Then why plot those points at all? $\endgroup$ – shadowtalker Dec 16 '14 at 5:53
  • $\begingroup$ @kid_drew (just tagging you now because I should have done it in my comment yesterday) $\endgroup$ – shadowtalker Dec 16 '14 at 17:53
  • $\begingroup$ That's a good question. I do want to see that the points are there, but I'm not crazy about concentrating the lesser points on one half of the plot, essentially making a "don't care" section. For that reason, I think the box plot with a 1-D plot of the points makes the most sense. I also like how the box plot allows me to split by the Type field - putting all 6,000 points on a single plot would likely look very cluttered. $\endgroup$ – kid_drew Dec 17 '14 at 16:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.