首页 > 解决方案 > ggplot2 将两个变量绘制在同一个图中,但一个变量的 y 轴反转

问题描述

我有以下示例数据:

df2 <- data.frame(supp=rep(c("VC", "OJ"), each=3),
              dose=rep(c("D0.5", "D1", "D2"),2),
              len=c(6.8, 15, 33, 4.2, 10, 29.5))

通常我们绘制两个变量VCOJ在同一个图中像这样:

ggplot(data=df2, aes(x=dose, y=len, group=supp, colour=supp)) +
  geom_line()

在此处输入图像描述

我想要得到的是VC在反转的 Y 轴上绘制,同时仍然将两个变量保持在同一个图中并共享相同的 x 轴。它应该像下面的图片:

在此处输入图像描述

我怎么能用ggplot2做到这一点?非常感谢。

标签: rggplot2plot

解决方案


我不确定这是否是你要找的。

ggplot2,不太容易处理辅助轴。为了反转这个变量,需要乘以 -1 来反转它。

library(tidyr)
#widen the dataframe, to separate the variables into different columns
df3<-pivot_wider(df2, id_cols = dose, names_from = supp, values_from = len)



ggplot(data=df3) +
  geom_line(aes(x=dose, y=OJ, group="OJ", color="OJ")) +
  geom_line(aes(x=dose, y=-1*VC, group="VC", color="VC")) 

在此处输入图像描述


推荐阅读