Colocação e opacidade dos nós tikz

Colocação e opacidade dos nós tikz

Tenho o seguinte MWE, que gostaria de usar como uma espécie de roteiro para a apresentação da defesa. Basicamente tudo funciona e parece bom, mas há duas coisas que não sei como consertar. A primeira coisa é fazer com que os nós apareçam exatamente uns sobre os outros, de modo que por exemplo o ponto inicial à direita da Dissertação seja o mesmo para todos os três caminhos que partem daí. A segunda questão é como fazer com que o círculo dentro de cada nó tenha a mesma opacidade da linha e do preenchimento.

\documentclass{standalone}

\usepackage[dvipsnames]{xcolor}

\usepackage{tikz}
\usepackage{lmodern}

\usepackage{pgfplots}

\usetikzlibrary{ arrows
                , positioning
                , calc
                , arrows.meta
                , shapes
                , snakes}
\colorlet{Navyblue}{NavyBlue}
\tikzstyle{project} = [
            align=left
        %, fill=NavyBlue
        , opacity=0.2
        , text opacity=1]

\newcommand{\myopacity}{1}

\begin{document}

\begin{tikzpicture}[baseline=(current bounding box.center), font=\sffamily, node distance=2cm]
\draw
  node[project,anchor=east](P) {\textbf{Dissertation}}

  node[project
        ,right= 2in of P.east
        , anchor=east
        , text opacity=0.4](P23) {}

   node[project
            , above= of P23.west
            , anchor = west
            ](P1) {\textbf{Project I:}}

   node[project
        , right = 1in of P23
        , text opacity=0.4](P2) {Project II: }
   node[project
        , below= 0.5in of P2.west
        , anchor=west
        , text opacity=0.4](P3) {Project III: }
    node[project
        , below= of P23.west
        , anchor=west
        , text opacity=0.4](P4) {Project IV:};                                                              
   % Define different colors
  \draw[{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , Gray
        , opacity = 0.4] (P.east) -- (P23.west);
  \draw[{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , darkgray
        , opacity = 0.4] (P23.east) -- (P2.west);
  \draw[{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , darkgray
        , opacity = 0.4
        ] (P23.east) -- (P3.west);
  \draw[{Circle[length=8pt]}-{Circle[length=8pt]}
            , line width=2pt
            , Gray
            , opacity = \myopacity] (P.east) -- (P1.west);
  \draw[{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , RoyalBlue
        , opacity = 0.4] (P.east) -- (P4.west);
    \draw[{Circle[length=8pt]}-{Circle[length=8pt]}
            , line width=2pt
            , Gray
            , opacity = \myopacity] (P.east) -- (P1.west);

\end{tikzpicture}

\end{document}

Captura de tela do gráfico resultante Este é o resultado das alterações propostas no primeiro comentário: Resultado

Responder1

Em vez de colocar os textos nos nós:node[project,anchor=east](P) {\textbf{Dissertation}}

Eu os coloco como um rótulo. Os rótulos são nós, possuem as mesmas opções dos nós e podem ser modificados da mesma forma:node[project,anchor=east,label={left:\textbf{Dissertation}}](P) {}

Isso permitirá que você desenhe nós circulares:

\tikzset{project/.style={ align=left 
                          %, fill=NavyBlue
                          , opacity=0.2 
                          , text opacity=1 
                          ,draw %draw a circle node 
                          ,circle}
                         }

Isso simplifica o código de desenho de linha entre nós. Estes últimos conectam nós vazios e não é necessário especificar a P.eastposição P23.westou desenhar suas extremidades em um círculo como:{Circle[length=8pt]}-{Circle[length=8pt]}

   \draw[{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , Gray
        , opacity = 0.4] (P.east) -- (P23.west);

O código se torna:

 \draw[%{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , Gray
        , opacity = 0.4] (P) edge (P23);

Comentei todas as linhas de código que se tornaram inúteis sem excluí-las.

Eu criei um novo nó (P23'):

  node[project
        ,right= 2in of P
        %, anchor=east
        , text opacity=0.4](P23) {}
  node[project
        ,right= 10pt of P23
        %, anchor=east
        , text opacity=0.4](P23') {}

captura de tela

\documentclass{standalone}

\usepackage[dvipsnames]{xcolor}

\usepackage{tikz}
\usepackage{lmodern}

\usepackage{pgfplots}

\usetikzlibrary{ %arrows
                , positioning
                , calc
                , arrows.meta
                , shapes
                , snakes}
\colorlet{Navyblue}{NavyBlue}
\tikzset{project/.style={
            align=left
        %, fill=NavyBlue
        , opacity=0.2
        , text opacity=1
        ,draw
        ,circle}}

\newcommand{\myopacity}{1}

\begin{document}

\begin{tikzpicture}[%baseline=(current bounding box.center),
 font=\sffamily,
  node distance=2cm]
\draw
  node[project,anchor=east,label={left:\textbf{Dissertation}}](P) {}

  node[project
        ,right= 2in of P
        %, anchor=east
        , text opacity=0.4](P23) {}
  node[project
        ,right= 10pt of P23
        %, anchor=east
        , text opacity=0.4](P23') {}
   node[project
            , above= of P23
            %, anchor = west
            , label= right:\textbf{Project I:}
            ](P1) {}

   node[project
        , right = 1in of P23
        , text opacity=0.4
        ,label=right:Project II: ](P2) {}
   node[project
        , below= 0.5in of P2
       % , anchor=west
        , text opacity=0.4,label=right:Project III: ](P3) {}
    node[project
        , below= of P23
        %, anchor=west
        , text opacity=0.4
        ,label=below:Project IV:](P4) {};                                                              
   % Define different colors
  \draw[%{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , Gray
        , opacity = 0.4] (P) edge (P23);
  \draw[%{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , darkgray
        , opacity = 0.4] (P23') -- (P2);
  \draw[%{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , darkgray
        , opacity = 0.4
        ] (P23') -- (P3);
  \draw[%{Circle[length=8pt]}-{Circle[length=8pt]}
            , line width=2pt
            , Gray
            , opacity = \myopacity] (P) -- (P1);
  \draw[%{Circle[length=8pt]}-{Circle[length=8pt]}
        , line width=2pt
        , RoyalBlue
        , opacity = 0.4] (P) -- (P4);
    \draw[%{Circle[length=8pt]}-{Circle[length=8pt]}
            , line width=2pt
            , Gray
            , opacity = \myopacity] (P) -- (P1);

\end{tikzpicture}

\end{document}

informação relacionada