Ich versuche, ein facettiertes Diagramm aus einem Datenrahmen zu machen, der zeigt, wie sich eine Variable als eine Funktion anderer Variablen ändert. Mit jeder Variablen ist ein Fehler verknüpft. Hier ist eine Teilmenge der Daten, die ich habe; eine ID-Spalte, die Variablen (SiO 2 zu FeO) und die mit den Variablen zugeordneten Fehler (* _2stdev):Hinzufügen von Fehlerbalken zu einzelnen Punkten in facettierten Plots
df<-structure(list(ID = structure(c(3L, 4L, 6L, 1L, 2L, 10L), .Label = c("P466-an1", "P466-an2", "P468-an1", "P468-an2", "P469-an1", "P470-an1", "P471-an1", "P472-an1", "P473-an1", "P474-an1", "P475-an1", "P475-an2", "P476-an1", "P476-an2", "P477-an1", "P478-an1", "P479-an1", "P480-an1"), class = "factor"),
SiO2 = c(54.5147, 56.2223, 52.8499, 52.0293, 53.4221, 52.9802),
TiO2 = c(0.5928, 0.5792, 0.5771, 1.1373, 1.0962, 1.1535),
Al2O3 = c(17.5404, 18.1921, 19.4737, 15.7752, 16.455, 16.4117),
FeO = c(6.2115, 5.8676, 5.4874, 4.5952, 4.4242, 4.109),
SiO2_2stdev = c(1.5232, 2.3578, 0.6374, 1.3331, 0.6535, 0.6977),
TiO2_2stdev = c(0.0638, 0.0637, 0.0357, 0.1024, 0.0422, 0.0282),
Al2O3_2stdev = c(0.4519, 0.4572, 0.2044, 0.6378, 0.6546, 0.0624),
FeO_2stdev = c(0.426, 0.3973, 0.1145, 0.1992, 0.1106, 0.0427)),
.Names = c("ID", "SiO2", "TiO2", "Al2O3", "FeO", "SiO2_2stdev", "TiO2_2stdev", "Al2O3_2stdev", "FeO_2stdev"),
row.names = c(NA, 6L), class = "data.frame")
Verwendung des folgenden Codes:
library(reshape2)
library(ggplot2)
m.df<-melt(df, id=c('ID','FeO'))
p<-ggplot(subset(m.df, variable %in% c('SiO2','TiO2','Al2O3')),aes(x=value, y=FeO))+
geom_point()+
facet_wrap(~ variable, ncol=1, scales="free_x")+
theme_bw()
p
Ich erhalte diese Handlung:
Ich möchte die Fehlerbalken (vertikal und horizontal) dazu hinzufügen, aber ich weiß nicht, wie man das in einem facettierten Diagramm macht.
Mit geom_errorbar
und geom_errorbarh
konnte ich diese für einzelne Plots aus dem ungeschmolzenen Datenfeld plotten. Ich nehme an, ich könnte alle Plots mit einer Schleife erstellen, aber ich weiß nicht, wie man die Fehlerbalken mit dieser Methode hinzufügt. Außerdem würde ich gerne alle Pläne auf einmal sehen.
Vielen Dank für das Lesen dieser und jede Hilfe wird sehr geschätzt! -R
bearbeiten Per AOSMITH ‚s Kommentar, ich FeO_2stdev
auf die ID-Variablen in melt
hinzugefügt haben. Ich bin jetzt in der Lage, ein Diagramm mit den richtigen vertikalen Fehlerbalken zu erzeugen. So, jetzt habe ich Probleme zu verstehen, wie ich geom_errorbarh
bekommen kann, um die richtigen Fehlerbalken für jedes Diagramm zu plotten.
Unten ist der aktualisierte Code, den ich verwende, mit dem resultierenden Plot.
library(reshape2)
library(ggplot2)
m.df<-melt(df, id=c('ID','FeO', 'FeO_2stdev'))
m.df$y.min<-m.df$FeO-m.df$FeO_2stdev
m.df$y.max<-m.df$FeO+m.df$FeO_2stdev
p<-ggplot(subset(m.df, variable %in% c('SiO2','TiO2','Al2O3')), aes(x=value, y=FeO))+
geom_point()+
facet_wrap(~ variable, ncol=1, scales="free_x")+
theme_bw()+
geom_errorbar(aes(ymin=y.min, ymax=y.max))
p
Versuchen Sie, Fehlerbalken basierend auf 'FeO_2stdev' hinzufügen? Wenn ja, behalte diese Variable als eine deiner ID-Variablen in 'melt', damit du sie in' geom_errorbar' verwenden kannst. Wenn nicht, können Sie klären, was Sie zur Berechnung der Fehlerbalken verwenden würden? – aosmith
Ah, ja! Ich habe das jetzt getan und kann die FeO-Fehlerbarren plotten. Nun, meine Frage ist, wie man die entsprechenden horizontalen Fehlerbalken auf jedem Diagramm plottet. Ich habe die Frage aktualisiert, um dies zu berücksichtigen. – ramesesjd