让我们举个简单的例子:
ggplot(data.table(day = 1:3, value = c(2,3,1), date = Sys.Date() + 1:3), aes(x = day)) +
geom_line(aes(y = value)) +
scale_x_date(aes(x = date), position = "top")
它抛出:
中的错误: !transformation$transform()
仅适用于transform_date()
类的对象
但是日期列属于
我也尝试过这个方法:
ggplot(data.table(day = 1:3, value = c(2,3,1), date = Sys.Date() + 1:3), aes(x = day)) +
geom_line(aes(y = value)) +
scale_x_continuous(sec.axis = sec_axis(~ as.Date(Sys.Date() + .), labels = date_format("%Y-%m-%d")))
这显示了两种比例,但它的格式不是日期,而是数字。 (日期格式需要包装秤)。
如何才能看到底部的数字 x 轴和顶部的日期?
您可以按如下方式指定辅助轴的断点和标签:
library(ggplot2)
library(magrittr)
data.frame(
day = 1:3,
value = c(2,3,1),
date = Sys.Date() + 1:3) %>%
{ggplot(
data = .,
aes(x = day, y = value)
) +
geom_line() +
scale_x_continuous(
# breaks = .$day,
sec.axis = sec_axis(
transform = ~ . * 1,
breaks = .$day,
labels = .$date)
)}