2017-04-14 2 views
0

Ich weiß, wie wir ein Diagramm mit zwei y-Achsen und gemeinsamen x haben können, aber ich frage mich, wie ich ein Diagramm für zwei x-Achsen und zwei y- haben kann Achsen.Ein Graph mit multipler x-Achse und multipler y-Achse

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) 

Antwort

0

dem Grundstück Geben Sie ein bisschen mehr Platz auf der rechten Seite, so dass das Etikett der zweiten y-Achse passt. Dann zeichnen Sie die ersten Punkte normal. Zeichnen Sie danach die zweite Reihe ohne Achsen darüber. Fügen Sie dann die anderen Achsen und die Achsenbeschriftungen hinzu.

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') 

Achten Sie darauf, irgendwie anzugeben, welche Punkte mit Farbe oder Text oder etwas sind.

Siehe die this für ein Beispiel. Ich habe y2 so verkleinert, dass beide Punktreihen sichtbar sind:

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

Sie können den Datenrahmen konvertieren zu lange von breiten und facet_grid dann verwenden:

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

Bitte reduzieren Sie Ihre 'Bibliothekslast' nur auf die tatsächlich benötigten Pakete; 'tidyverse' ist ein Convenience-Super-Paket, um viele andere Pakete einzubinden, die hier nicht benötigt werden. In diesem Fall wäre es "dplyr", "tidyr" und "ggplot2". – r2evans

Verwandte Themen