您好,有以下数据,我想使用这种方式修改第二个 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()
答案 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)
}))