2017-04-14 115 views
0

我知道我们如何绘制两个y轴和普通x的图,但我想知道如何绘制两个x轴和两个y轴的图,轴。一个multipe x轴和多个y轴的图形

x1<-seq(10,20,1) 
y1<-seq(30,40,1) 
x2<-seq(0.1,1.1,0.1) 
y2<-seq(40,50,1) 
A<-data.frame(x1,y1,x2,y2) 

回答

0

给剧情略偏空右侧,使得第二y轴的标签相符。然后正常绘制第一个点。之后将第二个系列绘制在没有轴的位置上。然后添加其他轴和轴标签。

par(mar = c(5.4,4.1,4.1,5.4)) 
plot(x1,y1,xlab="red",ylab="red",col="red") 
par(new = T) 
plot(x2,y2,xaxt="n",xlab="",yaxt="n",ylab="") 
Axis(side = 3, at = x2, labels = x2) 
mtext(side = 3, line = 3, 'black') 
Axis(side = 4, at = y2, labels = y2) 
mtext(side = 4, line = 3, 'black') 

请务必以某种方式指出哪些点是颜色或文字或其他东西。

查看this的例子。我改变了y2减少,所以实际上两个点系列是可见的:

y2<-seq(50,40,-1) 
0

您可以从广泛的数据帧转换为长,然后用facet_grid

library(ggplot2) 
library(tidyr) 
library(dplyr) 
x <- data.frame(x1, x2) 
y <- data.frame(y1, y2) 

y <- y %>% 
    gather(key = y_axis, value = y_value, y1, y2) 
x <- x %>% 
    gather(key = x_axis, value = x_value, x1, x2) 
A <- cbind(x, y) 
ggplot(A, aes(x_value, y_value)) + 
    facet_grid(y_value ~ x_value) + 
    geom_point() #can replace with geom_line() if you prefer a line to points 
+1

请减少你的'库'负载只有实际需要的包; 'tidyverse'是一个方便的超级软件包,可以引入很多这里不需要的其他软件包。在这种情况下,我认为它会是'dplyr','tidyr'和'ggplot2'。 – r2evans