Arrows in tikz Markov chain diagram overlap












4















I am trying to draw a Markov chain using tikz. The diagram is in the correct setup except the arrow going from State 2 and 3 overlaps two other arrows. I tried repositioning the states using node distance but that did not seem to work. How can I force the arrows not to overlap?
Markov Chain



%latex
documentclass[reqno]{amsart}
usepackage{amsmath}
usepackage{amssymb}
usepackage{hyperref}
usepackage{pgfplots}

usepgfplotslibrary{fillbetween}

usepackage{tikz}
usetikzlibrary{automata}
usetikzlibrary{positioning} % ...positioning nodes
usetikzlibrary{arrows} % ...customizing arrows
tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
every state/.style={ % Sets the properties for each state
semithick,
fill=gray!10},
initial text={}, % No label on start arrow
double distance=4pt, % Adjust appearance of accept states
every edge/.style={ % Sets the properties for each transition
draw,
->,>=stealth', % Makes edges directed with bold arrowheads
auto,
semithick}}

begin{document}

begin{figure}[htb]
centering
begin{tikzpicture}
node[state] (s1) {State 1};
node[state, below right of=s1] (s2) {State 2};
node[state, below left of=s1] (s3) {State 3};

draw (s1) edge[loop above] node {} (s1);
draw (s1) edge[bend left] node {} (s2);
draw (s1) edge[bend right] node {} (s3);

draw (s2) edge[bend left] node {} (s1);
draw (s2) edge[loop right] node {} (s2);
draw (s2) edge[bend right] node {} (s3);

draw (s3) edge[bend right] node {} (s1);
draw (s3) edge[bend right] node {} (s2);
draw (s3) edge[loop left] node {} (s3);

end{tikzpicture}
end{figure}

end{document}









share|improve this question



























    4















    I am trying to draw a Markov chain using tikz. The diagram is in the correct setup except the arrow going from State 2 and 3 overlaps two other arrows. I tried repositioning the states using node distance but that did not seem to work. How can I force the arrows not to overlap?
    Markov Chain



    %latex
    documentclass[reqno]{amsart}
    usepackage{amsmath}
    usepackage{amssymb}
    usepackage{hyperref}
    usepackage{pgfplots}

    usepgfplotslibrary{fillbetween}

    usepackage{tikz}
    usetikzlibrary{automata}
    usetikzlibrary{positioning} % ...positioning nodes
    usetikzlibrary{arrows} % ...customizing arrows
    tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
    every state/.style={ % Sets the properties for each state
    semithick,
    fill=gray!10},
    initial text={}, % No label on start arrow
    double distance=4pt, % Adjust appearance of accept states
    every edge/.style={ % Sets the properties for each transition
    draw,
    ->,>=stealth', % Makes edges directed with bold arrowheads
    auto,
    semithick}}

    begin{document}

    begin{figure}[htb]
    centering
    begin{tikzpicture}
    node[state] (s1) {State 1};
    node[state, below right of=s1] (s2) {State 2};
    node[state, below left of=s1] (s3) {State 3};

    draw (s1) edge[loop above] node {} (s1);
    draw (s1) edge[bend left] node {} (s2);
    draw (s1) edge[bend right] node {} (s3);

    draw (s2) edge[bend left] node {} (s1);
    draw (s2) edge[loop right] node {} (s2);
    draw (s2) edge[bend right] node {} (s3);

    draw (s3) edge[bend right] node {} (s1);
    draw (s3) edge[bend right] node {} (s2);
    draw (s3) edge[loop left] node {} (s3);

    end{tikzpicture}
    end{figure}

    end{document}









    share|improve this question

























      4












      4








      4








      I am trying to draw a Markov chain using tikz. The diagram is in the correct setup except the arrow going from State 2 and 3 overlaps two other arrows. I tried repositioning the states using node distance but that did not seem to work. How can I force the arrows not to overlap?
      Markov Chain



      %latex
      documentclass[reqno]{amsart}
      usepackage{amsmath}
      usepackage{amssymb}
      usepackage{hyperref}
      usepackage{pgfplots}

      usepgfplotslibrary{fillbetween}

      usepackage{tikz}
      usetikzlibrary{automata}
      usetikzlibrary{positioning} % ...positioning nodes
      usetikzlibrary{arrows} % ...customizing arrows
      tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
      every state/.style={ % Sets the properties for each state
      semithick,
      fill=gray!10},
      initial text={}, % No label on start arrow
      double distance=4pt, % Adjust appearance of accept states
      every edge/.style={ % Sets the properties for each transition
      draw,
      ->,>=stealth', % Makes edges directed with bold arrowheads
      auto,
      semithick}}

      begin{document}

      begin{figure}[htb]
      centering
      begin{tikzpicture}
      node[state] (s1) {State 1};
      node[state, below right of=s1] (s2) {State 2};
      node[state, below left of=s1] (s3) {State 3};

      draw (s1) edge[loop above] node {} (s1);
      draw (s1) edge[bend left] node {} (s2);
      draw (s1) edge[bend right] node {} (s3);

      draw (s2) edge[bend left] node {} (s1);
      draw (s2) edge[loop right] node {} (s2);
      draw (s2) edge[bend right] node {} (s3);

      draw (s3) edge[bend right] node {} (s1);
      draw (s3) edge[bend right] node {} (s2);
      draw (s3) edge[loop left] node {} (s3);

      end{tikzpicture}
      end{figure}

      end{document}









      share|improve this question














      I am trying to draw a Markov chain using tikz. The diagram is in the correct setup except the arrow going from State 2 and 3 overlaps two other arrows. I tried repositioning the states using node distance but that did not seem to work. How can I force the arrows not to overlap?
      Markov Chain



      %latex
      documentclass[reqno]{amsart}
      usepackage{amsmath}
      usepackage{amssymb}
      usepackage{hyperref}
      usepackage{pgfplots}

      usepgfplotslibrary{fillbetween}

      usepackage{tikz}
      usetikzlibrary{automata}
      usetikzlibrary{positioning} % ...positioning nodes
      usetikzlibrary{arrows} % ...customizing arrows
      tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
      every state/.style={ % Sets the properties for each state
      semithick,
      fill=gray!10},
      initial text={}, % No label on start arrow
      double distance=4pt, % Adjust appearance of accept states
      every edge/.style={ % Sets the properties for each transition
      draw,
      ->,>=stealth', % Makes edges directed with bold arrowheads
      auto,
      semithick}}

      begin{document}

      begin{figure}[htb]
      centering
      begin{tikzpicture}
      node[state] (s1) {State 1};
      node[state, below right of=s1] (s2) {State 2};
      node[state, below left of=s1] (s3) {State 3};

      draw (s1) edge[loop above] node {} (s1);
      draw (s1) edge[bend left] node {} (s2);
      draw (s1) edge[bend right] node {} (s3);

      draw (s2) edge[bend left] node {} (s1);
      draw (s2) edge[loop right] node {} (s2);
      draw (s2) edge[bend right] node {} (s3);

      draw (s3) edge[bend right] node {} (s1);
      draw (s3) edge[bend right] node {} (s2);
      draw (s3) edge[loop left] node {} (s3);

      end{tikzpicture}
      end{figure}

      end{document}






      tikz-pgf diagrams






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Apr 2 at 0:18









      cpagecpage

      17215




      17215






















          2 Answers
          2






          active

          oldest

          votes


















          5














          bend left and bend right come with parameters, the bending angles. Adjusting them allows you to avoid the intersections. (BTW, I also removed packages that were not used. Note also that the arrows library got superseded by arrows.meta but I kept arrows for now.)



          documentclass[reqno]{amsart}
          usepackage{tikz}
          usetikzlibrary{automata}
          usetikzlibrary{positioning} % ...positioning nodes
          usetikzlibrary{arrows} % ...customizing arrows
          tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
          every state/.style={ % Sets the properties for each state
          semithick,
          fill=gray!10},
          initial text={}, % No label on start arrow
          double distance=4pt, % Adjust appearance of accept states
          every edge/.style={ % Sets the properties for each transition
          draw,
          ->,>=stealth', % Makes edges directed with bold arrowheads
          auto,
          semithick}}

          begin{document}

          begin{figure}[htb]
          centering
          begin{tikzpicture}
          node[state] (s1) {State 1};
          node[state, below right of=s1] (s2) {State 2};
          node[state, below left of=s1] (s3) {State 3};

          draw (s1) edge[loop above] (s1);
          draw (s1) edge[bend left] (s2);
          draw (s1) edge[bend right] (s3);

          draw (s2) edge[bend left=12] (s1);
          draw (s2) edge[loop right] (s2);
          draw (s2) edge[bend right=12] (s3);

          draw (s3) edge[bend right=12] (s1);
          draw (s3) edge[bend right] (s2);
          draw (s3) edge[loop left] (s3);

          end{tikzpicture}
          end{figure}
          end{document}


          enter image description here






          share|improve this answer































            2














            you can reduce default value of bend angle. just add bend angle=15 to your tikzset (similarly @marmoth change it locally for two arrows bend).



            off topic:




            • for labeling of arrows is handy to use quotes library and than wrote it as for example ... (s1) edge["label",bend left] (s2).


            • package hyperref had to be load last in preamble (except in rare cases)



              documentclass[reqno]{amsart}
              usepackage{amsmath, amssymb}

              usepackage{pgfplots} % it load tikz too
              pgfplotsset{compat=1.16}
              usetikzlibrary{automata,
              arrows.meta, % ...customizing arrows
              positioning, % ...positioning nodes
              quotes} % For edge labels
              usepgfplotslibrary{fillbetween}
              tikzset{node distance=4.5cm, % Minimum distance between nodes. Change if necessary.
              every state/.style={ % Sets the properties for each state
              semithick,
              fill=gray!10},
              initial text={}, % No label on start arrow
              double distance=4pt, % Adjust appearance of accept states
              every edge/.style={ % Sets the properties for each transition
              draw,
              semithick,
              -Stealth, % Makes edges directed with bold arrowheads
              auto},
              bend angle=15 % Reduce default bend angle
              }

              usepackage{hyperref} % had to be last in preamble

              begin{document}
              begin{figure}[htb]
              centering
              begin{tikzpicture}
              node[state] (s1) {State 1};
              node[state, below right of=s1] (s2) {State 2};
              node[state, below left of=s1] (s3) {State 3};

              draw (s1) edge[loop above] (s1)
              (s1) edge[bend left] (s2)
              (s1) edge[bend right] (s3)
              %
              (s2) edge[bend left] (s1)
              (s2) edge[loop right] (s2)
              (s2) edge[bend right] (s3)
              %
              (s3) edge[bend right] (s1)
              (s3) edge[bend right] (s2)
              (s3) edge[loop left] (s3);
              end{tikzpicture}
              end{figure}
              end{document}



            enter image description here






            share|improve this answer


























              Your Answer








              StackExchange.ready(function() {
              var channelOptions = {
              tags: "".split(" "),
              id: "85"
              };
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function() {
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled) {
              StackExchange.using("snippets", function() {
              createEditor();
              });
              }
              else {
              createEditor();
              }
              });

              function createEditor() {
              StackExchange.prepareEditor({
              heartbeatType: 'answer',
              autoActivateHeartbeat: false,
              convertImagesToLinks: false,
              noModals: true,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              imageUploader: {
              brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
              contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
              allowUrls: true
              },
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              });


              }
              });














              draft saved

              draft discarded


















              StackExchange.ready(
              function () {
              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482673%2farrows-in-tikz-markov-chain-diagram-overlap%23new-answer', 'question_page');
              }
              );

              Post as a guest















              Required, but never shown

























              2 Answers
              2






              active

              oldest

              votes








              2 Answers
              2






              active

              oldest

              votes









              active

              oldest

              votes






              active

              oldest

              votes









              5














              bend left and bend right come with parameters, the bending angles. Adjusting them allows you to avoid the intersections. (BTW, I also removed packages that were not used. Note also that the arrows library got superseded by arrows.meta but I kept arrows for now.)



              documentclass[reqno]{amsart}
              usepackage{tikz}
              usetikzlibrary{automata}
              usetikzlibrary{positioning} % ...positioning nodes
              usetikzlibrary{arrows} % ...customizing arrows
              tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
              every state/.style={ % Sets the properties for each state
              semithick,
              fill=gray!10},
              initial text={}, % No label on start arrow
              double distance=4pt, % Adjust appearance of accept states
              every edge/.style={ % Sets the properties for each transition
              draw,
              ->,>=stealth', % Makes edges directed with bold arrowheads
              auto,
              semithick}}

              begin{document}

              begin{figure}[htb]
              centering
              begin{tikzpicture}
              node[state] (s1) {State 1};
              node[state, below right of=s1] (s2) {State 2};
              node[state, below left of=s1] (s3) {State 3};

              draw (s1) edge[loop above] (s1);
              draw (s1) edge[bend left] (s2);
              draw (s1) edge[bend right] (s3);

              draw (s2) edge[bend left=12] (s1);
              draw (s2) edge[loop right] (s2);
              draw (s2) edge[bend right=12] (s3);

              draw (s3) edge[bend right=12] (s1);
              draw (s3) edge[bend right] (s2);
              draw (s3) edge[loop left] (s3);

              end{tikzpicture}
              end{figure}
              end{document}


              enter image description here






              share|improve this answer




























                5














                bend left and bend right come with parameters, the bending angles. Adjusting them allows you to avoid the intersections. (BTW, I also removed packages that were not used. Note also that the arrows library got superseded by arrows.meta but I kept arrows for now.)



                documentclass[reqno]{amsart}
                usepackage{tikz}
                usetikzlibrary{automata}
                usetikzlibrary{positioning} % ...positioning nodes
                usetikzlibrary{arrows} % ...customizing arrows
                tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
                every state/.style={ % Sets the properties for each state
                semithick,
                fill=gray!10},
                initial text={}, % No label on start arrow
                double distance=4pt, % Adjust appearance of accept states
                every edge/.style={ % Sets the properties for each transition
                draw,
                ->,>=stealth', % Makes edges directed with bold arrowheads
                auto,
                semithick}}

                begin{document}

                begin{figure}[htb]
                centering
                begin{tikzpicture}
                node[state] (s1) {State 1};
                node[state, below right of=s1] (s2) {State 2};
                node[state, below left of=s1] (s3) {State 3};

                draw (s1) edge[loop above] (s1);
                draw (s1) edge[bend left] (s2);
                draw (s1) edge[bend right] (s3);

                draw (s2) edge[bend left=12] (s1);
                draw (s2) edge[loop right] (s2);
                draw (s2) edge[bend right=12] (s3);

                draw (s3) edge[bend right=12] (s1);
                draw (s3) edge[bend right] (s2);
                draw (s3) edge[loop left] (s3);

                end{tikzpicture}
                end{figure}
                end{document}


                enter image description here






                share|improve this answer


























                  5












                  5








                  5







                  bend left and bend right come with parameters, the bending angles. Adjusting them allows you to avoid the intersections. (BTW, I also removed packages that were not used. Note also that the arrows library got superseded by arrows.meta but I kept arrows for now.)



                  documentclass[reqno]{amsart}
                  usepackage{tikz}
                  usetikzlibrary{automata}
                  usetikzlibrary{positioning} % ...positioning nodes
                  usetikzlibrary{arrows} % ...customizing arrows
                  tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
                  every state/.style={ % Sets the properties for each state
                  semithick,
                  fill=gray!10},
                  initial text={}, % No label on start arrow
                  double distance=4pt, % Adjust appearance of accept states
                  every edge/.style={ % Sets the properties for each transition
                  draw,
                  ->,>=stealth', % Makes edges directed with bold arrowheads
                  auto,
                  semithick}}

                  begin{document}

                  begin{figure}[htb]
                  centering
                  begin{tikzpicture}
                  node[state] (s1) {State 1};
                  node[state, below right of=s1] (s2) {State 2};
                  node[state, below left of=s1] (s3) {State 3};

                  draw (s1) edge[loop above] (s1);
                  draw (s1) edge[bend left] (s2);
                  draw (s1) edge[bend right] (s3);

                  draw (s2) edge[bend left=12] (s1);
                  draw (s2) edge[loop right] (s2);
                  draw (s2) edge[bend right=12] (s3);

                  draw (s3) edge[bend right=12] (s1);
                  draw (s3) edge[bend right] (s2);
                  draw (s3) edge[loop left] (s3);

                  end{tikzpicture}
                  end{figure}
                  end{document}


                  enter image description here






                  share|improve this answer













                  bend left and bend right come with parameters, the bending angles. Adjusting them allows you to avoid the intersections. (BTW, I also removed packages that were not used. Note also that the arrows library got superseded by arrows.meta but I kept arrows for now.)



                  documentclass[reqno]{amsart}
                  usepackage{tikz}
                  usetikzlibrary{automata}
                  usetikzlibrary{positioning} % ...positioning nodes
                  usetikzlibrary{arrows} % ...customizing arrows
                  tikzset{node distance=4.5cm, % Minimum distance between two nodes. Change if necessary.
                  every state/.style={ % Sets the properties for each state
                  semithick,
                  fill=gray!10},
                  initial text={}, % No label on start arrow
                  double distance=4pt, % Adjust appearance of accept states
                  every edge/.style={ % Sets the properties for each transition
                  draw,
                  ->,>=stealth', % Makes edges directed with bold arrowheads
                  auto,
                  semithick}}

                  begin{document}

                  begin{figure}[htb]
                  centering
                  begin{tikzpicture}
                  node[state] (s1) {State 1};
                  node[state, below right of=s1] (s2) {State 2};
                  node[state, below left of=s1] (s3) {State 3};

                  draw (s1) edge[loop above] (s1);
                  draw (s1) edge[bend left] (s2);
                  draw (s1) edge[bend right] (s3);

                  draw (s2) edge[bend left=12] (s1);
                  draw (s2) edge[loop right] (s2);
                  draw (s2) edge[bend right=12] (s3);

                  draw (s3) edge[bend right=12] (s1);
                  draw (s3) edge[bend right] (s2);
                  draw (s3) edge[loop left] (s3);

                  end{tikzpicture}
                  end{figure}
                  end{document}


                  enter image description here







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Apr 2 at 0:28









                  marmotmarmot

                  114k5145276




                  114k5145276























                      2














                      you can reduce default value of bend angle. just add bend angle=15 to your tikzset (similarly @marmoth change it locally for two arrows bend).



                      off topic:




                      • for labeling of arrows is handy to use quotes library and than wrote it as for example ... (s1) edge["label",bend left] (s2).


                      • package hyperref had to be load last in preamble (except in rare cases)



                        documentclass[reqno]{amsart}
                        usepackage{amsmath, amssymb}

                        usepackage{pgfplots} % it load tikz too
                        pgfplotsset{compat=1.16}
                        usetikzlibrary{automata,
                        arrows.meta, % ...customizing arrows
                        positioning, % ...positioning nodes
                        quotes} % For edge labels
                        usepgfplotslibrary{fillbetween}
                        tikzset{node distance=4.5cm, % Minimum distance between nodes. Change if necessary.
                        every state/.style={ % Sets the properties for each state
                        semithick,
                        fill=gray!10},
                        initial text={}, % No label on start arrow
                        double distance=4pt, % Adjust appearance of accept states
                        every edge/.style={ % Sets the properties for each transition
                        draw,
                        semithick,
                        -Stealth, % Makes edges directed with bold arrowheads
                        auto},
                        bend angle=15 % Reduce default bend angle
                        }

                        usepackage{hyperref} % had to be last in preamble

                        begin{document}
                        begin{figure}[htb]
                        centering
                        begin{tikzpicture}
                        node[state] (s1) {State 1};
                        node[state, below right of=s1] (s2) {State 2};
                        node[state, below left of=s1] (s3) {State 3};

                        draw (s1) edge[loop above] (s1)
                        (s1) edge[bend left] (s2)
                        (s1) edge[bend right] (s3)
                        %
                        (s2) edge[bend left] (s1)
                        (s2) edge[loop right] (s2)
                        (s2) edge[bend right] (s3)
                        %
                        (s3) edge[bend right] (s1)
                        (s3) edge[bend right] (s2)
                        (s3) edge[loop left] (s3);
                        end{tikzpicture}
                        end{figure}
                        end{document}



                      enter image description here






                      share|improve this answer






























                        2














                        you can reduce default value of bend angle. just add bend angle=15 to your tikzset (similarly @marmoth change it locally for two arrows bend).



                        off topic:




                        • for labeling of arrows is handy to use quotes library and than wrote it as for example ... (s1) edge["label",bend left] (s2).


                        • package hyperref had to be load last in preamble (except in rare cases)



                          documentclass[reqno]{amsart}
                          usepackage{amsmath, amssymb}

                          usepackage{pgfplots} % it load tikz too
                          pgfplotsset{compat=1.16}
                          usetikzlibrary{automata,
                          arrows.meta, % ...customizing arrows
                          positioning, % ...positioning nodes
                          quotes} % For edge labels
                          usepgfplotslibrary{fillbetween}
                          tikzset{node distance=4.5cm, % Minimum distance between nodes. Change if necessary.
                          every state/.style={ % Sets the properties for each state
                          semithick,
                          fill=gray!10},
                          initial text={}, % No label on start arrow
                          double distance=4pt, % Adjust appearance of accept states
                          every edge/.style={ % Sets the properties for each transition
                          draw,
                          semithick,
                          -Stealth, % Makes edges directed with bold arrowheads
                          auto},
                          bend angle=15 % Reduce default bend angle
                          }

                          usepackage{hyperref} % had to be last in preamble

                          begin{document}
                          begin{figure}[htb]
                          centering
                          begin{tikzpicture}
                          node[state] (s1) {State 1};
                          node[state, below right of=s1] (s2) {State 2};
                          node[state, below left of=s1] (s3) {State 3};

                          draw (s1) edge[loop above] (s1)
                          (s1) edge[bend left] (s2)
                          (s1) edge[bend right] (s3)
                          %
                          (s2) edge[bend left] (s1)
                          (s2) edge[loop right] (s2)
                          (s2) edge[bend right] (s3)
                          %
                          (s3) edge[bend right] (s1)
                          (s3) edge[bend right] (s2)
                          (s3) edge[loop left] (s3);
                          end{tikzpicture}
                          end{figure}
                          end{document}



                        enter image description here






                        share|improve this answer




























                          2












                          2








                          2







                          you can reduce default value of bend angle. just add bend angle=15 to your tikzset (similarly @marmoth change it locally for two arrows bend).



                          off topic:




                          • for labeling of arrows is handy to use quotes library and than wrote it as for example ... (s1) edge["label",bend left] (s2).


                          • package hyperref had to be load last in preamble (except in rare cases)



                            documentclass[reqno]{amsart}
                            usepackage{amsmath, amssymb}

                            usepackage{pgfplots} % it load tikz too
                            pgfplotsset{compat=1.16}
                            usetikzlibrary{automata,
                            arrows.meta, % ...customizing arrows
                            positioning, % ...positioning nodes
                            quotes} % For edge labels
                            usepgfplotslibrary{fillbetween}
                            tikzset{node distance=4.5cm, % Minimum distance between nodes. Change if necessary.
                            every state/.style={ % Sets the properties for each state
                            semithick,
                            fill=gray!10},
                            initial text={}, % No label on start arrow
                            double distance=4pt, % Adjust appearance of accept states
                            every edge/.style={ % Sets the properties for each transition
                            draw,
                            semithick,
                            -Stealth, % Makes edges directed with bold arrowheads
                            auto},
                            bend angle=15 % Reduce default bend angle
                            }

                            usepackage{hyperref} % had to be last in preamble

                            begin{document}
                            begin{figure}[htb]
                            centering
                            begin{tikzpicture}
                            node[state] (s1) {State 1};
                            node[state, below right of=s1] (s2) {State 2};
                            node[state, below left of=s1] (s3) {State 3};

                            draw (s1) edge[loop above] (s1)
                            (s1) edge[bend left] (s2)
                            (s1) edge[bend right] (s3)
                            %
                            (s2) edge[bend left] (s1)
                            (s2) edge[loop right] (s2)
                            (s2) edge[bend right] (s3)
                            %
                            (s3) edge[bend right] (s1)
                            (s3) edge[bend right] (s2)
                            (s3) edge[loop left] (s3);
                            end{tikzpicture}
                            end{figure}
                            end{document}



                          enter image description here






                          share|improve this answer















                          you can reduce default value of bend angle. just add bend angle=15 to your tikzset (similarly @marmoth change it locally for two arrows bend).



                          off topic:




                          • for labeling of arrows is handy to use quotes library and than wrote it as for example ... (s1) edge["label",bend left] (s2).


                          • package hyperref had to be load last in preamble (except in rare cases)



                            documentclass[reqno]{amsart}
                            usepackage{amsmath, amssymb}

                            usepackage{pgfplots} % it load tikz too
                            pgfplotsset{compat=1.16}
                            usetikzlibrary{automata,
                            arrows.meta, % ...customizing arrows
                            positioning, % ...positioning nodes
                            quotes} % For edge labels
                            usepgfplotslibrary{fillbetween}
                            tikzset{node distance=4.5cm, % Minimum distance between nodes. Change if necessary.
                            every state/.style={ % Sets the properties for each state
                            semithick,
                            fill=gray!10},
                            initial text={}, % No label on start arrow
                            double distance=4pt, % Adjust appearance of accept states
                            every edge/.style={ % Sets the properties for each transition
                            draw,
                            semithick,
                            -Stealth, % Makes edges directed with bold arrowheads
                            auto},
                            bend angle=15 % Reduce default bend angle
                            }

                            usepackage{hyperref} % had to be last in preamble

                            begin{document}
                            begin{figure}[htb]
                            centering
                            begin{tikzpicture}
                            node[state] (s1) {State 1};
                            node[state, below right of=s1] (s2) {State 2};
                            node[state, below left of=s1] (s3) {State 3};

                            draw (s1) edge[loop above] (s1)
                            (s1) edge[bend left] (s2)
                            (s1) edge[bend right] (s3)
                            %
                            (s2) edge[bend left] (s1)
                            (s2) edge[loop right] (s2)
                            (s2) edge[bend right] (s3)
                            %
                            (s3) edge[bend right] (s1)
                            (s3) edge[bend right] (s2)
                            (s3) edge[loop left] (s3);
                            end{tikzpicture}
                            end{figure}
                            end{document}



                          enter image description here







                          share|improve this answer














                          share|improve this answer



                          share|improve this answer








                          edited Apr 2 at 4:19

























                          answered Apr 2 at 1:37









                          ZarkoZarko

                          129k868169




                          129k868169






























                              draft saved

                              draft discarded




















































                              Thanks for contributing an answer to TeX - LaTeX Stack Exchange!


                              • Please be sure to answer the question. Provide details and share your research!

                              But avoid



                              • Asking for help, clarification, or responding to other answers.

                              • Making statements based on opinion; back them up with references or personal experience.


                              To learn more, see our tips on writing great answers.




                              draft saved


                              draft discarded














                              StackExchange.ready(
                              function () {
                              StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2ftex.stackexchange.com%2fquestions%2f482673%2farrows-in-tikz-markov-chain-diagram-overlap%23new-answer', 'question_page');
                              }
                              );

                              Post as a guest















                              Required, but never shown





















































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown

































                              Required, but never shown














                              Required, but never shown












                              Required, but never shown







                              Required, but never shown







                              Popular posts from this blog

                              How did Captain America manage to do this?

                              迪纳利

                              南乌拉尔铁路局