sthm: Makes a spatio-temporal heatmap of a disease

Description Usage Arguments Value Examples

View source: R/sthm.R

Description

Makes a spatio-temporal heatmap of a disease

Usage

1
2
sthm(df, f = function(x) x, col = heat.colors(12), col_na = "grey",
  x = 0.85, show_legend = FALSE, map = NULL, xm = 0.2)

Arguments

df

A data frame. Should contains three variables: one of class "character", one of class "Date", and one colums of 'numeric' class containing the value to represent.

f

a transforming function. By default the identity function.

col

a vector of colors to use for the heatmap.

col_na

the color with which to represent the missing values.

x

a numeric values between 0 and 1. In proportion of the figure's range, this number express the location of the right end of the heatmap, and can be used for the beginning of a legend point

show_legend

logical value saying whether the names of the provinces and the value breaks should be returned as an output of the function call or not. By default FALSE.

map

object of class Spatial (see Details)

xm

a numeric value between 0 and 1. In proportion of the figure's range, this number express the location of the right end of the map, print at the left of the heatmap.

Value

A numeric vector corresponding to the value of the legend, returned invisibly.
If show_legend = TRUE, return a list containing a numeric vector called legend corresponding to the value of the legend, and a character vector called province containing the name of the province in the order of the figure.

A map of the province can be print on the left of the heatmap with the parameters map and xm. The map need to have the same spatial definitions as the data frame (df) contains in the first column of the slots data, so that each line of the heatmap can be link with the map.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Packages and parameters
library(gdpm)
library(dplyr)
library(magrittr)
par(xpd = TRUE)


# A heatmap of the ILI data:
ili <- getid(ili, from = 2004) %>%
  dplyr::mutate(time = as.Date(
                paste0(year, "-", as.numeric(month), "-", 15))) %>%
  dplyr::select(province, time, contains("incidence")) %>%
  dplyr::arrange(time)
sthm(ili)

# With a legend by using legend2 function:
col <- rev(heat.colors(10))
a <- sthm(ili, col = col)
legend2(0.925, 1, legend =  a, col = col, postext = "right",
        h = 1/(length(a)-1), w = 0.04, tl = 0.01, s = 0.005)

# A large number of color can be used to
col <- rev(heat.colors(100))
a <- sthm(ili, col = col, col_na = "blue")
legend2(0.925, 1, legend =  a, col = col, postext = "right", col_na = "blue",
        h = 1/(length(a)-1), w = 0.04, tl = 0.01, s = 0.005)

col <- rev(heat.colors(400))
a <- sthm(ili, col = col, col_na = "blue")
legend2(0.925, 1, legend =  a, col = col, postext = "right", col_na = "blue",
        h = 1/(length(a)-1), w = 0.04, tl = 0.01, s = 0.005)

# with some data transformations in order to reflect better the contrasts:
a <- sthm(ili, f = sqrt, col = col)
legend2(0.925, 1, legend =  a, col = col, postext = "right",
        h = 1/(length(a)-1), w = 0.035, tl = 0.01, s = 0.005, cex = 0.8)

a <- sthm(ili, f = function(x) x^.3, col = col)
legend2(0.925, 1, legend =  a, col = col, postext = "right",
        h = 1/(length(a)-1), w = 0.04, tl = 0.01, s = 0.005, cex = 0.8)

# changing the color of the missing values:
dengue <- getid(dengue)  %>%
  mutate(time = as.Date(paste0(year, "-", as.numeric(month), "-", 15))) %>%
  select(province, time, contains("incidence")) %>%
  arrange(time)
col <- rev(heat.colors(400))

a <- sthm(dengue, f = sqrt, col = col)
legend2(0.925, 1, legend =  a, col = col, postext = "right",
        col_na = "grey", h = 1/(length(a) - 1), w = 0.04, tl = 0.01,
          s = 0.005)

a <- sthm(dengue, f = sqrt, col = col, col_na = "blue")
legend2(0.925, 1, legend =  a, col = col, postext = "right", n_round = 2,
        col_na = "blue", h = 1/(length(a) - 1), w = 0.04, tl = 0.01,
          s = 0.005)

# to order the provinces by latitude:
library(gadmVN)
map <- gadmVN::gadm("1980-01-01", merge_hanoi = TRUE) %>% sf::as_Spatial()
coord <- sp::coordinates(map) %>% as.data.frame()
coord$province <- unique(map@data[, 1])
coord <- coord[order(coord$V2),]
coord$order <- seq(1, dim(coord)[1], 1)
dengue_order <- left_join(dengue, coord, by = "province") %>%
      arrange(order) %>%
      select(-order, -V1, -V2)
a <- sthm(dengue_order, f = function(x) x^.3, col = col)
legend2(0.925, 1, legend =  a, col = col, postext = "right",
      h = 1/(length(a)-1), w = 0.04, tl = 0.01, s = 0.005)


# to print the map of the province in the order of the figure:
a <- sthm(dengue_order, f = function(x) x^.3, col = col, map = map)
legend2(0.925, 1, legend =  a, col = col, postext = "right",
      h = 1/(length(a)-1), w = 0.04, tl = 0.01, s = 0.005)

# to print the map of the province and the legend in the order of the figure:
a <- sthm(dengue_order, f = function(x) x^.3, col = col, map = map,
      show_legend = TRUE)
legend2(0.925, 1, legend =  a$legend, col = col, postext = "right",
      h = 1/(length(col)), w = 0.04, tl = 0.01, s = 0.005)
a
# list containing the legend vector and the province vector which correspond
# to the name of the province in the order of the figure.

choisy/poseid documentation built on Aug. 22, 2019, 4:45 a.m.