I've conducted a survey of 20 questions using a 5-item Likert scale in which 10 people participated. In each question, the participants were presented with two versions of a picture and asked to pick the better one. The obvious way to visualize the data would be something like this:

enter image description here

However, I'm losing some information with this representation. I want to show that if a participant $p_1$ chose an answer $x$ for a specific question $q$, then what did they choose for the other questions?

In other words, I want to know just by looking at the graph if another participant $p_2$ who gave the same answer $x$ to the same question $q$ also agrees with $p_1$ with the rest of the questions. How can I visualize this information?

EDIT: Here's the data as a .csv file:


The rows are participants and the columns are the questions. $1$ corresponds to "left picture is much better", $2$ to "left picture is somewhat better" $...$ and $5$ to "right picture is much better".

  • 2
    $\begingroup$ A heat map sounds like it offers what you want. Rows would be questions, columns would be respondents. You could cluster them to show how respondents relate. $\endgroup$ Commented Jun 30, 2022 at 22:14
  • $\begingroup$ Did all participants saw the two versions of a picture in the same left/right order? This is what the legend in the figure suggests. $\endgroup$
    – dipetkov
    Commented Jun 30, 2022 at 22:34
  • $\begingroup$ @dipetkov Yes, the questions are identical. $\endgroup$
    – Monika
    Commented Jun 30, 2022 at 22:34
  • $\begingroup$ It might have been better to randomize the ordering of the two versions, so that some participants saw A/B and others B/A where A and B are the two versions of a picture, unless what you are interested in is the left/right positions rather than comparing the two versions. $\endgroup$
    – dipetkov
    Commented Jun 30, 2022 at 22:37
  • $\begingroup$ Could you post the data? It's just a 10 by 20 matrix. $\endgroup$ Commented Jul 2, 2022 at 13:05

1 Answer 1


If you have so little data then you could use multiple graphs or sparklines to display the data all at once.

10 plots

Possibly you could also find out some clusters and order the participant according to these clusters.

In the comments a suggestion came up to plot the curves on top of each other (with some jittering to have them not exactly on top of each other) and use colour coding to make differences clear. I tried to do that, but the lines do not stand out much from each other. There are also no clear clusters with a similar pattern that could be made more clear in that way.

Such plotting on top of each other could be worthwhile if you have more curves and the colour coding can help to highlight specific cases or groups. An example is

corona plot

And in another question (How to plot trends properly) similar curves appeared.

slope graph and a variation

In those cases the data are time series and there is more structure on the data with peaks and parts that are specific to some but not all.

  • 1
    $\begingroup$ I'd probably even try out to plot them all one over another, with maybe thinner lines and dfferent colours, and maybe using a bit of jittering to deal with the fact that there are only 5 values. It maybe messy, but then it may make things such as clustering clearer. There's nothing to lose other than a bit of time trying out a visualisation. $\endgroup$ Commented Jul 2, 2022 at 19:57
  • $\begingroup$ @ChristianHennig that was my initial trial, but I decided that it was better to plot them seperately. There is not really much detail visible when plotting them on top of each other. Colour coding might work when there is clustering but that's not the case here. $\endgroup$ Commented Jul 2, 2022 at 20:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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