PlotVsLTime {s2dv} | R Documentation |
Plot a score along the forecast time with its confidence interval
Description
Plot the correlation (Corr()
), the root mean square error
(RMS()
) between the forecast values and their observational
counterpart, the slope of their trend (Trend()
), the
InterQuartile range, maximum-mininum, standard deviation or median absolute
Deviation of the ensemble members (Spread()
), or the ratio between
the ensemble spread and the RMSE of the ensemble mean (RatioSDRMS()
)
along the forecast time for all the input experiments on the same figure
with their confidence intervals.
Usage
PlotVsLTime(
var,
toptitle = "",
ytitle = "",
monini = 1,
freq = 12,
nticks = NULL,
limits = NULL,
listexp = c("exp1", "exp2", "exp3"),
listobs = c("obs1", "obs2", "obs3"),
biglab = FALSE,
hlines = NULL,
leg = TRUE,
siglev = FALSE,
sizetit = 1,
show_conf = TRUE,
fileout = NULL,
width = 8,
height = 5,
size_units = "in",
res = 100,
...
)
Arguments
var |
Matrix containing any Prediction Score with dimensions: |
toptitle |
Main title, optional. |
ytitle |
Title of Y-axis, optional. |
monini |
Starting month between 1 and 12. Default = 1. |
freq |
1 = yearly, 12 = monthly, 4 = seasonal, ... Default = 12. |
nticks |
Number of ticks and labels on the x-axis, optional. |
limits |
c(lower limit, upper limit): limits of the Y-axis, optional. |
listexp |
List of experiment names, optional. |
listobs |
List of observation names, optional. |
biglab |
TRUE/FALSE for presentation/paper plot. Default = FALSE. |
hlines |
c(a,b, ..) Add horizontal black lines at Y-positions a,b, ... |
leg |
TRUE/FALSE if legend should be added or not to the plot. Default = TRUE. |
siglev |
TRUE/FALSE if significance level should replace confidence
interval. |
sizetit |
Multiplicative factor to change title size, optional. |
show_conf |
TRUE/FALSE to show/not confidence intervals for input variables. |
fileout |
Name of output file. Extensions allowed: eps/ps, jpeg, png, pdf, bmp and tiff. The default value is NULL. |
width |
File width, in the units specified in the parameter size_units (inches by default). Takes 8 by default. |
height |
File height, in the units specified in the parameter size_units (inches by default). Takes 5 by default. |
size_units |
Units of the size of the device (file or window) to plot in. Inches ('in') by default. See ?Devices and the creator function of the corresponding device. |
res |
Resolution of the device (file or window) to plot in. See ?Devices and the creator function of the corresponding device. |
... |
Arguments to be passed to the method. Only accepts the following
graphical parameters: |
Details
Examples of input:
Model and observed output from Load()
then Clim()
then
Ano()
then Smoothing()
:
(nmod, nmemb, nsdate, nltime) and (nobs, nmemb, nsdate, nltime)
then averaged over the members
Mean1Dim(var_exp/var_obs, posdim = 2)
:
(nmod, nsdate, nltime) and (nobs, nsdate, nltime)
then passed through
Corr(exp, obs, posloop = 1, poscor = 2)
or
RMS(exp, obs, posloop = 1, posRMS = 2)
:
(nmod, nobs, 3, nltime)
would plot the correlations or RMS between each exp & each obs as a function
of the forecast time.
Examples
# Load sample data as in Load() example:
example(Load)
clim <- Clim(sampleData$mod, sampleData$obs)
ano_exp <- Ano(sampleData$mod, clim$clim_exp)
ano_obs <- Ano(sampleData$obs, clim$clim_obs)
runmean_months <- 12
smooth_ano_exp <- Smoothing(data = ano_exp, runmeanlen = runmean_months)
smooth_ano_obs <- Smoothing(data = ano_obs, runmeanlen = runmean_months)
dim_to_mean <- 'member' # mean along members
required_complete_row <- 'ftime' # discard startdates for which there are NA leadtimes
leadtimes_per_startdate <- 60
corr <- Corr(MeanDims(smooth_ano_exp, dim_to_mean),
MeanDims(smooth_ano_obs, dim_to_mean),
comp_dim = required_complete_row, dat_dim = 'dataset',
limits = c(ceiling((runmean_months + 1) / 2),
leadtimes_per_startdate - floor(runmean_months / 2)))
# Combine corr results for plotting
corr_combine <- abind::abind(corr$conf.lower, corr$corr, corr$conf.upper, corr$p.val,
along = 0)
corr_combine <- Reorder(corr_combine, c(2, 3, 1, 4))
PlotVsLTime(corr_combine, toptitle = "correlations", ytitle = "correlation",
monini = 11, limits = c(-1, 2), listexp = c('CMIP5 IC3'),
listobs = c('ERSST'), biglab = FALSE, hlines = c(-1, 0, 1))