Plot measures of TB burden by country by specifying a metric from the TB burden data. Specify a country or vector of countries in order to plot them (by default plots all countries). Various other options are available for tuning the plot further.

  df = NULL,
  dict = NULL,
  metric = "e_inc_100k",
  metric_label = NULL,
  smooth = FALSE,
  conf = c("_lo", "_hi"),
  countries = NULL,
  years = NULL,
  compare_to_region = FALSE,
  facet = NULL,
  legend = "none",
  annual_change = FALSE,
  trans = "identity",
  scales = "fixed",
  interactive = FALSE,
  download_data = TRUE,
  save = TRUE,
  viridis_palette = "viridis",
  viridis_direction = -1,
  viridis_end = 0.9,
  verbose = FALSE,



Dataframe of TB burden data, as sourced by get_tb_burden. If not specified then will source the WHO TB burden data, either locally if available or directly from the WHO (if download_data = TRUE).


A tibble of the data dictionary. See get_data_dict for details. If not supplied the function will attempt to load a saved version of the dictionary. If this fails and download_data = TRUE then the dictionary will be downloaded.


Character string specifying the metric to plot


Character string specifying the metric label to use.


Logical, defaults to FALSE. Should the data be smoothed (using ggplot2::geom_smooth) prior to plotting. If set to TRUE then the confidence intervals shown are derived from the smooth and do not represent the underlying uncertainty in the data.


Character vector specifying the name variations to use to specify the upper and lower confidence intervals. Defaults to c("_lo", "_hi"), if set to NULL then no confidence intervals are shown. When annual_change = TRUE the confidence intervals represent the annual percentage change in the metrics confidence intervals.


A character string specifying the countries to target.


Numeric vector of years. Defaults to NULL which includes all years in the data.


Logical, defaults to FALSE. If TRUE all countries that share a region with those listed in countries will be plotted. Note that this will override settings for facet, unless it is set to "country".


Character string, the name of the variable to facet by.


Character string, defaults to "none". Position of the legend see ?ggplot2::theme for defaults but known options are: "none", "top", "right" and "bottom".


Logical, defaults to FALSE. If TRUE then the percentage annual change is computed for the specified metric.


A character string specifying the transform to use on the specified metric. Defaults to no transform ("identity"). Other options include log scaling ("log") and log base 10 scaling ("log10"). For a complete list of options see ggplot2::continous_scale.


Character string, see ?ggplot2::facet_wrap for details. Defaults to "fixed", alternatives are "free_y", "free_x", or "free".


Logical, defaults to FALSE. If TRUE then an interactive plot is returned.


Logical, defaults to TRUE. If not found locally should the data be downloaded from the specified URL?


Logical, should the data be saved for reuse during the current R session. Defaults to TRUE. If TRUE then the data is saved to the temporary directory specified by tempdir.


Character string indicating the viridis colour palette to use. Defaults to "viridis". Options include "cividis", "magma", "inferno", "plasma", and "viridis". For additional details see viridis_pal for additional details.


Numeric, indicating the direction for the colour palette (1 or -1), defaults to -1. See scale_color_viridis for additional details.


Numeric between 0 and 1, defaults to 0.9. The end point of the viridis scale to use. #' See scale_color_viridis for additional details.


Logical, defaults to FALSE. Should additional status and progress messages be displayed.


Additional arguments to pass to get_tb_burden.


A plot of TB Incidence Rates by Country

See also

get_tb_burden search_data_dict


## Get the WHO TB burden data and the data dictionary tb_burden <- get_tb_burden() dict <- get_data_dict() ## Get a random sample of 9 countries sample_countries <- sample(unique(tb_burden$country), 9) ## Plot incidence rates in these countries plot_tb_burden(df = tb_burden, dict = dict, facet = "country", countries = sample_countries)
if (FALSE) { ## Plot smoothed incidence rates in these countries plot_tb_burden( df = tb_burden, dict = dict, facet = "country", smooth = TRUE, countries = sample_countries ) ## Use data caching to plot incidence rates with free y scales plot_tb_burden(facet = "country", countries = sample_countries, scales = "free_y") ## Plot annual percentage change in incidence rates in selected countries plot_tb_burden( df = tb_burden, dict = dict, facet = "country", scales = "free_y", countries = sample_countries, annual_change = TRUE, conf = NULL ) ## Find variables relating to mortality in the WHO dataset search_data_dict(def = "mortality") ## Plot mortality rates (exc HIV) - without progress messages plot_tb_burden( metric = "e_mort_exc_tbhiv_100k", facet = "country", countries = sample_countries, scales = "free_y" ) }