Lesson 14 of 20

Dot plots — two values in a single dot

Figs. 5C·5J·7B·7E·7F·7G·8B — 7 of the 62 panels

Dot plots — two values in a single dot
Size is what fraction of cells switched it on; colour is how hard the ones that did switched it on. Two questions in one dot.

In single-cell papers this appears more often than the heatmap. Seven panels of this paper are dot plots.

One dot is one gene × one cell type. And it carries two values.

ChannelValue carriedQuestion answered
dot sizepercent of cells expressinghow many cells switched this on
dot colourmean expression (usually z-scored)how hard the ones that did switched it on

Why separate them? Because a mean alone cannot tell two situations apart — 100% of cells switching on a little, and 10% of cells switching on hard, can have the same mean. Only the second makes a useful marker gene.

Turn size and colour on and off. What disappears when you keep only one?
Loading…
The same grammar as Fig. 5C of the paper. The data is real TCGA lung expression, and the groups are immune-desert, intermediate and immune-inflamed.
Python Runs in your browser

A dot plot must always carry two legends — one for size and one for colour. Miss either and half of every dot is unreadable.

You also have to decide whether the colour is a row z-score or raw expression. The legend of Fig. 5C says “scaled average expression” — meaning z-scores. So that colour means “high for this gene”, not “highly expressed”.

A heatmap would have coloured those two cells the same. A dot plot exposes the difference through size.
Python Runs in your browser
🤔 Check yourself
What does dot size usually represent in a dot plot?
🤔 Check yourself
What happens if you make the dot radius proportional to the value?
🤔 Check yourself
What does 'scaled average expression' in the legend mean?