Convert a tibble built using freq_table
or cont_table
in a
shape that makes it easy to plot.
pre_plot(data, f = NULL, plot = NULL, ...)# S3 method for freq_table
pre_plot(
data,
f = NULL,
plot = c("histogram", "freqpoly", "lorenz", "stacked", "cumulative"),
...
)
# S3 method for cont_table
pre_plot(data, ...)
a tibble returned by the freq_table
or the
cont_table
function, which should contain the center of the
classes (x
) and at least one measure of the frequencies or
densities (one of f
, n
, p
, d
),
mandatory argument if the tibble contains more than one frequency or density,
for object of class freq_table
one of histogram
,
freqpoly
, stacked
, cumulative
and lorenz
(see the
details section),
further arguments.
a tibble
The pre_plot
function returns a tibble containing:
if plot = histogram
, x
, y
that should be
passed to geom_polygon
,
if plot = freqpoly
x
and y
that should be passed to geom_line
,
if plot = stacked
x
and ypos
that should be passed
respectively to geom_col
and to geom_text
to draw labels on
the right position,
if plot = cumulative
x
, y
, xend
and yend
that should be passed to
geom_segment
,
if plot = lorenz
for the Lorenz curve, F
and M
for the
coordinates of the polygons under the Lorenz curve, pts
is
logical which the defines the subset of points that belongs to the
Lorenz curve.
# NOT RUN {
library("dplyr")
library("ggplot2")
pad <- padova %>%
freq_table(price, breaks = c(100, 200, 300, 400, 500, 1000),
right = TRUE, f = "Npd")
pad %>% pre_plot(f = "d") %>% ggplot() + geom_polygon(aes(x, y))
pad %>% pre_plot(f = "d", plot = "freqpoly") %>%
ggplot() + geom_line(aes(x, y))
## A pie chart
wages %>% freq_table(sector, "p", total = FALSE) %>%
pre_plot("p", plot = "stacked") %>% ggplot(aes(x = 2, y = p, fill = sector)) +
geom_col() + geom_text(aes(y = ypos, label = sector)) +
coord_polar(theta = "y") + theme_void() + guides(fill = FALSE)
# }
Run the code above in your browser using DataLab