Use group_by and summarise functions to see a summary of the original data set.

The table below shows the original gapmind tibble.

We would like to see per continent the total population by year. The group_by and summarise functions allow you to get an overview easily by using the pipe operator.

gapminder %>%
  group_by(continent, year) %>%
  summarise(continent.population = sum(as.numeric(pop))) %>% 
  head()

Pipe operation can chain your summarised data into a plot

gapminder %>%
  group_by(continent, year) %>%
  summarise(continent.population = sum(as.numeric(pop))) %>%
  ggplot(aes(x = year, y = continent.population)) +
  geom_area(aes(fill = continent), position = "stack") +
  ggtitle("Gapminder population growth per continent",
          subtitle = paste("from", min(gapminder$year), "to", max(gapminder$year)))

Static plot by applying ggplot

gapminder %>%
  filter(year == max(year), !continent == "Oceania") %>%
  ggplot(aes(x = continent, y = pop)) +
  geom_violin() + coord_flip() +
  geom_jitter(position = position_jitter(width = 0.05, height = 0),
              alpha = 1 / 4) +
  ggtitle(
    "Gapminder country population distribution, split by continent",
    subtitle = paste("for the year", max(gapminder$year))
  )

Interactive plot by applying htmlwidgets

library("highcharter")
gapminder %>%
  group_by(continent, year) %>%
  summarise(continent.population = sum(as.numeric(pop))) %>%
  hchart("area",
         hcaes(x = year, 
               y = continent.population, 
               group = continent)
         ) %>%
  hc_plotOptions(area = list(stacking = "normal")) %>%
  hc_tooltip(shared = TRUE)
LS0tDQp0aXRsZTogImdyb3VwX2J5IGFuZCBzdW1tYXJpc2UgZnVuY3Rpb25zIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCg0KIyMjIFVzZSBncm91cF9ieSBhbmQgc3VtbWFyaXNlIGZ1bmN0aW9ucyB0byBzZWUgYSBzdW1tYXJ5IG9mIHRoZSBvcmlnaW5hbCBkYXRhIHNldC4NCg0KVGhlIHRhYmxlIGJlbG93IHNob3dzIHRoZSBvcmlnaW5hbCBnYXBtaW5kIHRpYmJsZS4NCmBgYHtyfQ0KZ2FwbWluZGVyICU+JSBoZWFkKCwxKQ0KYGBgDQoNCldlIHdvdWxkIGxpa2UgdG8gc2VlIHBlciBjb250aW5lbnQgdGhlIHRvdGFsIHBvcHVsYXRpb24gYnkgeWVhci4gVGhlIGdyb3VwX2J5IGFuZCBzdW1tYXJpc2UgZnVuY3Rpb25zIGFsbG93IHlvdSB0byBnZXQgYW4gb3ZlcnZpZXcgZWFzaWx5IGJ5IHVzaW5nIHRoZSBwaXBlIG9wZXJhdG9yLg0KDQpgYGB7cn0NCmdhcG1pbmRlciAlPiUNCiAgZ3JvdXBfYnkoY29udGluZW50LCB5ZWFyKSAlPiUNCiAgc3VtbWFyaXNlKGNvbnRpbmVudC5wb3B1bGF0aW9uID0gc3VtKGFzLm51bWVyaWMocG9wKSkpICU+JSANCiAgaGVhZCgpDQpgYGANCg0KIyMjIFBpcGUgb3BlcmF0aW9uIGNhbiBjaGFpbiAgeW91ciBzdW1tYXJpc2VkIGRhdGEgaW50byBhIHBsb3QNCg0KYGBge3J9DQpnYXBtaW5kZXIgJT4lDQogIGdyb3VwX2J5KGNvbnRpbmVudCwgeWVhcikgJT4lDQogIHN1bW1hcmlzZShjb250aW5lbnQucG9wdWxhdGlvbiA9IHN1bShhcy5udW1lcmljKHBvcCkpKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0geWVhciwgeSA9IGNvbnRpbmVudC5wb3B1bGF0aW9uKSkgKw0KICBnZW9tX2FyZWEoYWVzKGZpbGwgPSBjb250aW5lbnQpLCBwb3NpdGlvbiA9ICJzdGFjayIpICsNCiAgZ2d0aXRsZSgiR2FwbWluZGVyIHBvcHVsYXRpb24gZ3Jvd3RoIHBlciBjb250aW5lbnQiLA0KICAgICAgICAgIHN1YnRpdGxlID0gcGFzdGUoImZyb20iLCBtaW4oZ2FwbWluZGVyJHllYXIpLCAidG8iLCBtYXgoZ2FwbWluZGVyJHllYXIpKSkNCmBgYA0KDQojIyMgU3RhdGljIHBsb3QgYnkgYXBwbHlpbmcgZ2dwbG90DQoNCmBgYHtyfQ0KZ2FwbWluZGVyICU+JQ0KICBmaWx0ZXIoeWVhciA9PSBtYXgoeWVhciksICFjb250aW5lbnQgPT0gIk9jZWFuaWEiKSAlPiUNCiAgZ2dwbG90KGFlcyh4ID0gY29udGluZW50LCB5ID0gcG9wKSkgKw0KICBnZW9tX3Zpb2xpbigpICsgY29vcmRfZmxpcCgpICsNCiAgZ2VvbV9qaXR0ZXIocG9zaXRpb24gPSBwb3NpdGlvbl9qaXR0ZXIod2lkdGggPSAwLjA1LCBoZWlnaHQgPSAwKSwNCiAgICAgICAgICAgICAgYWxwaGEgPSAxIC8gNCkgKw0KICBnZ3RpdGxlKA0KICAgICJHYXBtaW5kZXIgY291bnRyeSBwb3B1bGF0aW9uIGRpc3RyaWJ1dGlvbiwgc3BsaXQgYnkgY29udGluZW50IiwNCiAgICBzdWJ0aXRsZSA9IHBhc3RlKCJmb3IgdGhlIHllYXIiLCBtYXgoZ2FwbWluZGVyJHllYXIpKQ0KICApDQoNCmBgYA0KDQojIyMgSW50ZXJhY3RpdmUgcGxvdCBieSBhcHBseWluZyBodG1sd2lkZ2V0cw0KYGBge3J9DQpsaWJyYXJ5KCJoaWdoY2hhcnRlciIpDQpnYXBtaW5kZXIgJT4lDQogIGdyb3VwX2J5KGNvbnRpbmVudCwgeWVhcikgJT4lDQogIHN1bW1hcmlzZShjb250aW5lbnQucG9wdWxhdGlvbiA9IHN1bShhcy5udW1lcmljKHBvcCkpKSAlPiUNCiAgaGNoYXJ0KCJhcmVhIiwNCiAgICAgICAgIGhjYWVzKHggPSB5ZWFyLCANCiAgICAgICAgICAgICAgIHkgPSBjb250aW5lbnQucG9wdWxhdGlvbiwgDQogICAgICAgICAgICAgICBncm91cCA9IGNvbnRpbmVudCkNCiAgICAgICAgICkgJT4lDQogIGhjX3Bsb3RPcHRpb25zKGFyZWEgPSBsaXN0KHN0YWNraW5nID0gIm5vcm1hbCIpKSAlPiUNCiAgaGNfdG9vbHRpcChzaGFyZWQgPSBUUlVFKQ0KYGBgDQoNCg0K