Description Usage Arguments Details Examples
View source: R/axis-secondary.R
This function is used in conjunction with a position scale to create a secondary axis, positioned opposite of the primary axis. All secondary axes must be based on a one-to-one transformation of the primary axes.
1 2 3 4 5 6 7 |
trans |
A transformation formula |
name |
The name of the secondary axis |
breaks |
One of:
|
labels |
One of:
|
sec_axis
is used to create the specifications for a secondary axis.
Except for the trans
argument any of the arguments can be set to
derive()
which would result in the secondary axis inheriting the
settings from the primary axis.
dup_axis
is provide as a shorthand for creating a secondary axis that
is a duplication of the primary axis, effectively mirroring the primary axis.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | p <- ggplot(mtcars, aes(cyl, mpg)) +
geom_point()
# Create a simple secondary axis
p + scale_y_continuous(sec.axis = sec_axis(~.+10))
# Inherit the name from the primary axis
p + scale_y_continuous("Miles/gallon", sec.axis = sec_axis(~.+10, name = derive()))
# Duplicate the primary axis
p + scale_y_continuous(sec.axis = dup_axis())
# You can pass in a formula as a shorthand
p + scale_y_continuous(sec.axis = ~.^2)
# Secondary axes work for date and datetime scales too:
df <- data.frame(
dx = seq(as.POSIXct("2012-02-29 12:00:00",
tz = "UTC",
format = "%Y-%m-%d %H:%M:%S"
),
length.out = 10, by = "4 hour"
),
price = seq(20, 200000, length.out = 10)
)
# useful for labelling different time scales in the same plot
ggplot(df, aes(x = dx, y = price)) + geom_line() +
scale_x_datetime("Date", date_labels = "%b %d",
date_breaks = "6 hour",
sec.axis = dup_axis(name = "Time of Day",
labels = scales::time_format("%I %p")))
# or to transform axes for different timezones
ggplot(df, aes(x = dx, y = price)) + geom_line() +
scale_x_datetime("GMT", date_labels = "%b %d %I %p",
sec.axis = sec_axis(~. + 8*3600, name = "GMT+8",
labels = scales::time_format("%b %d %I %p")))
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.