ggplot2 第二个 Y 轴中断

时间:2021-04-02 07:38:36

标签: r ggplot2 yaxis

您好,有以下数据,我想使用这种方式修改第二个 Y 轴(用于通货膨胀 - 右侧),以值 0.994 开始并以 1.04 结束,左侧 y 轴没有变化 - 请参阅我的代码下面

Year <- 2016:2020

inflation_value <- c(0.994,1.020, 1.016, 1.023, 1.034)

net_benefit <- numeric(5)

net_benefit[1] <- 500


for (i in 2:5){
  net_benefit[i] <-  net_benefit[i-1]-(net_benefit[i-1]*(inflation_value[i]-1))
}

df <- data.frame(Year, inflation_value, net_benefit)

df %>% 
  ggplot(aes(x=Year))+
  geom_col(aes(y = net_benefit), fill = "#69b3a2")+
  geom_line(aes(y = inflation_value*400), col = rgb(0.2, 0.6, 0.9, 1), size = 1)+
  scale_y_continuous(name = "Net benefit",
    sec.axis = sec_axis(~./400, name = "Inflation"))+
  theme_ipsum()

code output

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

library(ggplot2)

ggplot(df, aes(x=Year))+
  geom_col(aes(y = net_benefit), fill = "#69b3a2")+
  geom_line(aes(y = inflation_value*400), col = rgb(0.2, 0.6, 0.9, 1), size = 1)+
  scale_y_continuous(name = "Net benefit",
                     sec.axis = sec_axis(~{
                       a <- min(df$inflation_value)
                       b <- max(df$inflation_value)
                       ((((b-a) * (. - min(.)))/diff(range(.))) + a)
                     }))

enter image description here

相关问题