Agregar interactivamente puntos a la gráfica R sin volver a dibujar la gráfica de fondo

El MWE a continuación simplifica demasiado mi objetivo real. Sin embargo, tengo una imagen de fondo que toma mucho tiempo dibujar (en el ejemplo a continuación es simplemente un diagrama de dispersión de 32 valores de dataset de mtcars). Los usuarios pueden hacer clic en ciertos puntos de mi imagen de fondo, y esto hará que se tracen nuevos puntos. Mi objetivo es que estos nuevos puntos simplemente se vuelvan a dibujar en la capa superior, mientras que el diagrama de dispersión de la imagen de fondo no necesita ser redibujado para ahorrar tiempo y cálculo.

Mi MWE es el siguiente:

library(plotly)
library(htmlwidgets)

g <- ggplot(mtcars, aes(x=mpg, y=cyl)) + geom_point()
gP <- ggplotly(g)

gP %>% onRender("
          function(el, x) {
            myGraph = document.getElementById(el.id);

            el.on('plotly_click', function(e) {

              console.log(e)
              console.log(e.points[0].x)

              var trace1 = {
                x: [e.points[0].x-.3, e.points[0].x-.3, e.points[0].x+.3, e.points[0].x+.3],
                y: [e.points[0].y-.3, e.points[0].y+.3, e.points[0].y-.3, e.points[0].y+.3],
                type: 'scatter',
                fillColor : 'red', 
                size: 20
              };

              Plotly.addTraces(el.id, trace1);
           })}
           ")

Cuando un usuario hace clic en cualquiera de los 32 puntos negros, se dibujan cuatro puntos rojos de color alrededor del punto negro en el que se hizo clic. Esto funciona principalmente, y si hace clic en cualquiera de los 32 puntos de datos negros, debería ver los cuatro puntos de colores dibujados a su alrededor. Sin embargo, me quedo luchando con algunas preguntas:

1) ¿Cómo puedo mejorar esto para que los cuatro puntos coloreados no estén conectados por líneas?

2) ¿Cómo puedo hacer que el tamaño y el color de relleno realmente funcionen? Cuando cambio sus valores, no veo que tengan efecto.

3) ¿Es esta una sintaxis razonable para hacer que la interactividad y el dibujo sean lo más rápidos posible? Estoy bastante seguro de que la imagen de fondo no se vuelve a dibujar de manera eficiente, pero me encantaría escuchar la confirmación al respecto, ya que soy nuevo en esta sintaxis. Si tuviera que agregar cientos de puntos nuevos en la capa superior, ¿seguiría siendo eficiente? De lo contrario, agradecería recibir consejos sobre recomendaciones para mejorar la sintaxis.

Gracias.

Respuestas a la pregunta(1)

Su respuesta a la pregunta