用两个不同的x轴绘制R中同一变量的曲线图 [英] Plot with two different x axis for the same variable in R

查看:9
本文介绍了用两个不同的x轴绘制R中同一变量的曲线图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试创建一个绘图,该绘图显示一条带有两个x轴的线,一个是连续的数值,另一个是离散的。

这是一个数据示例:

df <-cbind.data.frame("Category"=c("A","A","A","A","A","B","B","B","B","B"), 
                   "Y"=c(5,6,4,8,9,4,5,3,7,8),
                   "X1"=c(0,10,20,30,40,0,10,20,30,40),
                   "X2"=c(0,0,1,1,2,0,1,2,2,3))

我尝试添加第二个轴并对其重新缩放,但由于我的两个变量不成比例,我不知道如何重新缩放,因此直线上的同一个Y点将适合两个x轴。

ggplot(data=df) + 
 geom_path(aes(y=Y,x=X1),color="red")+ 
 geom_path(aes(y=Y,x=X2*10),color="blue")+ 
 facet_wrap(~Category)+ 
 scale_y_continuous("Y")+   
 scale_x_continuous("X1",sec.axis = sec_axis(~ .*1/10, "X2"))

我用两个轴读取了不同的问题,但无法找到问题的解决方案。

我正在寻找这样的东西:

如有任何帮助,我将不胜感激!

推荐答案

您提供的曲线图没有明确的代数关系,因此我将为您提供一个完全任意的第二个x轴的示例。

library(ggplot2)
ggplot(mtcars, aes(mpg, disp)) +
  geom_point() +
  scale_x_continuous(sec.axis=sec_axis(~., breaks=c(15,20,30), labels=c('a','b','c')))

第一个参数是转换"~."(本质上是x2=x1),并且是必需的,因此在本例中是1对1转换。另外两个相对清晰,您将'a'放在x=15'b'放在x=20,依此类推。我认为没有办法将这两个放在同一个轴上(单独使用ggplot2)。

这篇关于用两个不同的x轴绘制R中同一变量的曲线图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆