[R] Is it possible to get a downward pointing solid triangle plotting symbol in R?

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Fri Oct 6 17:05:51 CEST 2023


Doesn't the outcome of this suggestion still depend on which fonts and output device you are using? ... and that is to some degree still system dependent...

On October 6, 2023 7:50:00 AM PDT, Rui Barradas <ruipbarradas using sapo.pt> wrote:
>À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)
>
>
>
>

-- 
Sent from my phone. Please excuse my brevity.



More information about the R-help mailing list