Puedes añadir imágenes a los paneles de Looker codificando una URL de imagen en un recuadro de texto de Markdown. Sin embargo, las imágenes de las baldosas de texto son estáticas y no se actualizan en función de los resultados. ¿Qué ocurre si quieres que una imagen de un panel cambie de forma dinámica en función del valor de un filtro seleccionado por el usuario?
En esta página de prácticas recomendadas se muestra cómo conseguir una imagen de panel de control dinámica con Liquid y el parámetro html
.
La solución
La siguiente solución se basa en un conjunto de datos de comercio electrónico que incluye un campo llamado users.state
, que representa los estados de un conjunto de datos de comercio electrónico hipotético:
dimension: state { type: string sql: ${TABLE}.state ;; }
Supongamos que quieres mostrar la imagen de la bandera de un estado en un panel de control que se actualice en función del estado por el que un usuario decida filtrar los resultados del panel.
Para crear la imagen del panel de control dinámico, debes seguir estos tres pasos:
- Crea una dimensión de imagen en LookML.
- Crea una baldosa de panel de control de imagen dinámica.
- Añade filtros al panel de control y dale los últimos retoques.
Paso 1: Crea una dimensión de imagen en LookML
Para crear una dimensión de imagen en LookML, sigue estos pasos:
- Primero, vaya al proyecto y al archivo de vista que contenga la dimensión a la que quiera añadir imágenes. A continuación, crea una dimensión basada en ese campo, específicamente para mostrar las imágenes.
-
Añada un parámetro
html
para definir una{% if %}
instrucción condicional de Liquid con la variablevalue
para cada valor para el que quiera mostrar una imagen.Por ejemplo, la siguiente dimensión
state_flag_image
establece una condición para mostrar las imágenes especificadas (con etiquetashtml <img>
) cuando el valor destate
es"California"
,"New York"
,"Colorado"
o"Illinois"
. En el resto de los estados, puede mostrar un icono de "imagen no disponible":dimension: state_flag_image { type: string sql: ${state} ;; html: {% if state._value == "California" %} <img src="https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg" height="170" width="255"> {% elsif state._value == "New York" %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_New_York.svg/1200px-Flag_of_New_York.svg.png" height="170" width="255"> {% elsif state._value == "Colorado" %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Flag_of_Colorado.svg/255px-Flag_of_Colorado.svg.png" height="170" width="255"> {% elsif state._value == "Illinois"%} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_Illinois.svg/1200px-Flag_of_Illinois.svg.png" height="170" width="255"> {% else %} <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/No_image_available.svg/1024px-No_image_available.svg.png" height="170" width="170"> {% endif %} ;; }
-
Crea una condición de valor para cada valor para el que quieras mostrar una imagen. También puedes crear un campo de imagen dinámica con la variable
value
Liquid, tal como se describe en la publicación de la comunidad Cómo añadir imágenes a las visualizaciones.
A continuación, puede crear un gráfico de panel de control para la dimensión de imagen.
Paso 2: Crea una baldosa de panel de control de imagen dinámica
Ahora que se ha creado la dimensión de imagen (state_flag_image
), puede crear una exploración que se convertirá en la baldosa del panel de control de imágenes dinámicas.
Crea tu exploración con los siguientes criterios:
-
Añade un filtro para la dimensión original (en este caso,
state
). Asigna al filtro cualquier valor (en este caso, la marca de estado mostrará la imagen "no hay ninguna imagen disponible", ya que no se ha seleccionado ningún valor de filtro específico). Este valor de filtro se actualizará en función de lo que el usuario seleccione en el filtro del panel de control. -
Selecciona la dimensión de la imagen (en este caso,
state_flag_image
) y cualquier otra dimensión que pueda ser necesaria para la consulta que determina la imagen (por ejemplo, si quieres tener en cuenta una fecha, puedes incluir la fecha, etc.). - Cambia el límite de filas a una fila.
-
Cambie el tipo de visualización a Valor único y oculte todas las demás columnas, excepto la dimensión de imagen (
state_flag_image
).
En Exploración se mostrará el primer resultado de imagen en la visualización de un solo valor que se representa en el panel Visualización. La imagen de visualización cambiará en función del valor del filtro que el usuario seleccione en el panel final:
Guarda la exploración en un panel de control como un gráfico.
Paso 3: Añade filtros al panel de control y da los últimos retoques
Ahora debe añadir filtros al panel de control. Los filtros del panel de control actualizarán el filtro de Explorar para cambiar la imagen que se muestra en función de la selección del usuario.
En el modo de edición del panel de control, crea el filtro:
- Abre la ventana Añadir filtro.
- Selecciona el campo por el que quieras filtrar. El campo de filtro debe ser la dimensión en la que se basa la dimensión de la imagen. En este ejemplo, el campo del filtro será state.
- Selecciona la baldosa de imagen del paso 2 en la pestaña Baldosas que actualizar.
- Seleccione la dimensión original (state en este caso) en el menú desplegable Campo que se va a filtrar. Selecciona otros recuadros para actualizarlos como quieras.
- Personaliza el filtro como quieras. Si seleccionas la opción de control Avanzado, asegúrate de desmarcar la opción Permitir varios valores de filtro, que se habilita automáticamente para la opción de control Avanzado.
Ahora, la baldosa de imagen se actualizará con la selección de filtros del usuario.
Cuando un usuario elige filtrar por "California", el panel de control muestra la bandera y los datos del estado de California:
Si un usuario elige filtrar por "Colorado", el panel de control mostrará la bandera y los datos del estado de Colorado: