Às 10:09 de 06/10/2023, Chris Evans via R-help escreveu:
The reason I am asking is that I would like to mark areas on a plot
using geom_polygon() and aes(fill = variable) to fill various polygons
forming the background of a plot with different colours. Then I would
like to overlay that with points representing direction of change:
improved, no reliable change, deteriorated. The obvious symbols to use
for those three directions are an upward arrow, a circle or square and a
downward pointing arrow. There is a solid upward point triangle symbol
in R (ph = 17) and there are both upward and downward pointing open
triangle symbols (pch 21 and 25) but to fill those with a solid colour
so they will be visible over the background requires that I use a fill
aesthetic and that gets me a mess with the legend as I will have used a
different fill mapping to fill the polygons. This silly reprex shows
the issue I think.
library(tidyverse)
tibble(x = 2:9, y = 2:9, c = c(rep("A", 5), rep("B", 3))) -> tmpTibPoints
tibble(x = c(1, 5, 5, 1), y = c(1, 1, 5, 5), a = rep("a", 4)) ->
tmpTibArea1
tibble(x = c(5, 10, 10, 5), y = c(1, 1, 5, 5), a = rep("b", 4)) ->
tmpTibArea2
tibble(x = c(1, 5, 5, 1), y = c(5, 5, 10, 10), a = rep("c", 4)) ->
tmpTibArea3
tibble(x = c(5, 10, 10, 5), y = c(5, 5, 10, 10), a = rep("d", 4)) ->
tmpTibArea4
bind_rows(tmpTibArea1,
tmpTibArea2,
tmpTibArea3,
tmpTibArea4) -> tmpTibAreas
ggplot(data = tmpTib,
aes(x = x, y = y)) +
geom_polygon(data = tmpTibAreas,
aes(x = x, y = y, fill = a)) +
geom_point(data = tmpTibPoints,
aes(x = x, y = y, fill = c),
pch = 24,
size = 6)
Does anyone know a way to create a solid downward pointing symbol? Or
another workaround?
TIA,
Chris
Hello,
Maybe you can solve the problem with unicode characters.
See the two scale_*_manual at the end of the plot.
# Unicode characters for black up- and down-pointing characters
pts_shapes <- c("\U25B2", "\U25BC") |> setNames(c("A", "B"))
pts_colors <- c("blue", "red") |> setNames(c("A", "B"))
ggplot(data = tmpTibAreas,
aes(x = x, y = y)) +
geom_polygon(data = tmpTibAreas,
aes(x = x, y = y, fill = a)) +
geom_point(data = tmpTibPoints,
aes(x = x, y = y, color = c, shape = c),
size = 6) +
scale_shape_manual(values = pts_shapes) +
scale_color_manual(values = pts_colors)
--
Este e-mail foi analisado pelo software antivírus AVG para verificar a presença
de vírus.
www.avg.com
______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.