
fortify.zoo
takes a zoo object and converts it into a data frame
(intended for ggplot2). autoplot.zoo
takes a zoo object and returns a
ggplot2 object. It essentially uses the mapping aes(x = Time, y = Value, group = Series)
and adds colour = Series
, linetype = Series
, shape = Series
in the case of a multivariate series with facets = NULL
.
# S3 method for zoo
autoplot(object, geom = "line", facets, …)
# S3 method for zoo
fortify(model, data,
names = c("Index", "Series", "Value"),
melt = FALSE, sep = NULL, …)
facet_free(facets = Series ~ ., margins = FALSE, scales = "free_y", …) yearmon_trans(format = "%b %Y", n = 5)
scale_x_yearmon(…, format = "%b %Y", n = 5)
scale_y_yearmon(…, format = "%b %Y", n = 5)
yearqtr_trans(format = "%Y-%q", n = 5)
scale_x_yearqtr(…, format = "%Y-%q", n = 5)
scale_y_yearqtr(…, format = "%Y-%q", n = 5)
an object of class "zoo"
.
character specifying which geom
to use
in qplot
.
specification of facets
for qplot
. The
default in the autoplot
method is to use facets = NULL
for univariate
series and facets = Series ~ .
for multivariate series.
further arguments passed to qplot
for autoplot
(and not used for fortify
). For the scale_*_*
functions the arguments are passed on to scale_*_continuous
.
an object of class "zoo"
to be converted to
a "data.frame"
.
not used (required by generic fortify
method).
(list of) character vector(s). New names given to index/time column, series indicator (if melted), and value column (if melted). If only a subset of characters should be changed, either NAs can be used or a named vector.
If specified then the Series column is split into multiple columns using sep as the split character.
Should the resulting data frame be in long format (melt = TRUE
)
or wide format (melt = FALSE
).
As in facet_grid
.
As in facet_grid
except it defaults to "free_y"
.
A format acceptable to format.yearmon or format.yearqtr.
Approximate number of axis ticks.
fortify.zoo
returns a data.frame
either in long format
(melt = TRUE
) or in wide format (melt = FALSE
). The
long format has three columns: the time Index
, a
factor indicating the Series
, and the corresponding Value
.
The wide format simply has the time Index
plus all columns
of coredata(model)
.
autoplot.zoo
returns a ggplot
object.
Convenience interface for visualizing zoo objects with ggplot2.
autoplot.zoo
uses fortify.zoo
(with melt = TRUE
)
to convert the zoo object into a data frame and then uses a suitable
aes()
mapping to visiualize the series.
# NOT RUN {
if(require("ggplot2") && require("scales")) {
## example data
x.Date <- as.Date(paste(2003, 02, c(1, 3, 7, 9, 14), sep = "-"))
x <- zoo(rnorm(5), x.Date)
xlow <- x - runif(5)
xhigh <- x + runif(5)
z <- cbind(x, xlow, xhigh)
## univariate plotting
autoplot(x)
## by hand
ggplot(aes(x = Index, y = Value), data = fortify(x, melt = TRUE)) +
geom_line() + xlab("Index") + ylab("x")
## adding series one at a time
last_plot() + geom_line(aes(x = Index, y = xlow), colour = "red", data = fortify(xlow))
## add ribbon for high/low band
ggplot(aes(x = Index, y = x, ymin = xlow, ymax = xhigh), data = fortify(x)) +
geom_ribbon(fill = "darkgray") + geom_line()
## multivariate plotting in multiple or single panels
autoplot(z) ## multiple without color/linetype
autoplot(z, facets = Series ~ .) ## multiple with series-dependent color/linetype
autoplot(z, facets = NULL) ## single with series-dependent color/linetype
## by hand with color/linetype and with/without facets
qplot(x = Index, y = Value, group = Series, colour = Series,
linetype = Series, facets = Series ~ ., data = fortify(z, melt = TRUE)) +
geom_line() + xlab("Index") + ylab("")
ggplot(aes(x = Index, y = Value, group = Series, colour = Series, linetype = Series),
data = fortify(z, melt = TRUE)) + geom_line() + xlab("Index") + ylab("")
## variations
autoplot(z, geom = "point")
autoplot(z, facets = NULL) + geom_point()
autoplot(z, facets = NULL) + scale_colour_grey() + theme_bw()
## for "ts" series via coercion
autoplot(as.zoo(EuStockMarkets))
autoplot(as.zoo(EuStockMarkets), facets = NULL)
autoplot(z) +
aes(colour = NULL, linetype = NULL) +
facet_grid(Series ~ ., scales = "free_y")
autoplot(z) + aes(colour = NULL, linetype = NULL) + facet_free() # same
z.yq <- zooreg(rnorm(50), as.yearqtr("2000-1"), freq = 4)
autoplot(z.yq) + scale_x_yearqtr()
## mimic matplot
data <- cbind(A = c(6, 1, NA, NA), B = c(16, 4, 1, NA), C = c(25, 7, 2, 1))
autoplot(zoo(data), facet = NULL) + geom_point()
## with different line types
autoplot(zoo(data), facet = NULL) + geom_point() + aes(linetype = Series)
## illustrate just fortify() method
z <- zoo(data)
fortify(z)
fortify(z, melt = TRUE)
fortify(z, melt = TRUE, names = c("Time", NA, "Data"))
fortify(z, melt = TRUE, names = c(Index = "Time"))
## with/without splitting
z <- zoo(cbind(a.A = 1:2, a.B = 2:3, b.A = 3:4, c.B = 4:5))
fortify(z)
fortify(z, melt = TRUE, sep = ".",
names = list(Series = c("Lower", "Upper")))
}
# }
Run the code above in your browser using DataLab