Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.width = 4
)
## ----setup--------------------------------------------------------------------
library(ggh4x)
## -----------------------------------------------------------------------------
# Separating layers by species and declaring (yet) unknown aesthetics
g <- ggplot(iris, aes(Sepal.Width, Sepal.Length)) +
geom_point(aes(swidth = Sepal.Width),
data = ~ subset(., Species == "setosa")) +
geom_point(aes(pleng = Petal.Length),
data = ~ subset(., Species == "versicolor")) +
geom_point(aes(pwidth = Petal.Width),
data = ~ subset(., Species == "virginica")) +
facet_wrap(~ Species, scales = "free_x")
# This generated quite some warnings, but this is no reason to worry!
g + scale_colour_multi(
aesthetics = c("swidth", "pleng", "pwidth"),
# Providing colours as a list distributes list-elements over different scales
colours = list(c("black", "green"),
c("gray", "red"),
c("white", "blue")),
guide = list(guide_colourbar(barheight = unit(35, "pt")))
)
## -----------------------------------------------------------------------------
# Reshaping the iris dataset for heatmap purposes
iriscor <- cor(t(iris[, 1:4]))
iriscor <- data.frame(
x = as.vector(row(iriscor)),
y = as.vector(col(iriscor)),
correlation = as.vector(iriscor)
)
iris_df <- transform(iris, id = seq_len(nrow(iris)))
# Setting up the heatmap
g <- ggplot(iris_df, aes(id, id)) +
geom_tilemargin(aes(species = Species)) +
geom_raster(aes(x, y, cor = correlation),
data = iriscor) +
coord_fixed()
g + scale_listed(scalelist = list(
scale_fill_distiller(palette = "RdBu", aesthetics = "cor"),
scale_fill_brewer(palette = "Set1", aesthetics = "species")
), replaces = c("fill", "fill"))
## -----------------------------------------------------------------------------
ggplot(diamonds, aes(price, carat, colour = clarity)) +
geom_point(shape = ".") +
scale_colour_brewer(palette = "Dark2", guide = "stringlegend")
## ----fig.show='hold', fig.width = 3-------------------------------------------
p <- ggplot(mpg, aes(displ, hwy)) +
geom_point(aes(colour = class))
p + guides(colour = guide_stringlegend(face = "bold", spacing = 15))
p + guides(colour = guide_stringlegend(spacing.x = 0, spacing.y = 5,
family = "mono", ncol = 2))
## ----fig.show='hold', fig.width = 3-------------------------------------------
set.seed(0)
df <- data.frame(
x = 1:10,
y = cumsum(rnorm(10))
)
p <- ggplot(pressure, aes(temperature, pressure)) +
geom_pointpath()
p + theme(aspect.ratio = 0.5)
p + theme(aspect.ratio = 2)
## -----------------------------------------------------------------------------
ggplot(pressure, aes(temperature, pressure)) +
geom_pointpath(linesize = 2, size = 2, mult = 1)
## -----------------------------------------------------------------------------
p + coord_polar(theta = "y")
## ----fig.show='hold', fig.width = 3-------------------------------------------
df <- data.frame(
x = as.vector(row(volcano)),
y = as.vector(col(volcano)),
value = as.vector(volcano)
)
g <- ggplot(df, aes(x, y, fill = value)) +
scale_fill_viridis_c(guide = "none") +
theme_void()
g + geom_polygonraster(position = position_lineartrans(shear = c(0.2, 0.2))) +
coord_fixed()
g + geom_polygonraster(position = position_lineartrans(angle = 45)) +
coord_fixed()
g + geom_polygonraster() + coord_polar()
## -----------------------------------------------------------------------------
ggplot(transform(mtcars, car = rownames(mtcars)),
aes(mpg, wt)) +
geom_point(aes(colour = as.factor(cyl))) +
geom_text_aimed(aes(label = car),
hjust = -0.2, size = 3,
xend = sum(range(mtcars$mpg)) / 2,
yend = sum(range(mtcars$wt)) / 2) +
coord_cartesian(clip = "off")
## -----------------------------------------------------------------------------
ggplot(mpg, aes(factor(1), fill = class)) +
geom_bar(show.legend = FALSE, position = "fill") +
geom_text_aimed(aes(x = 1.2, label = class, group = class),
position = position_fill(vjust = 0.5),
stat = "count") +
coord_polar("y") +
theme_void()
## -----------------------------------------------------------------------------
ggplot(diamonds, aes(cut, fill = clarity)) +
geom_bar(width = 1) +
geom_text_aimed(aes(label = cut, group = cut),
angle = 90,
stat = "count", nudge_y = 2000) +
scale_x_discrete(labels = NULL) +
coord_polar()
## -----------------------------------------------------------------------------
p <- ggplot(mpg, aes(displ - mean(displ), hwy - mean(hwy))) +
geom_point() +
theme(axis.line = element_line())
p + coord_axes_inside()
## -----------------------------------------------------------------------------
p + coord_axes_inside(labels_inside = TRUE) +
scale_x_continuous(
labels = ~ ifelse(.x == 0, "", .x),
guide = "axis_minor"
) +
scale_y_continuous(
labels = ~ ifelse(.x == 0, "", .x),
guide = "axis_truncated"
)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.