Meine Daten sieht das so etwas wie:Wie man eine manuelle Farbskala in ggplot an geom_smooth übergibt?
# A tibble: 6 x 4
CFU strain diltn order
<dbl> <fctr> <dbl> <dbl>
1 0.0 M12-611025 (0) 5.89279 1
2 1.0 M12-611025 (0) 5.19382 1
3 0.0 M12-611025 (0) 4.49485 1
4 0.5 M12-611025 (0) 3.79588 1
5 1.0 M12-611025 (0) 3.09691 1
6 7.0 M12-611025 (0) 2.39794 1
Ich habe 16 verschiedene „Stämme“ und wollen nur eine Teilmenge auf mein Diagramm als mit geom_smooth als auch zeichnen eine Linie zu zeichnen. Ich habe diese achieves wie folgt:
lines1 <- c("M12-611025 (0)" = "solid",
"M12-611025 (0) HI" = "dashed",
"M12-611025 (300)" = "solid",
"M12-611025 (300) HI" = "dashed",
"M12-611025 (700)" = "solid",
"M12-611025 (700) HI" = "dashed",
"M12-611025 (1100)" = "solid",
"M12-611025 (1100) HI" = "dashed")
ggplot(data = (subset(data,
strain %in% c("M12-611025 (0)", "M12-611025 (0) HI",
"M12-611025 (300)", "M12-611025 (300) HI",
"M12-611025 (700)", "M12-611025 (700) HI",
"M12-611025 (1100)", "M12-611025 (1100) HI"))),
(aes(x = diltn, y = CFU, colour = factor(strain),
fill = factor(strain), linetype = factor(strain)))) +
geom_smooth(se = F, span = 1) +
geom_point(shape = 21, colour = "black", size = 2, stroke = 1) +
scale_y_continuous(limits = c(-1, 120))+
scale_x_continuous(breaks = c(0, 1, 2, 3, 4),
labels = c(0, 10, 100, 1000, 10000),
limits = c(1, 4))+
annotation_logticks(base = 10, sides = "b", scaled = TRUE) +
theme(axis.line = element_line(colour = "black",
size = 1,
linetype = "solid")) +
ggtitle("RPM Test M12 - 611025") +
xlab(expression(paste("Dilution "))) +
ylab("CFU") +
scale_linetype_manual(values = lines1)
Der Schlüssel hier ist ich die strians mit „HALLO“ als gestrichelte Linien und die anderen als durchgezogene Linien dargestellt werden soll, das gibt mir:
Ich möchte dann meine eigenen Farbschemata definieren, damit die gleichen Linien die gleichen Farbpunkte und Linien haben, aber die Linien sind für die "HI" Versionen gestrichelt. Ich versuchte dies:
cols1 <- c("M12-611025 (0)" = "blue",
"M12-611025 (0) HI" = "blue",
"M12-611025 (300)" = "#ff9700",
"M12-611025 (300) HI" = "#ff9700",
"M12-611025 (700)" = "#33d100",
"M12-611025 (700) HI" = "#33d100",
"M12-611025 (1100)" = "#fe0000",
"M12-611025 (1100) HI" = "#fe0000")
M12_611025 + scale_fill_manual(values = cols1)
Diese Punkte ändert aber nicht die Zeilen, und ich kann nicht herausfinden, wie die Linien wie die Punkte, die gleiche Farbe zu bekommen?
ich Ihre Frage beantwortet, aber ich möchte darauf hinweisen, dass Sie keine vorsah (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) Bitte tun Sie dies in der Zukunft. –
Danke, ich werde den Beitrag verwenden, den du beim nächsten Mal zitiert hast, ich habe jetzt ein paar Mal gepostet und habe versucht, jeden Beitrag in Bezug auf Klarheit zu verbessern und auf dem Punkt zu bleiben. Ich sehe jetzt muss ich ein paar mehr Dinge, danke für den Zeiger – reubenmcg
Ja. Insbesondere, wenn ich Ihren Code nicht problemlos mit meinem Fix ausführen kann, kann ich nicht bestätigen, dass meine Antwort tatsächlich funktioniert. Ich vermute nur an diesem Punkt. –