Creazione e posizionamento legenda in Groupplot

  • Creatore
    Topic
  • #93382
    Up
    0
    Down
    ::


    Ciao a tutti,

    ho un problema curioso che non riesco a risolvere. Devo mettere la legenda a dei grafici costruiti con pgfplots inseriti in ambiente tikzpicture – groupplot.

    Sono 5 grafici affiancati i quali hanno 6 profili di una certa grandezza ciascuno. Sto diventando matto ….. ho 2 problemi:

    1) riesco a mettere la legenda solamente nel ultimo grafico
    2) nella legenda non capisco perchè parte con il secondo profilo…. in teoria dovrei avere (Rxx, Ryy, Rzz, Rxy, Rxz, Ryz) ma non mi mette in legenda Rxx…parte direttamente con Ryy!!!

    Vi allego il link del file perchè è parecchio lungo il codice… eccolo : http://we.tl/im7ZXSgREm

    Spero riusciate a darmi una mano e magari consigliarmi un modo migliore per mettere la legenda.. ad esempio a me piacerebbe vederla tra l’asse x e la didascalia.. una unica per tutti i grafici centrata in mezzo alla pagina.

    Grazie a tutti!

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #93383
      robitex
      Amministratore del forum
        Up
        0
        Down
        ::

        Frigeri” post=93013Ciao a tutti,

        ho un problema curioso che non riesco a risolvere. Devo mettere la legenda a dei grafici costruiti con pgfplots inseriti in ambiente tikzpicture – groupplot.

        Sono 5 grafici affiancati i quali hanno 6 profili di una certa grandezza ciascuno. Sto diventando matto ….. ho 2 problemi:

        1) riesco a mettere la legenda solamente nel ultimo grafico
        2) nella legenda non capisco perchè parte con il secondo profilo…. in teoria dovrei avere (Rxx, Ryy, Rzz, Rxy, Rxz, Ryz) ma non mi mette in legenda Rxx…parte direttamente con Ryy!!!

        Vi allego il link del file perchè è parecchio lungo il codice… eccolo : http://we.tl/im7ZXSgREm

        Spero riusciate a darmi una mano e magari consigliarmi un modo migliore per mettere la legenda.. ad esempio a me piacerebbe vederla tra l’asse x e la didascalia.. una unica per tutti i grafici centrata in mezzo alla pagina.

        Grazie a tutti!

        Ciao,
        per prima cosa ti segnalo che la composizione delle unità di misura in siuntix non si scrive:
        \SI{}{\metre}
        ma
        \si{\metre}

        Credo che il problema delle legende che incontri sia dovuto al fatto che tu disegni le righe nere in ed out con comandi \addplot.
        Così facendo crei molte più entry nelle legende.

        Per risolvere puoi provare due strade:
        la prima prevede di disegnare le righe in out con comandi \draw utilizzando il sistema di riferimento axis cs.
        La seconda consiste nell’inserire le virgole nella definizione dell’etichetta, al posto degli \addplot per le in e le out.
        In altre parole dovresti far corrispondere ad ogni linea di riferimento inserita con \addplot con un \addlegendentry{};

        Ti consiglio inoltre di spostare i dati in file separati per una migliore gestione del sorgente e di utilizzare la classe standalone per creare i grafici già ritagliati da inserire nel documento principale come immagine.
        Bel grafico.
        Saluti.
        R.

      • #93384
        Up
        0
        Down
        ::


        Segui gli ottimi consigli di Roberto!

        Per la legenda, tuttavia, io preferisco un altro metodo, ossia [tt]legend to name[/tt] da richiamare successivamente con [tt]\ref[/tt]. Con il tuo documento, dovrebbe essere più o meno così: `
        \documentclass

        {standalone}
        \usepackage{pgfplots}
        \usepackage{siunitx}
        \usepgfplotslibrary{groupplots}
        \begin{document}
        \begin{tikzpicture}[scale=0.75]
        \pgfplotsset{every axis/.append style={font=\tiny, width=5cm, height=10cm, %scale only axis,
        xmin=-2., xmax=2.5,xtick={-2,-1.5,-1,-0.5,0,0.5,1,1.5,2,2.5,3}, xticklabels={-2,,-1,,0,,1,,2,,3},
        xlabel={$\frac{\langle u_{i}u_{j}\rangle}{k} $},
        ymin=0, ymax=2.4, grid=both,
        ytick={0,0.5,…,2}, extra y ticks={0.1,2.25}, extra y tick labels={out,in},
        }
        legend columns=-1,
        legend entries={Ryy,Rzz,Rxy,Rxz,Ryz,Rxx},
        legend to name=lamialegenda
        }
        \begin{groupplot} [opzioni]
        bla bla bla
        \end{groupplot}
        \node at (5,-2){}; % nodo vuoto per aumentare la bounding box
        \end{tikzpicture}

        \vspace{2cm} % occorre fare qualche spostamento a occhio

        \hspace{-\textwidth}
        \begin{minipage}{\textwidth}
        \ref{lamialegenda}
        \end{minipage}

        \end{document}
        `

        Ciao
        Claudio

      • #93385
        Up
        0
        Down
        ::


        Dopo provo che ora vado a far revisione e conclusione della tesi ;);) grazie.

      • #93386
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          Frigeri” post=93035Dopo provo che ora vado a far revisione e conclusione della tesi ;);) grazie.

          Questa è una delle cose più belle del forum…
          R.

        • #93387
          Up
          0
          Down
          ::


          Caro cfiandra, grazie di nuovo…

          comunque ho provato ad usare il tuo metodo ma mi da un errore:

          ! TeX capacity exceeded, sorry [input stack size=5000].

          Se commento
          `legend columns=-1,
          legend entries={Ryy,Rzz,Rxy,Rxz,Ryz,Rxx},
          legend to name=lamialegenda`

          l’errore sparisce ma chiaramente la legenda non viene creata 🙂

          A cosa può esser dovuto tale errore?

          Grazie

        • #93388
          Up
          0
          Down
          ::


          Ho risolto mettendo le tre righe di codice relative alla legenda nelle opzioni di groupplot anziché nel pgfplotset.

          Tuttavia ho sempre lo stesso problema, la prima delle 6 curve non mi viene riportata in legenda….. 🙁 😕 😕 😕 😕 😕 😕 😕

        • #93389
          Up
          0
          Down
          ::

          Frigeri” post=93040Ho risolto mettendo le tre righe di codice relative alla legenda nelle opzioni di groupplot anziché nel pgfplotset.

          Tuttavia ho sempre lo stesso problema, la prima delle 6 curve non mi viene riportata in legenda….. 🙁 😕 😕 😕 😕 😕 😕 😕

          Strano, a me funzionava. Comunque, attenzione ai [tt]forget plot[/tt]: il problema può essere quello.

          Ciao
          Claudio

        • #93390
          Up
          0
          Down
          ::


          Il motivo erano proprio quei forget plot !!

          Grazie mille!

      Visualizzazione 7 filoni di risposte
      • Devi essere connesso per rispondere a questo topic.

      Go to top