tikz - gráfico interativo com posição do mouse

tikz - gráfico interativo com posição do mouse

Desejo criar um gráfico interativo com o mouse, por exemplo, se o mouse passar sobre algum rótulo de texto, destaque a área relacionada. abaixo está um exemplo de gráfico:

\documentclass[border=2mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[yscale=-1,>=latex]
\foreach \a/\b/\c/\d/\desc [count=\j] in {
    0/0/5/8/box1,
    0/0/5/8/box2,
    1/1/4/7/box3,
    0/0/3/6/box4
}{
    \path (-2,0) ++(0,\j) coordinate (A);
    \draw (\a,\b) rectangle (\c,\d);
    \draw[<-,red] (\a,\b) -- (A) node[anchor=east,pos=1] {\desc};
}
\end{tikzpicture}
\end{document}

Se passar o mouse sobre a caixa1, ele deverá destacar a área (0,0) - (5,8). Conheço suporte a animação, mas não é interativo (controle pela posição do mouse).

insira a descrição da imagem aqui

Responder1

Aqui está um exemplo usando o pacote ocgx2. O arquivo deve ser compilado duas vezes e necessita do leitor de PDF Acrobat Reader, Foxit Reader ou evince. Para ativar uma zona é necessário clicar no nome da caixa.

Muito obrigado a @AlexG, mantenedor do ocgx2pacote, por especificar em comentários como garantir que a ativação de uma camada desabilite as outras com a opção opts={radiobtngrp=myBoxes}}.

captura de tela

\documentclass[border=2mm]{standalone}
\usepackage[tikz]{ocgx2}
\begin{document}
\begin{tikzpicture}[yscale=-1,>=latex]
\foreach \a/\b/\c/\d/\desc [count=\j] in {
    0/0/5/8/box1,
    0/0/2/4/box2,
    1/1/4/7/box3,
    0/0/3/6/box4
}{
    \path (-2,0) ++(0,\j) coordinate (A);
    \draw (\a,\b) rectangle (\c,\d);
    \begin{scope}[ocg={name=box\j,ref=box\j,status=invisible,opts={radiobtngrp=myBoxes}}]
        \fill[red!30] (\a,\b) rectangle (\c,\d);
    \end{scope}
    \draw[<-,red] (\a,\b) -- (A) node[anchor=east,pos=1,switch ocg=box\j] {\desc};
}
\end{tikzpicture}
\end{document}

informação relacionada