ggplot:定义 sexond 轴更改第一个轴的格式

发布于 2025-01-14 16:08:13 字数 793 浏览 1 评论 0原文

我使用 ggplot2 绘制了这样的日期:

df <- data.frame(date= sample(seq(from=as.Date("2015-01-01"),length.out=100,by="day")))
my_plot <- ggplot(df, aes(date)) +
  geom_density()
my_plot

ok

这看起来符合预期。但是,一旦我定义了 sexond 轴,第一个更改的格式:

my_plot +
  scale_x_continuous(sec.axis = sec_axis(~ . , name = "test", breaks = NULL, labels = NULL))

wrong

在此示例中,第二个轴可以替换为 labs(title= "test")。这只是一个最小的可重现示例。无论我们如何定义第二个轴,第一个 x 轴不再显示月份,而是显示数字。如何在不更改第一个轴的格式的情况下定义第二个轴?

I make a plot using ggplot2 with dates like this:

df <- data.frame(date= sample(seq(from=as.Date("2015-01-01"),length.out=100,by="day")))
my_plot <- ggplot(df, aes(date)) +
  geom_density()
my_plot

ok

This looks as expected. But as soon as I define a sexond axis the format of the first changes:

my_plot +
  scale_x_continuous(sec.axis = sec_axis(~ . , name = "test", breaks = NULL, labels = NULL))

wrong

In this example the second axis could be replaced with labs(title= "test"). It is just a minimal reproducible example. No matter how we define the second axis the first x axis does not show month anymore but numbers instead. How can I define a second axis without changing the format of the first?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暖阳 2025-01-21 16:08:13

导致问题的不是第二个轴,而是您指定的是 scale_x_continuous 而不是 scale_x_date

my_plot +
  scale_x_date(sec.axis = sec_axis(~ . , name = "test", breaks = NULL, labels = NULL))

在此处输入图像描述

It's not the second axis that causes the problem, it's that you are specifying scale_x_continuous instead of scale_x_date:

my_plot +
  scale_x_date(sec.axis = sec_axis(~ . , name = "test", breaks = NULL, labels = NULL))

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文