Plot time series in the style of the California Current IEA. Dashed lines are
used in between missing data and points colored by color_pts. Include a
ribbon around y if low (y_lo) and high (y_hi) values are provided.
Include long-term average if add_avg = TRUE with average as a black
dashed line and solid lines indicating the standard deviation in the color
of color_avg. Include rectangle in the color of color_avg between the
standard deviation of the long-term average since x_recent if provided.
Include icons in the right-hand margin for recent trend (→, ↗, ↘) and
recent average (o, +, -) if stable, increasing, or decreasing (respectively)
relative to the long-term standard deviation.
plot_ts(
d,
x = year,
y = index,
y_lo = SElo,
y_hi = SEup,
x_recent = 5,
units_recent = "years",
add_avg = TRUE,
add_icons = TRUE,
font_size = 24,
icon_size = font_size/2,
color_pts = rgb(225, 118, 44, max = 255),
color_avg = rgb(63, 173, 213, max = 255),
color_hilo = "lightgrey",
alpha_avg = 0.8,
alpha_hilo = 0.8,
theme_plot = theme_iea
)Default dataset to use for plotting with
ggplot2::ggplot(). Typically includes columns:
year, index, SElo and SEup.
column for x axis from d, unquoted. Defaults to year.
column for y axis from d, unquoted. Defaults to index.
unquoted column for low value to apply to gray ribbon, typically
y - sd(y). Defaults to SElo if present.
unquoted column for highy value to apply to gray ribbon, typically
y + sd(y). Defaults to SEhi if present.
duration of x, typically an integer, for which to consider
as recent period to derive rectangle and icons. Defaults to 5, as
in years.
units to describe x, used in caption.
whether to add average as a black dashed line and solid lines
indicating the standard deviation in the color of color_avg. Defaults
to TRUE.
whether to include icons in the right-hand margin for recent
trend (→, ↗, ↘) and recent average (o, +, -) if stable, increasing, or
decreasing (respectively) relative to the long-term standard deviation.
Defaults to TRUE.
font size. Defaults to 24.
size of icon font. Defaults to half the font_size, 12.
color for points, as named color (see
colors()) or hexadecimal value as provided by red
green blue rgb() specification. Defaults to dusty
orange.
color for standard deviation lines around long-term average
and rectangle between since x_recent.
color for ribbon around y between values y_lo and
y_hi.
transparency (0 to 1) for colored elements of long-term average: standard deviation and recent rectangle.
transparency (0 to 1) for ribbon around y between values
y_lo and y_hi.
theme function to apply to the ggplot. Defaults to
theme_iea.
This function returns a ggplot object with attributes for: caption,
recent_trend and recent_avg.
The attribute caption includes a textual summary.
# example time series dataset with some NAs to show dashed line between non-NA values
ts1
#> # A tibble: 30 × 8
#> year index Y2 SElo SEup timeseries metric type
#> <dbl> <dbl> <dbl> <dbl> <dbl> <chr> <lgl> <chr>
#> 1 1986 1.95 1.95 -0.0482 3.95 (a) Trend and recent mean NA current.da…
#> 2 1987 1.63 1.63 -0.368 3.63 (a) Trend and recent mean NA current.da…
#> 3 1988 3.46 3.46 1.46 5.46 (a) Trend and recent mean NA current.da…
#> 4 1989 NA NA NA NA (a) Trend and recent mean NA current.da…
#> 5 1990 NA NA NA NA (a) Trend and recent mean NA current.da…
#> 6 1991 NA NA NA NA (a) Trend and recent mean NA current.da…
#> 7 1992 -1.02 -1.02 -3.02 0.983 (a) Trend and recent mean NA current.da…
#> 8 1993 1.53 1.53 -0.473 3.53 (a) Trend and recent mean NA current.da…
#> 9 1994 3.91 3.91 1.91 5.91 (a) Trend and recent mean NA current.da…
#> 10 1995 4.35 4.35 2.35 6.35 (a) Trend and recent mean NA current.da…
#> # … with 20 more rows
# defaults to include all options data frame contains x, y, SElo, SEhi
g <- plot_ts(ts1)
g
# show the caption attributed to the returned ggplot object
cat(attr(g, "caption"))
#> The index changed by less than one standard deviation of the full time series over the last 5 years (indicated by icon: →). The mean of the last 5 years was more than one standard deviation below the mean of the full time series (indicated by icon: +).
# without SElo or SEhi columns, just year and index
g <- plot_ts(ts1[,c("year","index")])
g
# same caption as previously, since defaults to x_recent=5 and add_avg=T
cat(attr(g, "caption"))
#> The index changed by less than one standard deviation of the full time series over the last 5 years (indicated by icon: →). The mean of the last 5 years was more than one standard deviation below the mean of the full time series (indicated by icon: +).
# without default x_recent, add_avg, or add_icons
g <- plot_ts(ts1, x_recent=NA, add_icons=F, add_avg=F)
g
# no caption, since missing x_recent and add_avg
cat(attr(g, "caption")) # empty caption without x_recent