2017-07-12 2 views
-1

Ich benutzte ggplot, um eine ähnliche Grafik mit zwei Variablen zu machen, aber ich muss eine sekundäre y-Achse hinzufügen und es einer der Variablen zuweisen ("Volt ").Fügen Sie sekundäre Achse ggplot - Liniendiagramm mit zwei Variablen - ein Datenrahmen

Ich möchte auch den Bereich der sekundären y-Achse (obere und untere Grenze), sowie die Brüche angeben - wie ich für die y-Hauptachse getan habe.

Meine zwei Variablen sind "Sr" und "Volt".

Ich möchte nicht verschiedene Datenrahmen verwenden und dann die Diagramme zusammenführen.

Kann jemand von Ihnen wissen, wie es geht? Oh, ich muss hinzufügen, dass ich ein absoluter Anfänger bin!

Danke, Pedro

ggplot(data = k, aes(x = Dist)) + 
geom_line(aes(y = Sr), colour="blue") + 
geom_line(aes(y = volt), colour = "grey") + 
xlab(bquote('Distance-um')) + 
ylab(bquote('Sr87Sr86')) + 
geom_point(aes(y = Sr), colour="black", size=2) + 
geom_point(aes(y = volt), colour="grey", size=2) + 
theme(axis.title.x = element_text(colour="black",size=10,face="bold"), 
    axis.title.y = element_text(colour="black",size=10,face="bold"), 
    axis.text.x = element_text(colour="black",size=8, face="plain"), 
    axis.text.y = element_text(colour="black",size=8, face="plain")) + 
theme(panel.background = element_rect(fill = "white")) + 
theme(panel.grid.major = element_blank(), 
    panel.grid.minor = element_blank(), 
    strip.background = element_blank(), 
    panel.border = element_rect(colour = "black", fill="transparent")) + 
theme(plot.title = element_text(lineheight=.8, size=10, face="bold")) + 
geom_hline(aes(yintercept=0.7061), colour="black", linetype="dotted") + 
geom_hline(aes(yintercept=0.7078), colour="black", linetype="dotted") + 
geom_hline(aes(yintercept=0.70467), colour="black", linetype="dotted") + 
scale_x_continuous(limits=c(-0.01, 1000), breaks=c(0, 250, 500, 750, 1000))+ 
scale_y_continuous(limits=c(0.7039, 0.7101), breaks=c(0.7040, 0.7050, 
0.7060, 0.7070, 0.7080, 0.7090)) + 
theme(plot.margin = unit(c(.25,.25,.0,.0), "cm")) 
+1

Mögliches Duplikat von [ggplot2: Erstelle zweite y-Achse auf der rechten Seite für eine Variable] (https://stackoverflow.com/questions/44911768/ggplot2-create- Zweite-y-Achse-auf-der-rechten-Seite-für-eine-Variable) –

+0

Sorry, aber ich konnte nicht herausfinden, wie diese vorherige Frage und Antwort verwendet werden könnte, um meine Frage zu beantworten. –

+0

Irgendwelche Daten, um Ihre Handlung zu reproduzieren? Verwenden Sie 'dput()', um Ihre Daten zu kopieren. [Wie man ein großes reproduzierbares Beispiel bildet?] (Https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) –

Antwort

0

Zuerst möchte ich, dass two axis is not the best idea erwähnen. Nachdem Sie gesagt haben, dass Sie immer noch zwei Achsen haben wollen, müssen Sie eine Ihrer Variablen skalieren (volt in diesem Fall).

Dist<-seq(1,10) 
Sr<-c(0.704, 0.705, 0.706, 0.707, 0.708, 0.704, 0.705, 0.706, 0.707, 0.708) 
volt<-c(3,5,10,8,12,4,11,3,14,22) 
k<-data.frame(Dist,Sr,volt) 
k$volt<-k$volt/10 

Nun macht die Daten zur Festsetzung Dinge einfacher für das Plotten, nur melt Ihre Variablen

library(reshape) 

k_melt<-melt(k,id="Dist") 

und Plotten. Mit sec_axis können Sie die zweite Achse erstellen und neu zu skalieren wieder die Werte

ggplot(k_melt, aes(x=Dist, y=value, fill=variable, colour=variable))+ 
geom_line(stat='identity', size=0.5)+ 
geom_point(stat='identity', size=2)+scale_color_manual(values=c("blue", "grey")) + 
scale_y_continuous("SR", sec.axis = sec_axis(~ . *10, name = "Volt"))` 

Hinweis: Sie können Ihre theme und geom_hline zu diesem Code hinzufügen. sie funktionieren nicht für die simulierten Daten, die ich erstellt habe

Verwandte Themen