Почему geom_segment создает обводку с прозрачностью? - PullRequest
0 голосов
/ 15 марта 2020

У меня есть упрощенная версия моего кода ниже. Сегмент выглядит полупрозрачным, как выделено вторым сегментом, перекрывающим часть первого, который показывает белый цвет с большим количеством альфа.

Если я открою изображение, сохраненное как SVG в Adobe Illustrator, устанавливается прозрачность до 50%, что объясняет, почему это выглядит так, но я понятия не имею, почему оно установлено на 50%, когда я не установил его (но установил альфа на 1).

library(tidyverse)
g <- ggplot() +      
  theme_void() +
  theme(
    plot.background = element_rect(fill = "black"),
  ) +
  #coord_polar() +
  scale_color_identity() +
  #plot distance - facing outwards
  geom_segment(aes(x = 1, xend = 3,
                   y = 1, yend = 3,
                   colour = "white", alpha = 1),
               size = 1, inherit.aes = FALSE) +
  geom_segment(aes(x = 1, xend = 2,
                   y = 1, yend = 2,
                   colour = "white", alpha = 1),
               size = 1, inherit.aes = FALSE)

g

enter image description here

1 Ответ

2 голосов
/ 15 марта 2020

Я думаю, вам просто нужно переместить colour и alpha из функции aes. Как вы пишете, они передаются как переменные для интерпретации, а не как абсолютные значения:

library(tidyverse)
g <- ggplot() +      
  theme_void() +
  theme(
    plot.background = element_rect(fill = "black"),
  ) +
  #coord_polar() +
  scale_color_identity() +
  #plot distance - facing outwards
  geom_segment(aes(x = 1, xend = 3,
                   y = 1, yend = 3),
                   colour = "white", alpha = 1,
               size = 1, inherit.aes = FALSE) +
  geom_segment(aes(x = 1, xend = 2,
                   y = 1, yend = 2),
                   colour = "white", alpha = 1,
               size = 1, inherit.aes = FALSE)

g

enter image description here

...