在第二个y轴上使用ggplot绘制图形变量

时间:2019-03-07 15:01:25

标签: r ggplot2 graph axis

我正在尝试将我的变量(v4)之一移至第二个轴。我知道ggplot不会“在辅助轴上绘制”,但是您可以使用左轴重新升级特定变量和右轴。但是,我无法将两者重新升级,因此右轴仍显示变量的正确度量。我正在尝试在网上找到的解决方案的一个例子:

year <- c(1990,2000,2010,2020)
v1 <- c(90,100,103,115)
v2 <- c(90,100,107,125)
v2 <- c(90,100,107,125)
v3 <- c(90,100,104,120)
v4 <- c(90,100,150,200)

df <- data.frame(year,v1,v2,v3,v4)

figureA <- ggplot(df, aes(year)) +
  geom_ribbon(data=subset(df, year >= 2000), aes(ymin=v1, ymax=v2), fill="blue", alpha=0.10) +
  geom_line(aes(y = v1, color = "v1"), size=1.5) +
  geom_line(aes(y = v2, color = "v2"), size=1.5) +
  geom_line(aes(y = v3, color = "v3"), size=1.5) + 
  geom_line(aes(y = v4/2+50, color = "v4"), size=1.5) +
  scale_y_continuous(sec.axis = sec_axis(~.*2, name = "v4"))

figureA

鉴于变量的理论关系,将v4放置在第二个轴上是有意义的,但是,根据我在网上找到的解决方案,右轴上的值并不对应于变量。

1 个答案:

答案 0 :(得分:0)

在iod注释之后,此代码显示与右ixis对应的v4值

figureA <- ggplot(df, aes(year)) +
  geom_ribbon(data=subset(df, year >= 2000), aes(ymin=v1, ymax=v2), fill="blue", alpha=0.10) +
  geom_line(aes(y = v1, color = "v1"), size=1.5) +
  geom_line(aes(y = v2, color = "v2"), size=1.5) +
  geom_line(aes(y = v3, color = "v3"), size=1.5) + 
  geom_line(aes(y = v4/2, color = "v4"), size=1.5) +
  scale_y_continuous(sec.axis = sec_axis(~.*2, name = "v4"))

“ + 50”问题