Estoy buscando mostrar información cuando paso el mouse sobre un gráfico de logotipo creado con ggplot, algo similar a:
Las imágenes se almacenan localmente en mi computadora. El problema es que ni annotations_custom, ni annotation_raster, ni ggdraw, etc. aún están implementados para Plotly.
Traté de crear el gráfico directamente con Plotly, pero parece que no es posible leer imágenes almacenadas directamente sin pasar por una aplicación Shiny ( ¿Hay alguna forma de leer imágenes almacenadas localmente en Plotly? ).
La única solución parece ser usar JavaScript, así que estoy tratando de adaptar el siguiente código que se encuentra aquí: https://anchormen.nl/blog/data-science-ai/images-in-plotly-with-r/
library(tidyverse) library(plotly) g <- ggplot(iris, aes(x = Sepal.Length, y = Petal.Length, color = Species, text = Species)) + geom_point() p <- ggplotly(g, tooltip = "text") p %>% htmlwidgets::onRender(" function(el, x) { // when hovering over an element, do something el.on('plotly_hover', function(d) { // extract tooltip text txt = d.points[0].data.text; // image is stored locally image_location = '1.png'; // define image to be shown var img = { // location of image source: image_location, // top-left corner x: 0, y: 1, sizex: 0.2, sizey: 0.2, xref: 'paper', yref: 'paper' }; // show image and annotation Plotly.relayout(el.id, { images: [img] }); }) } ")Al reutilizar el código tal como está, logro mostrar una imagen en línea, pero no una imagen almacenada localmente, ya sea usando una ruta relativa (el directorio de trabajo se establece en la ubicación del archivo de origen) o absoluta, comenzando con file:///C: /Usuarios/. Se muestra el gráfico y puedo pasar el mouse sobre los puntos, pero la imagen no se muestra al pasar el mouse.
Si alguna vez es posible mostrar imágenes almacenadas localmente, agradecería mucho que me ayuden a adaptar el código para que la imagen no se muestre en la parte superior izquierda sino sobre los puntos para recrear un gráfico de logotipo.
¡Muchas gracias!
Resuelto con esto: https://plotly-r.com/embedding-images.html . Finalmente parece ser más fácil de lo esperado usar imágenes almacenadas localmente.