## Dot Plots In Google Sheets

Dot plots are simple charts consisting of dots plotted on a simple scale, typically used to show small counts or distributions.

Dot plots are one of the simplest statistical charts, only suitable for small-sized data sets. They’re helpful for understanding the “shape” of your data by highlighting clusters, gaps, and outliers. (A histogram is better suited to showing the data distribution of larger datasets, e.g. > 30 datapoints.)

Here’s a table using dot plots to show the hypothetical number of meetings per day for these five employees:

## How To Create Dot Plots In Google Sheets

You create dot plots in Google Sheets with formulas!

Suppose we have this data in row 1 of a Google Sheet, in cells A1 to E1:

### Step 1:

Create a basic REPT function next to the data, e.g. in cell F1:

`=REPT("*",A1)`

### Step 2:

Next, turn this REPT formula into an array formula:

`=ArrayFormula(REPT("*",A1:E1))`

### Step 3:

Then use the JOIN and CHAR functions to combine the array output. CHAR(10) creates a carriage return, which we use as the delimiter:

`=ArrayFormula(JOIN(CHAR(10),REPT("*",A1:E1)))`

### Step 4 (optional):

Convert the * into circles with the CHAR function:

`=ArrayFormula( JOIN(CHAR(10),REPT(CHAR(9679), A1:E1)))`

### Step 5 (optional):

Rotate the cell up:

Format > Rotation > Rotate up

Here’s an image showing the outputs for these 5 steps in column F:

## How To Create Multi-Colored Dot Plots In Google Sheets

Taking this idea one step further, we can add colored symbols to indicate the relative counts.

Here’s an example with green dots for large counts, then orange, and then red dots for the smallest counts:

The formula is more complex and uses the IFS Function to categorize the inputs by relative size:

`=ArrayFormula(JOIN(CHAR(10),REPT(IFS(A1:E1/MAX(A1:E1)>0.85,"🟢",A1:E1/MAX(A1:E1)>0.5,"🟠",TRUE,"🔴"),A1:E1)))`

How does this formula work?

It’s an array formula that takes an input of the five numbers in columns A to E.

Inside the IFS function, the number (e.g. 7) is divided by the maximum number in the range (10 in this example) and compared to see if it’s bigger than the first threshold (0.85 in this example). If this is true, then the green dot is plotted, otherwise, the threshold is checked (0.5 in this example) If that’s true, then orange dot is used. If that is not true, then the red dot is used as the default.

The REPT function and the JOIN function perform the same way as step 3 above for the simpler single color example.

You can also replace the colored dots in this formula with their CHAR function equivalents, to keep it entirely formula driven:

`=ArrayFormula(JOIN(CHAR(10),REPT(IFS(A1:E1/MAX(A1:E1)>0.85,CHAR(128994),A1:E1/MAX(A1:E1)>0.5,CHAR(128992),TRUE,CHAR(128308)),A1:E1)))`

As a final step, don’t forget to rotate the cell text up, to get the dots plotted as columns rather than bars.

### Notes

This Dot Plot technique first appeared in issue 188 of my weekly Google Sheets Tips newsletter. Signup here if you’d like to receive it!.

Thanks to reader Marcel L. for his sharing his idea for the multi-colored dot plot.

In this post, I’m going to show you how to create radial bar charts in Google Sheets.

They look great and grab your attention, which is important in this era of information overload.

But they should be used sparingly because they’re harder to read than a regular bar chart (because it’s harder to compare the length of the curved bars).

Let’s begin with the data.

In this example, we’ll create a radial bar chart in Google Sheets with 3 series.

We need a column of values for these 3 series, for example, products with a number of units sold.

Next, we need some upper limit (max value) for our bars. This allows us to scale the bars properly.

Lastly, we need a helper column that calculates the difference between the max value and the actual value.

Here’s the data for the radial bar chart, in cells `E3:H6`:

Ok, I’m going to let you in on a little secret now…

This is not a single chart. No sir, it’s three charts overlaid on top of each other.

And yes, this means it takes three times as long to create!

### Step 1: Create the inner circle

Highlight the first row of data but exclude the max value column. In the example dataset above, highlight `E4:G4` and insert a chart.

Select a doughnut chart.

Under the Setup menu, make sure to check the “Switch rows/columns” checkbox, so your chart looks like this:

Under the customize menu of the chart tool, set the following conditions:

• Background color: None
• Chart border color: None
• Donut hole size: 67%
• Set Slice 2 color to none
• Remove the chart title
• Set the legend to none

This is what the inner donut should look like:

### Step 2: Create the middle circle

Repeat the steps above for the inner circle, but use the next row of data, choose a different color, and set the donut hole size to 77% (you may have to experiment with these percentages to line everything up at the end).

Drag the second donut chart on top of the first and line up the radial bars to get:

### Step 3: Create the outer circle

Again, repeat the steps above from the inner circle to create a third donut chart, using the third row of data, a different color, and setting the donut hole size to 81% (again, this might need tweaking to line everything up).

Drag this third donut chart on top of the other two and you have a radial bar chart in Google Sheets!

Note on editing charts:

Since the charts are placed on top of each other, you’ll only be able to access the top chart to edit. You’ll have to move it to the side to access the chart underneath, and then move that one if you want to access the inner chart.

### Step 4: Add the data labels

It gets messy to add the data labels to each chart through the chart editor, so I opted to create formulas to add my data labels into the cells next to each bar of the radial bar chart.

To access cells underneath the charts, click on a cell outside of the chart area and then use the arrow keys on your keyboard to reach the desired cell.

Once there, add the following formula:

`=E6&": "&TEXT(F6,"#,0")`

This formula uses the TEXT function to combine text and numbers in Google Sheets.

This shows the series name and value alongside each bar:

To finish, remove the gridlines from your Sheet to give the chart a clean look.

## Can I see an example worksheet for the radial bar chart?

Yes, here you go.

## Real World Examples of Radial Bar Charts

My friend Jeff Sauer, who founded Data Driven U to teach people data-driven marketing, contacted me recently about creating a radial bar chart for one of his workshops.

He is graciously sharing his report here, so you can see a radial bar chart with six rings:

This is a screenshot of his Google Sheet!

(If you’re looking for top draw digital marketing, then you should definitely check out Jeff’s site: DataDrivenU.com This is not an affiliate link, just a personal recommendation!)

You’ve probably also seen a radial bar chart in the wild with the Apple Watch Rings Chart!

## How To Create A Grid Chart In Google Sheets

Earlier this year, The Washington Post told a story about the effects of Coronavirus on the US workforce, and illustrated the story with grid charts.

Grid charts can show you the breakdown of the whole into constituent parts, to allow at-a-glance understanding of the big picture.

In this post, I’ll show you how to create a Grid Chart in Google Sheets.

## Grid Chart

Here’s a fictitious grid chart example in Google Sheets, showing how students fared in an exam:

Changing the percentages in the cells above the chart will automatically adjust the chart colors to match.

## How to create a grid chart in Google Sheets

1. Enter a % value in cell A1 e.g. 73%

2. Underneath, in cell A3, enter this formula:

`=SEQUENCE(10,10)`

This outputs a 10 by 10 grid of ascending numbers from 1 to 100.

3. Next, adjust the column widths (and row heights) so that the cells are square.

4. Wrap the sequence function with an IF statement and ArrayFormula to check whether the value in a given cell is greater than the threshold percentage:

`=ArrayFormula(IF(SEQUENCE(10,10)>A1*100,2,1))`

Your output now will look like this:

5. Highlight the 10 by 10 grid and add two conditional formatting rules:

• Green cell background if the value “Is equal to 1”
• Grey cell background if the value “Is equal to 2”

6. With the 10 by 10 grid highlighted, add thick white borders to separate the grids. Turn off the gridlines for the Sheet too, for an even cleaner look.

7. Keeping the grid highlighted, change the number format to a custom number format with the emoji symbol: 👤

Format > Number > More formats > Custom number format, then paste in the emmoji: 👤

This changes all the values to 👤, regardless of whether it’s a 1 or a 2.

8. Finally, center-align the values horizontally and vertically:

Nice!

When you change the % value, the chart will adjust automatically for you.

### 3-Color Grid Chart

To create the 3-color chart shown above, add an additional percentage value and modify the formula to compare against both percentage figures using two IF statements, e.g.:

`=ArrayFormula(IF(SEQUENCE(10,10)<=A1*100,1,IF(SEQUENCE(10,10)<=((A2+A1)*100),2,3)))`

In the second conditional test, you’ll notice I need to add percentage 1 and 2 together, to get the cumulative value at that point in time.

You also need to add an extra conditional formatting rule for the cells that have the value 3.

## Google Sheets Grid Chart Template

This will open a view-only version of the template. Feel free to make your own copy: File > Make a copy

(If you’re unable to open this file it may be because it’s from an outside organization, and my G Suite domain is not whitelisted at your organization. You may be able to ask your G Suite administrator about this.

In the meantime, feel free to open in an incognito window to view it.)

## Multi-colored line charts in Google Sheets

In this article, you’ll see how to create a multi-colored line chart in Google Sheets, for example when the line is increasing it’s colored green, when it’s decreasing it’s colored red, as shown in this image:

The embedded charts tool in Google Sheets is pretty basic, so we can only achieve this with a formula workaround.

## How do I create a multi-colored line chart in Google Sheets?

### Basic Example

which, when charted, looks like this:

To create the colored version seen at the top of this post, we need to add helper columns to the dataset, one to create a dataset of decreasing values, and an optional column to mark the inflection points (where the line changes from going up to going down, or vice versa).

The finished dataset looks like this:

The green highlighted cells contain formulas to calculate the decreasing data and the inflection points (see below). The first and last lines in column C and D (cells C2, D2, C11, D11 in this case) are left blank.

The formula in column C, starting in cell C3 down to C10 is:

`=IF(OR(B3>B4,B3<B2),B3,"")`

The formula in column D, for identifying inflection points, starting in cell D3 down to D10, is:

`=IF(OR(B3=MAX(B2:B4),B3=MIN(B2:B4)),B3,"")`

With this data table setup, highlight the whole table (use Ctrl + A, or Cmd + A on a Mac, to do this quickly) and `Insert > Chart...`:

Then simply format to the style you want, such as coloring the Increasing Series in green and the Decreasing Series in red:

### Problem with this basic interpretation of this chart

This method has a drawback though, if you have adjacent inflection points, i.e decreasing – increasing – decreasing, then it tricks the chart so it colors the whole section decreasing, as shown in this image:

### The fix

If you encounter this issue of adjacent inflection points, then you’ll need to create additional decreasing series to separate them, like this example dataset:

The final chart will then look like this:

Again we need to split the inflection point data into two columns so there are no adjacent inflection points in these series. The dataset now looks like:

and the final chart:

### Even more customization options

Select the Combo chart instead of the straightforward line chart and change the increasing series to a line and the decreasing series to area charts:

Your final chart will look like this:

And here’s the version with the inflection points marked:

## Can I see an example worksheet?

Yes, here you go.

## How to Create an Annotated Line Graph in Google Sheets

This post looks at how to make a line graph in Google Sheets, an advanced one with comparison lines and annotations, so the viewer can absorb the maximum amount of insight from a single chart.

For fun, I’ll also show you how to animate this line graph in Google Sheets.

Want your own copy of this line graph?

This chart was originally developed for The Write Life during their 4-day product sale earlier this year. It featured as part of a dashboard that was linked to the E-junkie sales platform and displayed sales data in real-time:

## The data table

The key to this line graph in Google Sheets is setting up the data table correctly, as this allows you to show an original data series (the grey lines in the animated GIF image), progress series lines (the colored lines in the animated GIF) and current data values (the data label on the series lines in the GIF).

In this example, I have date and times as my row headings, as I’m measuring data across a 4-day period, and sales category figures as column headings, as follows:

### Red columns

The red column, labeled with 1 above, contains historic data from the 2015 sale.

Red column 2 is a copy of the same data but only showing the progress up to a specific point in time.

In red column 3, the following formula will create a copy of the last value in column 2, which is used to add a value label on the chart:

`=IF(AND((C2+C3)=C2,C2<>0),C2,"")`

### Purple columns:

Purple columns 4,5 and 6 are exactly the same but for 2016 data. The formula in this case, in column 6, is:

`=IF(AND((F2+F3)=F2,F2<>0),F2,"")`

### Green columns:

Data in green columns 7 and 8, is our current year data (2017), so in this case there is no column of historic data. The formula in column 8 for this example is:

`=IF(AND((H2+H3)=H2,H2<>0),H2,"")`

## Creating the line graph in Google Sheets

Highlight your whole data table (Ctrl + A if you’re on a PC, or Cmd + A if you’re on a Mac) and select Insert > Chart from the menu.

In the Recommendations tab, you’ll see the line graph we’re after in the top-right of the selection. It shows the different lines and data points, so all that’s left to do is some formatting.

Format the series lines as follows:

• For the historic data (columns 1 and 4 in the data table), make light grey and 1px thick
• For the current data (columns 2, 5 and 7 in the data table), choose colors and make 2px thick
• For the “max” values (columns 3, 6 and 8 in the data table), match the current data colors, make the data point 7px and add data label values (see steps 1, 2 and 3 in the image below)

This is the same technique I’ve written about in more detail in this post:

How can I annotate data points in Google Sheets charts?

## Animating the chart with Apps Script

How about creating an animated version of this chart?

Oh, go on then.

When this script runs, it collects the historic data, then adds that data back to each new row after a 10 millisecond delay (achieved with the Utilities.sleep method and the SpreadsheetApp.flush method to apply all pending changes).

I don’t make any changes to the graph or create any fancy script to change it, I leave that up to the Google Chart Tool. It just does its best to keep up with the changing data, although as you can see from the GIF at the top of this post, it’s not silky smooth.

By the way, you can create and modify charts with Apps Script (see this waterfall chart example, or this funnel chart example) or with the Google Chart API (see this animated temperature chart). This may well be a better route to explore to get a smoother animation, but I haven’t tried yet…

Here’s the script:

```function startTimedData() {
var sheet = ss.getSheetByName('Animated Chart');
var lastRow = sheet.getLastRow()-12;

var data2015 = sheet.getRange(13,2,lastRow,1).getValues(); // historic data
var data2016 = sheet.getRange(13,5,lastRow,1).getValues(); // historic data

// new data that would be inputted into the sheet manually or from API
var data2017 = [[1],[7],[14],[19],[27],[32],[34],[36],[44],[49],[57],[65],[72],[76],[79],[86],[92],[99],[104],[109],[111],[112],[120],[128],[130],
[132],[133],[140],[144],[149],[151],[152],[158],[162],[170],[177],[179],[184],[188],[194],[200],[205],[211],[216],[224],[232],[238],
[241],[246],[248],[252],[259],[266],[268],[276],[284],[291],[299],[300],[301],[306],[311],[315],[316],[323],[324]];

for (var i = 0; i < data2015.length;i++) {
outputData(data2015[i],data2016[i],data2017[i],i);
}

}

function outputData(d1,d2,d3,i) {
var sheet = ss.getSheetByName('Animated Chart');

sheet.getRange(13+i,3).setValue(d1);
sheet.getRange(13+i,6).setValue(d2);
sheet.getRange(13+i,8).setValue(d3);
Utilities.sleep(10);
}

function clearData() {
var sheet = ss.getSheetByName('Animated Chart');
var lastRow = sheet.getLastRow()-12;

sheet.getRange(13,3,lastRow,1).clear();
sheet.getRange(13,6,lastRow,1).clear();
sheet.getRange(13,8,lastRow,1).clear();

}```

On lines 6 and 7, the script grabs the historic data for 2015 and 2016 respectively. For the contemporary 2017 data, I’ve created an array in my script to hold those values, since they don’t exist in my spreadsheet table.

This code is available here on GitHub.

```function onOpen() {