pgfplots: How to control and align legend items precisely above each other?pgfplots: How to align legends of...

Air travel with refrigerated insulin

If Captain Marvel (MCU) were to have a child with a human male, would the child be human or Kree?

Given this phrasing in the lease, when should I pay my rent?

How many people need to be born every 8 years to sustain population?

Is there a reason to prefer HFS+ over APFS for disk images in High Sierra and/or Mojave?

Are Captain Marvel's powers affected by Thanos breaking the Tesseract and claiming the stone?

Why do Radio Buttons not fill the entire outer circle?

How to get directions in deep space?

I'm just a whisper. Who am I?

How do you justify more code being written by following clean code practices?

How to make money from a browser who sees 5 seconds into the future of any web page?

Proving an identity involving cross products and coplanar vectors

Animation: customize bounce interpolation

What should be the ideal length of sentences in a blog post for ease of reading?

Difference between shutdown options

El Dorado Word Puzzle II: Videogame Edition

Does the Crossbow Expert feat's extra crossbow attack work with the reaction attack from a Hunter ranger's Giant Killer feature?

Check if object is null and return null

ContourPlot — How do I color by contour curvature?

Possible Eco thriller, man invents a device to remove rain from glass

How were servants to the Kaiser of Imperial Germany treated and where may I find more information on them

Did I make a mistake by ccing email to boss to others?

Why can't the Brexit deadlock in the UK parliament be solved with a plurality vote?

Why does a 97 / 92 key piano exist by Bösendorfer?



pgfplots: How to control and align legend items precisely above each other?


pgfplots: How to align legends of multigraph diagram?pgfplots: externalization and legend referencingplotting two time series with boundsGrouped bar chartHow to align bars with the legend?How to hide empty (value 0) ybars with pgfplots?Show mark labels near marks and not centered in ybar interaval graphLine up nested tikz enviroments or how to get rid of thempgfplots: percentage in matrix plotHow to align the legend in pgfplots?Center the axes in the coordinate origin













1















The user marmot has posted a really nice approach of adding legend items into one single box below a multigraph diagram by placing them inside a node.



Based on this initial situation I have tried to separate the legend items into three rows above each other, but the result is missleading.





Minimum Working Example (MWE):



documentclass[border=5mm]{standalone}
usepackage{pgfplots}
usetikzlibrary{positioning}
pgfplotsset{compat=newest, scale only axis}
begin{document}

begin{tikzpicture}
begin{scope}[local bounding box=plots]
begin{axis}[
axis y line* = left,
legend to name = legA,
legend style = {draw=none,
legend columns = 3,
/tikz/every even column/.append style = {column sep=0.5cm},
/tikz/every odd column/.append style = {column sep=0.15cm},
},
]%
addplot coordinates {(0,0) (1,1)};
addplot coordinates {(1,0) (0,1)};
addplot coordinates {(0,1) (1,1)};
legend{Graph 1, Graph 2, Graph 3};
end{axis}%
%
begin{axis}[
axis x line = none,
axis y line* = right,
legend to name = legB,
legend style = {draw=none,
legend columns = 3,
/tikz/every even column/.append style = {column sep=0.5cm},
/tikz/every odd column/.append style = {column sep=0.15cm},
},
]%
addplot coordinates {(0,1) (1,0)};
addplot coordinates {(0,0.5) (1,0.5)};
addplot coordinates {(0,0.15) (1,0.15)};
legend{Graphinggraph 4, Graphinggraph 5, Graphinggraph 6};
end{axis}%
%
begin{axis}[
axis x line = none,
axis y line* = right,
legend to name = legC,
legend style = {draw=none,
legend columns = 3,
/tikz/every even column/.append style = {column sep=0.5cm},
/tikz/every odd column/.append style = {column sep=0.15cm},
},
]%
pgfplotsset%
{%
every outer y axis line/.style = {xshift=2cm},
every tick/.style = {xshift=2cm},
every y tick label/.style = {xshift=2cm},
}%
addplot coordinates {(0.5,0) (0.5,1)};
addplot coordinates {(0.6,0) (0.6,1)};
addplot coordinates {(0.7,0) (0.7,1)};
legend{Graphgraph 7, Graphgraph 8, Graphgraph 9};
end{axis}%
end{scope}
node[below=3.5em of plots.south] (legA) {ref{legA}};
node[below=-0.5em of legA] (legB) {ref{legB}};
node[below=-0.5em of legB] (legC) {ref{legC}};
draw (legA.north west) rectangle (legC.south east);
end{tikzpicture}
end{document}




Screenshot of the result:



Screenshot of the result





Description of the issue:



As you can see,




  • the border does not fit with the outer dimension of the legend items,

  • the legend items are not precisely aligned below each other.


So my questions are: How to solve this and make it look nice?










share|improve this question





























    1















    The user marmot has posted a really nice approach of adding legend items into one single box below a multigraph diagram by placing them inside a node.



    Based on this initial situation I have tried to separate the legend items into three rows above each other, but the result is missleading.





    Minimum Working Example (MWE):



    documentclass[border=5mm]{standalone}
    usepackage{pgfplots}
    usetikzlibrary{positioning}
    pgfplotsset{compat=newest, scale only axis}
    begin{document}

    begin{tikzpicture}
    begin{scope}[local bounding box=plots]
    begin{axis}[
    axis y line* = left,
    legend to name = legA,
    legend style = {draw=none,
    legend columns = 3,
    /tikz/every even column/.append style = {column sep=0.5cm},
    /tikz/every odd column/.append style = {column sep=0.15cm},
    },
    ]%
    addplot coordinates {(0,0) (1,1)};
    addplot coordinates {(1,0) (0,1)};
    addplot coordinates {(0,1) (1,1)};
    legend{Graph 1, Graph 2, Graph 3};
    end{axis}%
    %
    begin{axis}[
    axis x line = none,
    axis y line* = right,
    legend to name = legB,
    legend style = {draw=none,
    legend columns = 3,
    /tikz/every even column/.append style = {column sep=0.5cm},
    /tikz/every odd column/.append style = {column sep=0.15cm},
    },
    ]%
    addplot coordinates {(0,1) (1,0)};
    addplot coordinates {(0,0.5) (1,0.5)};
    addplot coordinates {(0,0.15) (1,0.15)};
    legend{Graphinggraph 4, Graphinggraph 5, Graphinggraph 6};
    end{axis}%
    %
    begin{axis}[
    axis x line = none,
    axis y line* = right,
    legend to name = legC,
    legend style = {draw=none,
    legend columns = 3,
    /tikz/every even column/.append style = {column sep=0.5cm},
    /tikz/every odd column/.append style = {column sep=0.15cm},
    },
    ]%
    pgfplotsset%
    {%
    every outer y axis line/.style = {xshift=2cm},
    every tick/.style = {xshift=2cm},
    every y tick label/.style = {xshift=2cm},
    }%
    addplot coordinates {(0.5,0) (0.5,1)};
    addplot coordinates {(0.6,0) (0.6,1)};
    addplot coordinates {(0.7,0) (0.7,1)};
    legend{Graphgraph 7, Graphgraph 8, Graphgraph 9};
    end{axis}%
    end{scope}
    node[below=3.5em of plots.south] (legA) {ref{legA}};
    node[below=-0.5em of legA] (legB) {ref{legB}};
    node[below=-0.5em of legB] (legC) {ref{legC}};
    draw (legA.north west) rectangle (legC.south east);
    end{tikzpicture}
    end{document}




    Screenshot of the result:



    Screenshot of the result





    Description of the issue:



    As you can see,




    • the border does not fit with the outer dimension of the legend items,

    • the legend items are not precisely aligned below each other.


    So my questions are: How to solve this and make it look nice?










    share|improve this question



























      1












      1








      1








      The user marmot has posted a really nice approach of adding legend items into one single box below a multigraph diagram by placing them inside a node.



      Based on this initial situation I have tried to separate the legend items into three rows above each other, but the result is missleading.





      Minimum Working Example (MWE):



      documentclass[border=5mm]{standalone}
      usepackage{pgfplots}
      usetikzlibrary{positioning}
      pgfplotsset{compat=newest, scale only axis}
      begin{document}

      begin{tikzpicture}
      begin{scope}[local bounding box=plots]
      begin{axis}[
      axis y line* = left,
      legend to name = legA,
      legend style = {draw=none,
      legend columns = 3,
      /tikz/every even column/.append style = {column sep=0.5cm},
      /tikz/every odd column/.append style = {column sep=0.15cm},
      },
      ]%
      addplot coordinates {(0,0) (1,1)};
      addplot coordinates {(1,0) (0,1)};
      addplot coordinates {(0,1) (1,1)};
      legend{Graph 1, Graph 2, Graph 3};
      end{axis}%
      %
      begin{axis}[
      axis x line = none,
      axis y line* = right,
      legend to name = legB,
      legend style = {draw=none,
      legend columns = 3,
      /tikz/every even column/.append style = {column sep=0.5cm},
      /tikz/every odd column/.append style = {column sep=0.15cm},
      },
      ]%
      addplot coordinates {(0,1) (1,0)};
      addplot coordinates {(0,0.5) (1,0.5)};
      addplot coordinates {(0,0.15) (1,0.15)};
      legend{Graphinggraph 4, Graphinggraph 5, Graphinggraph 6};
      end{axis}%
      %
      begin{axis}[
      axis x line = none,
      axis y line* = right,
      legend to name = legC,
      legend style = {draw=none,
      legend columns = 3,
      /tikz/every even column/.append style = {column sep=0.5cm},
      /tikz/every odd column/.append style = {column sep=0.15cm},
      },
      ]%
      pgfplotsset%
      {%
      every outer y axis line/.style = {xshift=2cm},
      every tick/.style = {xshift=2cm},
      every y tick label/.style = {xshift=2cm},
      }%
      addplot coordinates {(0.5,0) (0.5,1)};
      addplot coordinates {(0.6,0) (0.6,1)};
      addplot coordinates {(0.7,0) (0.7,1)};
      legend{Graphgraph 7, Graphgraph 8, Graphgraph 9};
      end{axis}%
      end{scope}
      node[below=3.5em of plots.south] (legA) {ref{legA}};
      node[below=-0.5em of legA] (legB) {ref{legB}};
      node[below=-0.5em of legB] (legC) {ref{legC}};
      draw (legA.north west) rectangle (legC.south east);
      end{tikzpicture}
      end{document}




      Screenshot of the result:



      Screenshot of the result





      Description of the issue:



      As you can see,




      • the border does not fit with the outer dimension of the legend items,

      • the legend items are not precisely aligned below each other.


      So my questions are: How to solve this and make it look nice?










      share|improve this question
















      The user marmot has posted a really nice approach of adding legend items into one single box below a multigraph diagram by placing them inside a node.



      Based on this initial situation I have tried to separate the legend items into three rows above each other, but the result is missleading.





      Minimum Working Example (MWE):



      documentclass[border=5mm]{standalone}
      usepackage{pgfplots}
      usetikzlibrary{positioning}
      pgfplotsset{compat=newest, scale only axis}
      begin{document}

      begin{tikzpicture}
      begin{scope}[local bounding box=plots]
      begin{axis}[
      axis y line* = left,
      legend to name = legA,
      legend style = {draw=none,
      legend columns = 3,
      /tikz/every even column/.append style = {column sep=0.5cm},
      /tikz/every odd column/.append style = {column sep=0.15cm},
      },
      ]%
      addplot coordinates {(0,0) (1,1)};
      addplot coordinates {(1,0) (0,1)};
      addplot coordinates {(0,1) (1,1)};
      legend{Graph 1, Graph 2, Graph 3};
      end{axis}%
      %
      begin{axis}[
      axis x line = none,
      axis y line* = right,
      legend to name = legB,
      legend style = {draw=none,
      legend columns = 3,
      /tikz/every even column/.append style = {column sep=0.5cm},
      /tikz/every odd column/.append style = {column sep=0.15cm},
      },
      ]%
      addplot coordinates {(0,1) (1,0)};
      addplot coordinates {(0,0.5) (1,0.5)};
      addplot coordinates {(0,0.15) (1,0.15)};
      legend{Graphinggraph 4, Graphinggraph 5, Graphinggraph 6};
      end{axis}%
      %
      begin{axis}[
      axis x line = none,
      axis y line* = right,
      legend to name = legC,
      legend style = {draw=none,
      legend columns = 3,
      /tikz/every even column/.append style = {column sep=0.5cm},
      /tikz/every odd column/.append style = {column sep=0.15cm},
      },
      ]%
      pgfplotsset%
      {%
      every outer y axis line/.style = {xshift=2cm},
      every tick/.style = {xshift=2cm},
      every y tick label/.style = {xshift=2cm},
      }%
      addplot coordinates {(0.5,0) (0.5,1)};
      addplot coordinates {(0.6,0) (0.6,1)};
      addplot coordinates {(0.7,0) (0.7,1)};
      legend{Graphgraph 7, Graphgraph 8, Graphgraph 9};
      end{axis}%
      end{scope}
      node[below=3.5em of plots.south] (legA) {ref{legA}};
      node[below=-0.5em of legA] (legB) {ref{legB}};
      node[below=-0.5em of legB] (legC) {ref{legC}};
      draw (legA.north west) rectangle (legC.south east);
      end{tikzpicture}
      end{document}




      Screenshot of the result:



      Screenshot of the result





      Description of the issue:



      As you can see,




      • the border does not fit with the outer dimension of the legend items,

      • the legend items are not precisely aligned below each other.


      So my questions are: How to solve this and make it look nice?







      tikz-pgf pgfplots positioning legend tikz-graphdrawing






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 7 mins ago









      KJO

      3,2171221




      3,2171221










      asked 7 hours ago









      DaveDave

      893619




      893619






















          1 Answer
          1






          active

          oldest

          votes


















          0














          I will try to answer just your WHY

          before @marmot awakes and sees me messing about with TikZ / pgfplots answers.



          His answer was provided by the first poster (thus not strctly marmots choice) it depended on an automatic box that adjusts width so unless the text in each column is equal the legend will be unequal.



          You could cheat by adding spaces to match the longest entry as I have done here
          enter image description here



          to save space I will only add the changed lines



               legend{Grumpy children whine ~ ~ ~1, Graph with fixed width 2, Graph with fixed width 3};
          legend{Grapes make good wine ~ ~ ~4, Graph with fixed width 5, Graph with fixed width 6};
          legend{Graph with fixed width~ ~ ~7, Graph with fixed width 8, Graph~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~9};


          This how to "fix" it is far from ideal, and a different answer is needed for how to replace it. so lets see if a question flag change will get you a real answer






          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%2f480547%2fpgfplots-how-to-control-and-align-legend-items-precisely-above-each-other%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            I will try to answer just your WHY

            before @marmot awakes and sees me messing about with TikZ / pgfplots answers.



            His answer was provided by the first poster (thus not strctly marmots choice) it depended on an automatic box that adjusts width so unless the text in each column is equal the legend will be unequal.



            You could cheat by adding spaces to match the longest entry as I have done here
            enter image description here



            to save space I will only add the changed lines



                 legend{Grumpy children whine ~ ~ ~1, Graph with fixed width 2, Graph with fixed width 3};
            legend{Grapes make good wine ~ ~ ~4, Graph with fixed width 5, Graph with fixed width 6};
            legend{Graph with fixed width~ ~ ~7, Graph with fixed width 8, Graph~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~9};


            This how to "fix" it is far from ideal, and a different answer is needed for how to replace it. so lets see if a question flag change will get you a real answer






            share|improve this answer




























              0














              I will try to answer just your WHY

              before @marmot awakes and sees me messing about with TikZ / pgfplots answers.



              His answer was provided by the first poster (thus not strctly marmots choice) it depended on an automatic box that adjusts width so unless the text in each column is equal the legend will be unequal.



              You could cheat by adding spaces to match the longest entry as I have done here
              enter image description here



              to save space I will only add the changed lines



                   legend{Grumpy children whine ~ ~ ~1, Graph with fixed width 2, Graph with fixed width 3};
              legend{Grapes make good wine ~ ~ ~4, Graph with fixed width 5, Graph with fixed width 6};
              legend{Graph with fixed width~ ~ ~7, Graph with fixed width 8, Graph~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~9};


              This how to "fix" it is far from ideal, and a different answer is needed for how to replace it. so lets see if a question flag change will get you a real answer






              share|improve this answer


























                0












                0








                0







                I will try to answer just your WHY

                before @marmot awakes and sees me messing about with TikZ / pgfplots answers.



                His answer was provided by the first poster (thus not strctly marmots choice) it depended on an automatic box that adjusts width so unless the text in each column is equal the legend will be unequal.



                You could cheat by adding spaces to match the longest entry as I have done here
                enter image description here



                to save space I will only add the changed lines



                     legend{Grumpy children whine ~ ~ ~1, Graph with fixed width 2, Graph with fixed width 3};
                legend{Grapes make good wine ~ ~ ~4, Graph with fixed width 5, Graph with fixed width 6};
                legend{Graph with fixed width~ ~ ~7, Graph with fixed width 8, Graph~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~9};


                This how to "fix" it is far from ideal, and a different answer is needed for how to replace it. so lets see if a question flag change will get you a real answer






                share|improve this answer













                I will try to answer just your WHY

                before @marmot awakes and sees me messing about with TikZ / pgfplots answers.



                His answer was provided by the first poster (thus not strctly marmots choice) it depended on an automatic box that adjusts width so unless the text in each column is equal the legend will be unequal.



                You could cheat by adding spaces to match the longest entry as I have done here
                enter image description here



                to save space I will only add the changed lines



                     legend{Grumpy children whine ~ ~ ~1, Graph with fixed width 2, Graph with fixed width 3};
                legend{Grapes make good wine ~ ~ ~4, Graph with fixed width 5, Graph with fixed width 6};
                legend{Graph with fixed width~ ~ ~7, Graph with fixed width 8, Graph~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~9};


                This how to "fix" it is far from ideal, and a different answer is needed for how to replace it. so lets see if a question flag change will get you a real answer







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered 12 mins ago









                KJOKJO

                3,2171221




                3,2171221






























                    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%2f480547%2fpgfplots-how-to-control-and-align-legend-items-precisely-above-each-other%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

                    Paper upload error, “Upload failed: The top margin is 0.715 in on page 3, which is below the required...

                    Emraan Hashmi Filmografia | Linki zewnętrzne | Menu nawigacyjneGulshan GroverGulshan...

                    How can I write this formula?newline and italics added with leqWhy does widehat behave differently if I...