• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Data Viz with Python and R

Learn to Make Plots in Python and R

  • Home
  • Python Viz
  • Seaborn
  • Altair
  • R Viz
  • ggplot2
  • About
    • Privacy Policy
  • Show Search
Hide Search

6 Tips to Make Beautiful Tables with R Package gt

datavizpyr · October 20, 2020 ·

Making tables as part of your data visualization strategy can be a hit or miss. For example, a table with too many numbers screams for a plot instead of a table. Basically, challenge lies in using tables at the right time in right way. Luckily, we are in a much better position to make beautiful tables using R. In this post, we will see 6 simple tips to get started with making tables using the R package gt. The R package gt is developed and maintained by RStudio

With the gt package, anyone can make wonderful-looking tables using the R programming language. The gt philosophy: we can construct a wide variety of useful tables with a cohesive set of table parts. These include the table header, the stub, the column labels and spanner column labels, the table body, and the table footer.

Let us load the R packages needed.

library(tidyverse)
library(gt)
library(palmerpenguins)

We will use the palmer penguin dataset to create a summary table of average species’ body mass.

df <- penguins %>% 
  drop_na() %>%
  group_by(species) %>%
  summarize(mean_body_mass = mean(body_mass_g))

Out simple data frame looks like this and we would make table from this dataframe.

df
## # A tibble: 3 x 2
##   species   mean_body_mass
##   &lt;fct&gt;              &lt;dbl&gt;
## 1 Adelie             3706.
## 2 Chinstrap          3733.
## 3 Gentoo             5092.

1. Simple table with gt

With gt(), we can make a simple table by providing the dataframe to gt() function

# a simple gt table
df %>% gt()

And we get a simple table that looks like this.

Simple gt table
Simple gt table

2. How to Add a Title to a Table with gt?

It will be nice to add a title to our table. We can add title to a table in gt using tab_header() function as shown below. Within tab_header() function, we specify “title” argument with the title text we want.

df %>% 
  gt()%>%
  tab_header(
    title = "Penguin Data Summary"
  )

Now our simple table has a title.

How To Add Title to gt Table?
How To Add Title to gt Table?

3. How to Make the Title bold with markdown?

We can make our title bold using markdown inside tabe_header() function. Here we can simply use markdown syntax to do this.

df %>% 
  gt()%>%
  tab_header(
    title = md("**Penguin Data Summary**")
  )
How to make title bold gt table?
How to make title bold gt table?

4. How to Format Numbers in gt with fmt_number()?

A table with numbers can often be difficult read. One way to make it easy to read is to format the numbers. Here we use fmt_number() function to format the numbers with place value and show just two decimal points. We specify which column to format.

df %>% 
  gt()%>%
  tab_header(
    title = md("**Penguin Data Summary**")
  ) %>%
 fmt_number(
    columns = vars(mean_body_mass),
    decimals = 2
  ) 

How to add source note gt table?
How to add source note gt table?

5. How to Add Source Note using gt table?

We can add source note at the bottom of the table using gt’s tab_source_note() function. We specify the text we want as source note using “source_note” as argument.

df %>% 
  gt()%>%
  tab_header(
    title = md("**Penguin Data Summary**")
  ) %>%
  fmt_number(
    columns = vars(mean_body_mass),
    decimals = 2
  ) %>%
  tab_source_note(
    source_note = "Data Source: Dr. Kristen Gorman & Palmer Station, Antarctica LTER."
  ) 
How to add source note gt table?
How to add source note gt table?

6. How to Highlight one or more rows with color in gt?

Adding colors to either select rows or columns can help highlight part of the table. With gt, we can selectively add colors to rows or columns using tab_style() function.

In the example below, we specify colors using “style” argument. We specify the condition for highlighting rows using locations as shown below. Here we highlight the row with mean body mass is greater than 4000 in green color.

df %>% 
  gt()%>%
  tab_header(
    title = md("**Penguin Data Summary**")
  ) %>%
 fmt_number(
    columns = vars(mean_body_mass),
    decimals = 2
  ) %>%
  tab_source_note(
    source_note = "Data Source: Dr. Kristen Gorman & Palmer Station, Antarctica LTER."
  ) %>%
  tab_style(
    style = list(
      cell_fill(color = "green"),
      cell_text(weight = "bold")
      ),
    locations = cells_body(
      columns = vars(species,mean_body_mass),
      rows = mean_body_mass >= 4000)
  )

How to add colors to rows  gt table?
How to add colors to rows gt table?

Related posts:

How to Make Heatmap with ggplot2?How To Make Simple Heatmaps with ggplot2 in R? Stacked Barplots Side By Side with ggplot2 in RHow to Make Horizontal Stacked Barplots with ggplot2 in R? Scatter Plot R: Fill color by variableHow To Color Scatter Plot by Variable in R with ggplot2? How to Align Title Position in ggplot2?How To Adjust Title Position in ggplot2 ?

Filed Under: R, tables with gt Tagged With: ggplot2, R, tables with gt

Primary Sidebar

Tags

Altair barplot Boxplot boxplot python boxplot with jiitered text labels Bubble Plot Color Palette Countplot Density Plot Facet Plot gganimate ggplot2 ggplot2 Boxplot ggplot2 error ggplot boxplot ggridges ggtext element_markdown() Grouped Barplot R heatmap heatmaps Histogram Histograms Horizontal boxplot Python lollipop plot Maps Matplotlib Pandas patchwork pheatmap Pyhon Python R RColorBrewer reorder boxplot ggplot Ridgeline plot Scatter Plot Scatter Plot Altair Seaborn Seaborn Boxplot Stock Price Over Time Stripplot UpSetR Violinplot Violin Plot World Map ggplot2

Buy Me a Coffee

Copyright © 2025 · Daily Dish Pro on Genesis Framework · WordPress · Log in

Go to mobile version