É possível adicionar imagens aos painéis do Looker codificando um URL de imagem em um bloco de texto Markdown. No entanto, as imagens nos blocos de texto são estáticas e não são atualizadas com base nos resultados. E se você quiser que uma imagem do painel mude dinamicamente com base em um valor de filtro selecionado pelo usuário?
Esta página de práticas recomendadas demonstra como criar uma imagem dinâmica do painel usando Liquid e o parâmetro html
.
A solução
A solução a seguir é baseada em um conjunto de dados de e-commerce que inclui um campo chamado users.state
, que representa os estados em um conjunto de dados hipotético de e-commerce:
dimension: state { type: string sql: ${TABLE}.state ;; }
Digamos que você queira mostrar a imagem da bandeira de um estado em um painel que será atualizado com base no estado que um usuário escolhe para filtrar os resultados do painel.
Há três etapas que você precisa concluir para criar a imagem dinâmica do painel:
- Crie uma dimensão de imagem no LookML.
- Criar um Bloco de imagem dinâmica no painel.
- Adicione filtros e retoques finais ao painel.
Etapa 1: criar uma dimensão de imagem no LookML
Para criar uma dimensão de imagem no LookML:
- Primeiro, navegue até o projeto e o arquivo de visualização que contém a dimensão em que você quer adicionar imagens. Em seguida, crie uma nova dimensão com base nesse campo, especificamente para exibir as imagens.
-
Adicione um parâmetro
html
para definir uma{% if %}
instrução condicional do Liquid com a variávelvalue
para cada valor em que você quer mostrar uma imagem.Por exemplo, a dimensão
state_flag_image
a seguir estabelece uma condição para mostrar as imagens especificadas (com tagshtml <img>
) quando o valor destate
é"California"
,"New York"
,"Colorado"
ou"Illinois"
. Para todos os outros estados, você pode mostrar um ícone "Nenhuma imagem disponível":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 %} ;; }
-
Crie uma condição de valor para cada valor em que você quer mostrar uma imagem. Como alternativa, você pode criar um campo de imagem dinâmico usando a variável
value
Liquid, conforme descrito na postagem da Comunidade Como adicionar imagens às visualizações.
Em seguida, crie um Bloco do painel para a dimensão da imagem.
Etapa 2: criar um Bloco de informações do painel de imagem dinâmica
Agora que a dimensão da imagem (state_flag_image
) foi criada, você pode criar um recurso "Explorar" que vai se tornar o bloco de imagem dinâmica do painel.
Crie sua seção "Explorar" com os seguintes critérios:
-
Adicione um filtro para a dimensão original (neste caso,
state
). Defina o filtro para qualquer valor. A bandeira de estado vai mostrar a imagem "sem imagem disponível" neste caso, porque nenhum valor de filtro específico foi selecionado. Esse valor vai ser atualizado de acordo com o que o usuário selecionar para o filtro do painel. -
Selecione a dimensão da imagem (neste caso,
state_flag_image
) e qualquer outra dimensão que seja necessária para a consulta que determina a imagem. Por exemplo, se você quiser considerar uma data, inclua a data etc. - Mude o limite de linhas para uma.
-
Mude o tipo de visualização para visualização de um único valor e oculte todas as outras colunas, exceto a dimensão da imagem (
state_flag_image
).
A Análise detalhada vai mostrar o primeiro resultado de imagem na visualização de valor único renderizada no painel Visualização. A imagem exibida vai mudar com base no valor do filtro que o usuário selecionar no painel final:
Salve a Análise de dados em um dashboard como um bloco.
Etapa 3: adicionar filtros e retoques finais ao painel
Agora, você precisa adicionar filtros ao painel. Os filtros no painel vão atualizar o filtro na seção "Explorar" para mudar a imagem exibida com base na seleção do usuário.
No modo de edição do painel, crie o filtro:
- Abra a janela "Adicionar filtro".
- Selecione o campo para filtrar. O campo de filtro precisa ser a dimensão em que a dimensão da imagem é baseada. No caso deste exemplo, o campo do filtro será estado.
- Selecione o bloco de imagem da etapa 2 na guia Blocos a atualizar.
- Selecione a dimensão original (estado, neste caso) no menu suspenso Campo a ser filtrado inline. Selecione outros blocos para atualizar conforme necessário.
- Personalize o filtro como quiser. Se você selecionar a opção de controle Avançado, desmarque a opção Permitir vários valores de filtro, que é ativada automaticamente para a opção de controle Avançado.
Agora, o bloco de imagem vai ser atualizado com a seleção do filtro do usuário.
Quando um usuário escolhe filtrar por "Califórnia", o painel mostra a bandeira e os dados do estado:
Quando um usuário escolhe filtrar por "Colorado", o painel mostra a bandeira e os dados do estado: