R语言 如何在ggplot2中更改Y轴缩放限制

eoxn13cs  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(347)

我正在尝试绘制风速和风向的次轴图。

p \<- ggplot(df, aes(x = date))
p \<- p + geom_line(aes(y = wd, colour = "wind direction"))
p \<- p + geom_line(aes(y = ws\*25, colour = "wind speed"))

p \<- p + scale_y_continuous(sec.axis = sec_axis(\~./25, name = "wind spped (ms )"))

p \<- p + scale_colour_manual(values = c("#e377c2", "#7f7f7f"))
p \<- p + labs(y = "wind direction (°)")
p \<- p + theme(text = element_text(size = 12)) + xlab("") + theme_light () +
theme(legend.position = "null") + theme(axis.text.x=element_blank())
p

我可以画出这个图。但是,我想把主轴的刻度编辑成(0,90,180,270,360)。当我在主轴上加上ylim =c(0,90,180,270,360)时,我发现副轴没有显示出来。让我知道如何解决这个问题。

dbf7pr2w

dbf7pr2w1#

ylim的帮助中:
xlim()和ylim()的参数...两个数值,指定比例的左/下限和右/上限。如果先给定较大的值,则将反转比例。如果要从数据范围计算相应的限制,则可以将其中一个值保留为NA。
ylim(等效于scale_y_continuous(limits = ....))需要一个包含两个元素(最小值和最大值)的向量。如果要定义y轴刻度/网格/标签级别,则可能需要breaks

set.seed(42)
df <- data.frame(date = as.Date("2023-01-01") + 30 * (0:3),
                 wd = 360*runif(4),
                 ws = 15*runif(4))

ggplot(df, aes(x = date, wd)) +
  geom_line(aes(colour = "wind direction")) +
  geom_line(aes(y = ws*25, colour = "wind speed")) +
  scale_y_continuous(breaks = 90 * (0:4),
                     limits = c(0, 360),
                     sec.axis = sec_axis(~./25, name = "wind speed (ms )"))

相关问题