I attached a graph below. I am trying to change the individual lines for each facet_wrapped graph.
For example, I would like the REGION 11 and REGION 9 to be red lines – while the rest of the graphs should be be navy blue lines.
The National Line should stay black in all graphs
When I wrote my code – the national line stayed black as I wanted, but all of the Regional Lines stayed Red. I do not know how to only make 2 lines (REGION 11 and REGION 9) red while the rest of them Navy Blue.
Thank you
# HERE IS MY DATA ###################################################################
example2 = structure(list(Segment = c("Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1", "Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1", "Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1", "Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1", "Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1", "Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1", "Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1", "Segment1", "Segment1", "Segment1",
"Segment1", "Segment1", "Segment1"), Area = c("Region 1", "Region 2",
"Region 4", "Region 3", "Region 5", "Region 6", "Region 7", "Region 8",
"Region 9", "Region 10", "Region 11", "Region 1", "Region 2",
"Region 4", "Region 3", "Region 5", "Region 6", "Region 7", "Region 8",
"Region 9", "Region 10", "Region 11", "Region 1", "Region 2",
"Region 4", "Region 3", "Region 5", "Region 6", "Region 7", "Region 8",
"Region 9", "Region 10", "Region 11", "Region 1", "Region 2",
"Region 4", "Region 3", "Region 5", "Region 6", "Region 7", "Region 8",
"Region 9", "Region 10", "Region 11", "National", "National",
"National", "National"), Measure.Names = structure(c(2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 4L, 3L, 2L, 1L), levels = c("R12M",
"R6M", "R3M", "R1M"), class = "factor"), Measure.Values = c(0.02,
0.04, -0.02, 0.07, -0.02, 0.02, 0.04, -0.01, 0.02, 0.03, -0.05,
0.05, 0.05, -0.03, 0.11, 0.03, 0.06, 0.08, -0.01, -0.01, 0.01,
-0.07, 0.07, 0.02, 0, 0.05, 0.05, 0.09, 0.13, 0.03, -0.02, 0.04,
-0.1, 0.04, 0.05, -0.01, 0.09, 0, 0.01, 0.07, 0.01, 0, 0.07,
-0.01, 0.04, 0.03, 0.02, 0.03), labels = c("2 %", "4 %", "-2 %",
"7 %", "-2 %", "2 %", "4 %", "-1 %", "2 %", "3 %", "-5 %", "5 %",
"5 %", "-3 %", "11 %", "3 %", "6 %", "8 %", "-1 %", "-1 %", "1 %",
"-7 %", "7 %", "2 %", "0 %", "5 %", "5 %", "9 %", "13 %", "3 %",
"-2 %", "4 %", "-10 %", "4 %", "5 %", "-1 %", "9 %", "0 %", "1 %",
"7 %", "1 %", "0 %", "7 %", "-1 %", "4 %", "3 %", "2 %", "3 %"
), Area2 = c("Region 1", "Region 2", "Region 4", "Region 3",
"Region 5", "Region 6", "Region 7", "Region 8", "Region 9", "Region 10",
"Region 11", "Region 1", "Region 2", "Region 4", "Region 3",
"Region 5", "Region 6", "Region 7", "Region 8", "Region 9", "Region 10",
"Region 11", "Region 1", "Region 2", "Region 4", "Region 3",
"Region 5", "Region 6", "Region 7", "Region 8", "Region 9", "Region 10",
"Region 11", "Region 1", "Region 2", "Region 4", "Region 3",
"Region 5", "Region 6", "Region 7", "Region 8", "Region 9", "Region 10",
"Region 11", "National", "National", "National", "National"),
Area3 = c("Region 1", "Region 2", "Region 4", "Region 3",
"Region 5", "Region 6", "Region 7", "Region 8", "Region 9",
"Region 10", "Region 11", "Region 1", "Region 2", "Region 4",
"Region 3", "Region 5", "Region 6", "Region 7", "Region 8",
"Region 9", "Region 10", "Region 11", "Region 1", "Region 2",
"Region 4", "Region 3", "Region 5", "Region 6", "Region 7",
"Region 8", "Region 9", "Region 10", "Region 11", "Region 1",
"Region 2", "Region 4", "Region 3", "Region 5", "Region 6",
"Region 7", "Region 8", "Region 9", "Region 10", "Region 11",
"National", "National", "National", "National")), row.names = c(NA,
-48L), class = "data.frame")
## HERE IS MY VISUALIZATION CODE ################################
ggplot(example2, aes(Measure.Names,
Measure.Values,
group = Area2)) +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
geom_line(data = example2[,3:6],
aes(Measure.Names,
Measure.Values,
group = Area2),
color = "light grey")+
geom_line(data = example2[,3:6] %>% filter (Area2 == "Total Core Trauma"),
aes(Measure.Names,
Measure.Values,
group = Area2),
color = "black")+
geom_line(color = "red")+
geom_text(aes(y = Measure.Values, label= labels), hjust= 0.5, vjust = -1, size= 2.5, color= "black") +
facet_wrap(~Area3,3, scales = "free") +
theme_bw()+
theme(axis.title = element_blank()) +
theme(strip.background =element_rect(fill="navy"))+
theme(strip.text = element_text(colour = 'white', face = "bold")) +
theme(
axis.text.y=element_blank(),
axis.ticks.y=element_blank()) +
theme(text = element_text(size = 10)) +
geom_line(data = example2[45:48,3:6],
aes(Measure.Names,
Measure.Values,
group = Area2),
color = "black")+
theme(panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank())+
theme(panel.grid.major.x = element_line(
size = 0.2,
linetype = 2))
Shehroz Malik is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
Map the color, then define an appropriate color scale. Then try to keep your code somewhat tidy:
eb <- element_blank()
ggplot(example2, aes(Measure.Names, Measure.Values, group = Area)) +
geom_line(color = 'light grey', data = (d) select(d, -Area2)) +
geom_line(aes(color = Area %in% c("Region 11", "Region 9"))) +
geom_line(color = "black", data = (d) d |> select(-Area2) |> filter(Area == "National"))+
geom_text(aes(label = labels), hjust= 0.5, vjust = -1, size = 2.5, color= "black") +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
scale_color_manual(
values = c('TRUE' = 'red', 'FALSE' = 'navy'),
guide = 'none'
) +
facet_wrap(vars(Area2), 3, scales = "free") +
theme_bw()+
theme(
text = element_text(size = 10),
axis.title = eb, axis.text.y = eb, axis.ticks.y = eb,
panel.grid.major.y = eb, panel.grid.minor.y = eb,
panel.grid.major.x = element_line(size = 0.2, linetype = 2),
strip.background =element_rect(fill="navy"),
strip.text = element_text(colour = 'white', face = "bold")
)
1
Try mapping color to a conditional. Don’t forget to make sure that the variable value “red” is mapped to the -colour- red with scale_color_identity():
geom_line(aes(color = ifelse(Area3 == "Region 9" | Area3 == "Region 11", "red", "blue")))+
scale_color_identity()