Ich versuche, die Daten (siehe unten) als ein gruppiertes Balkendiagramm zu plotten. Ich bin anderen Vorschlägen gefolgt, um position = ""
in geom_bar
zu ändern, aber ich kann nicht scheinen, es zu arbeiten. Alles, was ich je bekomme, ist ein gestapeltes Bar-Plot. Hier ist meine jüngste Versuch:ggplot2 barplot in R mit gruppierter Spalte, wie entstapeln?
ggplot(data = IFNg, aes(x = IFNg$Location, y = IFNg$`Fold Change`)) +
geom_bar(position = 'identity', stat = "identity", fill = IFNg$Day) +
ylab("Fold Change (log_2)") + geom_errorbar(limits, width=0.15)
Ich habe auch versucht die folgenden, die auch in einer gestapelten Handlung führt, aber dieser ist anders gefärbt:
ggplot(data = IFNg, aes(x = IFNg$Location, y = IFNg$`Fold Change`,
fill= IFNg$Day)) + geom_bar(position = 'identity', stat = "identity") +
ylab("Fold Change (log_2)") + geom_errorbar(limits, width=0.15)
Hier ist der Rest meines Codes mit Daten:
dat <- structure(list(Day = c(1L, 3L, 7L, 21L, 1L, 3L, 7L, 21L, 1L,
3L, 7L, 21L), Order = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 3L, 3L,
3L, 3L), Target = c("IFN-g", "IFN-g", "IFN-g", "IFN-g", "IFN-g",
"IFN-g", "IFN-g", "IFN-g", "IFN-g", "IFN-g", "IFN-g", "IFN-g"),
Location = c("Duodenum", "Duodenum", "Duodenum", "Duodenum",
"Duodenum (Lymph)", "Duodenum (Lymph)", "Duodenum (Lymph)",
"Duodenum (Lymph)", "Proximal Jejunum", "Proximal Jejunum",
"Proximal Jejunum", "Proximal Jejunum"), `Fold Change` = c(-1.750896098,
-2.194886907, -0.838822724, 0.680612172, -0.375563984, 0.650154987,
0.844897327, -0.228441603, -1.298230671, -1.173634963, -1.877736135,
0.787322978), StDev = c(0.027477611, 0.029974897, 0.19025044, 1.235986647,
0.055798435, 0.086102327, 0.115422155, 0.34470734, 0.020947691, 0.165294027,
0.040111751, 0.035010207)), .Names = c("Day", "Order", "Target", "Location",
"Fold Change", "StDev"), class = c("tbl_df", "data.frame"), row.names = c(NA,-12L))
IFNg <- dat[dat$Target == 'IFN-g', ]
limits <- aes(ymax = IFNg$`Fold Change` + IFNg$StDev,
ymin = IFNg$`Fold Change` - IFNg$StDev)
Verwenden Sie niemals '$' in 'aes()'. Sie haben das Argument 'data', um' ggplot' den zu verwendenden Datenrahmen mitzuteilen. Das Übergeben von Vektoren 'x = data $ column' anstelle von Spaltennamen' x = column' zu 'aes' kann Probleme verursachen. In ähnlicher Weise (aber von der anderen Seite) müssen ** alle ** Abbildungen der Ästhetik zu Datenspalten innerhalb von 'aes()' liegen, einschließlich 'fill = Day'. – Gregor
Danke @Gregor. Ich habe beide vorgeschlagenen Änderungen durchgeführt, aber die Handlung ist immer noch gestapelt. Nicht sicher, was los ist ... –
Ihre Handlung ist nicht technisch gestapelt. Es hat nur alle Bars an einem einzigen Punkt, so dass Sie die "höheren" Bars hinter den "kürzeren" sehen können. Wie soll deine Grafik aussehen? Willst du ein ausgewichenes Balkendiagramm? Wenn ja, benutze 'position =" dodge "'. – aosmith