Уровни альфа ggplot выглядят по-разному при заполнении и границе точек (артефакт звонка)

Я строю много точек, используя ggplot с постоянным значением прозрачности для всех точек.

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

В результате они выглядят как кольца, а не полупрозрачные круги.

library(ggplot2)
set.seed(123)
data <- data.frame( x = sample(1:100,2000, replace=T), 
                    y = sample(1:100,2000, replace=T) )
ggplot(data, aes(x,y)) + 
  geom_point(alpha=0.2, color="dodgerblue", fill="dodgerblue", size=4) +
  theme(panel.background = element_rect(fill = 'black', colour = 'black'))

Я не уверен, почему это происходит, поэтому информация о том, почему это происходит, была бы отличной.

Возможные решения заключаются в том, чтобы сделать границу и заполнить ту же прозрачность или сделать границу 100% прозрачной (если задать границу, скажем, цвет фона, это приведет к разрушению визуальных элементов при перекрытии точек). Я не уверен, как это сделать.

* Изменения добавлены после обсуждений ниже *

Эта проблема появляется при просмотре графика в программе просмотра RStudio или в сохраненном PNG. Он не отображается при просмотре сохраненного PDF. Тем не менее, мой реальный набор данных большой, а векторная графика неэффективна при построении большого количества точек, поэтому я бы хотел альтернативное решение!

Ответы на вопрос(3)

Ваш ответ на вопрос