用两个不同的x轴绘制R中同一变量的曲线图 [英] Plot with two different x axis for the same variable in R
本文介绍了用两个不同的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屋!
查看全文