Subfig+tikzpicture: due grafici sulla stessa riga?

  • Creatore
    Topic
  • #41748
    Up
    0
    Down
    ::


    Ciao a tutti.
    Uso TexShop su MacOSX, con TexLive 2008.
    Sto utilizzando pgfplots e devo dire che i risultati sono veramente molto buoni.
    Ora, devo mettere 2 grafici sulla stessa riga. Ho pensato subito al pacchetto subfig, a cui ricorro spessissimo. Quando pero’ cerco di combinare subfig e tikzpicture non c’e verso di ottenere il risultato che cerco: i grafici vengono sempre uno sotto l’altro invece che essere affiancati. Ho provato a cambiare le dimensioni (opzione scale di tikzpicture) pensando che i due grafici insieme fossero troppo larghi, ma anche in questo caso non ho risolto.
    Allego un esempio compilabile minimo.

    `
    \documentclass[a4paper,12pt]{article}
    \usepackage[english]{babel}
    \usepackage{graphicx}
    \usepackage{subfig}
    \usepackage{pgfplots}
    \begin{document}

    \begin{figure}[htbp]
    \centering
    \subfloat[][]{
    \begin{tikzpicture}[scale=0.5]
    \begin{axis}
    \addplot plot[error bars/.cd,
    y dir=both,y explicit]
    coordinates {
    (0,3.5) +- (1,1)
    (100,18) +- (2.3,2.3)
    (200,25) +- (1,1)
    (400,14) +- (2,2)
    };
    \addlegendentry{Prova1}
    \end{axis}
    \end{tikzpicture}
    }

    \quad

    \subfloat[][]{
    \begin{tikzpicture}[scale=0.5]
    \begin{axis}
    \addplot plot[error bars/.cd,
    y dir=both,y explicit]
    coordinates {
    (0,3.5) +- (1,1)
    (100,18) +- (2.3,2.3)
    (200,25) +- (1,1)
    (400,14) +- (2,2)
    };
    \addlegendentry{Prova 2}
    \end{axis}
    \end{tikzpicture}
    }

    \caption{Prove plots}
    \end{figure}

    \end{document} `

    Provate a vedere se succede anche a voi.
    Grazie

Visualizzazione 8 filoni di risposte
  • Autore
    Risposte
    • #41749
      Antonio Ledda
      Partecipante
        Up
        0
        Down
        ::

        Ciao a tutti.
        Uso TexShop su MacOSX, con TexLive 2008.
        Sto utilizzando pgfplots e devo dire che i risultati sono veramente molto buoni.
        Ora, devo mettere 2 grafici sulla stessa riga. Ho pensato subito al pacchetto subfig, a cui ricorro spessissimo. Quando pero’ cerco di combinare subfig e tikzpicture non c’e verso di ottenere il risultato che cerco: i grafici vengono sempre uno sotto l’altro invece che essere affiancati. Ho provato a cambiare le dimensioni (opzione scale di tikzpicture) pensando che i due grafici insieme fossero troppo larghi, ma anche in questo caso non ho risolto.
        Allego un esempio compilabile minimo.

        `
        \documentclass[a4paper,12pt]{article}
        \usepackage[english]{babel}
        \usepackage{graphicx}
        \usepackage{subfig}
        \usepackage{pgfplots}
        \begin{document}

        \begin{figure}[htbp]
        \centering
        \subfloat[][]{
        \begin{tikzpicture}[scale=0.5]
        \begin{axis}
        \addplot plot[error bars/.cd,
        y dir=both,y explicit]
        coordinates {
        (0,3.5) +- (1,1)
        (100,18) +- (2.3,2.3)
        (200,25) +- (1,1)
        (400,14) +- (2,2)
        };
        \addlegendentry{Prova1}
        \end{axis}
        \end{tikzpicture}
        }

        \quad

        \subfloat[][]{
        \begin{tikzpicture}[scale=0.5]
        \begin{axis}
        \addplot plot[error bars/.cd,
        y dir=both,y explicit]
        coordinates {
        (0,3.5) +- (1,1)
        (100,18) +- (2.3,2.3)
        (200,25) +- (1,1)
        (400,14) +- (2,2)
        };
        \addlegendentry{Prova 2}
        \end{axis}
        \end{tikzpicture}
        }

        \caption{Prove plots}
        \end{figure}

        \end{document} `

        Provate a vedere se succede anche a voi.
        Grazie

        Succede anche a me. Eliminando \quad e scrivendo al suo posto, per esempio, `\hspace{2em}` le immagini vengono affiancate.

        Ciao
        Antonio

      • #41750
        Up
        0
        Down
        ::

        Ciao a tutti.
        Uso TexShop su MacOSX, con TexLive 2008.
        Sto utilizzando pgfplots e devo dire che i risultati sono veramente molto buoni.
        Ora, devo mettere 2 grafici sulla stessa riga. Ho pensato subito al pacchetto subfig, a cui ricorro spessissimo. Quando pero’ cerco di combinare subfig e tikzpicture non c’e verso di ottenere il risultato che cerco: i grafici vengono sempre uno sotto l’altro invece che essere affiancati. Ho provato a cambiare le dimensioni (opzione scale di tikzpicture) pensando che i due grafici insieme fossero troppo larghi, ma anche in questo caso non ho risolto.
        Allego un esempio compilabile minimo.

        `…
        \begin{figure}[htbp]
        \centering
        \subfloat[][]{
        \begin{tikzpicture}[scale=0.5]

        \end{tikzpicture}
        }

        \quad

        \subfloat[][]{
        \begin{tikzpicture}[scale=0.5]

        \end{tikzpicture}
        }

        \caption{Prove plots}
        \end{figure}

        \end{document} `

        Provate a vedere se succede anche a voi.
        Grazie

        Certo che succede: quando lasci una riga vuota TeX chiude un capoverso.
        ` \end{tikzpicture}
        }\quad
        \subfloat[][]{
        \begin{tikzpicture}[scale=0.5]`
        Ciao
        Enrico

      • #41751
        Up
        0
        Down
        ::


        Grazie, ma mi fa lo stesso problema anche senza spazio e mettendo \hspace.
        Provo a cercare altre soluzioni…

        [RISOLTO PARZIALMENTE] Ho cambiato scale da 0.5 a 0.8 e i grafici si sono allineati. Se ritorno a 0.5 il problema si ripresenta.

      • #41752
        Antonio Ledda
        Partecipante
          Up
          0
          Down
          ::

          Mmmmmh, a me non funziona nemmeno mettendo \hspace.

          Enrico ti ha già risposto. (In effetti avevo compilato il tuo codice tale e quale; non avevo badato agli spazi. 🙁 Invece con \hspace{…} li avevo eliminati; ecco perché funzionava.)

          Ciao
          Antonio

        • #41753
          Up
          0
          Down
          ::

          Mmmmmh, a me non funziona nemmeno mettendo \hspace.

          Enrico ti ha già risposto. (In effetti avevo compilato il tuo codice tale e quale; non avevo badato agli spazi. 🙁 Invece con \hspace{…} li avevo eliminati; ecco perché funzionava.)

          Eh! Succede. 🙂 Avrebbe dovuto insospettirti il fatto che con \quad non andasse e con \hspace{2em}, che è il doppio, sì. Non trovi? In effetti quando ho letto il tuo messaggio mi sono domandato come fosse possibile; guardando il sorgente la risposta è stata lampante. 🙂

          Nota anche
          `}\quad
          \subfloat[][]{`
          che è diverso da
          `}
          \quad
          \subfloat[][]{`
          Perché?

          Ciao
          Enrico

        • #41754
          Up
          0
          Down
          ::


          ciao,

          Nella versione 1.3 del pacchetto PGFplots sono date due soluzioni, nella documentazione si trovano rispettivamente a pag.186 e 205. Io preferisco la seconda.

          Lo svantaggio è la mancanza delle lettere sottotanti ad ogni subfigure ma a questo si può avviare facendo riferimento al grafico defiderato con i label ed i ref che mette a disposizione il pacchetto stesso.

          Se vuoi vedere l’effeto con 4 grafici guarda questo topic.

          Saluti

        • #41755
          Antonio Ledda
          Partecipante
            Up
            0
            Down
            ::

            [quote]Mmmmmh, a me non funziona nemmeno mettendo \hspace.

            Enrico ti ha già risposto. (In effetti avevo compilato il tuo codice tale e quale; non avevo badato agli spazi. 🙁 Invece con \hspace{…} li avevo eliminati; ecco perché funzionava.)

            Eh! Succede. 🙂 Avrebbe dovuto insospettirti il fatto che con \quad non andasse e con \hspace{2em}, che è il doppio, sì. Non trovi? In effetti quando ho letto il tuo messaggio mi sono domandato come fosse possibile; guardando il sorgente la risposta è stata lampante. 🙂
            [/quote]
            Hai ragione; 😳 ho avuto troppa fretta nel rispondere, senza approfondire quali potessero essere le cause reali del problema.

            Nota anche
            `}\quad
            \subfloat[][]{`
            che è diverso da
            `}
            \quad
            \subfloat[][]{`
            Perché?

            Ciao
            Enrico

            Deve essere qualcosa che va al di là di quanto può essere percepito con la vista; giuro che non riesco a vedere differenze nell’output.

            Se però provo a compilare
            `\documentclass{minimal}

            \begin{document}

            Ciao\quad
            ciao

            Ciao
            \quad
            ciao

            \end{document}`
            nel primo caso è come se scrivessi “Ciao\quad ciao” e non viene aggiunto uno spazio extra tra le due parole. Nel secondo caso, sì. Questo perché lascio dello spazio vuoto tra la prima parola e \quad; è come se scrivessi “Ciao \quad ciao”.

            Enrico, era questo che mi volevi far capire, oppure c’è qualcosa che mi sfugge?

            Grazie per la pazienza.

            Ciao
            Antonio

          • #41756
            Up
            0
            Down
            ::

            [quote][quote]Mmmmmh, a me non funziona nemmeno mettendo \hspace.

            Enrico ti ha già risposto. (In effetti avevo compilato il tuo codice tale e quale; non avevo badato agli spazi. 🙁 Invece con \hspace{…} li avevo eliminati; ecco perché funzionava.)

            Eh! Succede. 🙂 Avrebbe dovuto insospettirti il fatto che con \quad non andasse e con \hspace{2em}, che è il doppio, sì. Non trovi? In effetti quando ho letto il tuo messaggio mi sono domandato come fosse possibile; guardando il sorgente la risposta è stata lampante. 🙂
            [/quote]
            Hai ragione; 😳 ho avuto troppa fretta nel rispondere, senza approfondire quali potessero essere le cause reali del problema.

            Nota anche
            `}\quad
            \subfloat[][]{`
            che è diverso da
            `}
            \quad
            \subfloat[][]{`
            Perché?

            Ciao
            Enrico

            Deve essere qualcosa che va al di là di quanto può essere percepito con la vista; giuro che non riesco a vedere differenze nell’output.

            Se però provo a compilare
            `\documentclass{minimal}

            \begin{document}

            Ciao\quad
            ciao

            Ciao
            \quad
            ciao

            \end{document}`
            nel primo caso è come se scrivessi “Ciao\quad ciao” e non viene aggiunto uno spazio extra tra le due parole. Nel secondo caso, sì. Questo perché lascio dello spazio vuoto tra la prima parola e \quad; è come se scrivessi “Ciao \quad ciao”.

            Enrico, era questo che mi volevi far capire, oppure c’è qualcosa che mi sfugge?

            Grazie per la pazienza.[/quote]
            Nel primo caso dopo la graffa di chiusura finisce la riga e, visto che stiamo componendo testo (particolare, ma sempre quella è la situazione), questo fine riga viene considerato come se fosse uno spazio. È esattamente lo stesso che se scrivessi
            `questo codice ha una riga che finisce qui
            \quad
            e dopo `qui' voglio uno spazio quadratone.`
            Se lo compili, troverai che lo spazio è maggiore di quello dato da \quad.

            Invece, con
            `questo codice ha una riga che finisce qui\quad
            e dopo `qui' voglio uno spazio quadratone.`
            non avrai il problema. Il fine riga c’è, ma segue un nome di comando e quindi è ignorato, com’era d’altronde ignorato nell’esempio sopra.

            Ciao
            Enrico

          • #41757
            Antonio Ledda
            Partecipante
              Up
              0
              Down
              ::

              […]
              Nel primo caso dopo la graffa di chiusura finisce la riga e, visto che stiamo componendo testo (particolare, ma sempre quella è la situazione), questo fine riga viene considerato come se fosse uno spazio. È esattamente lo stesso che se scrivessi
              `questo codice ha una riga che finisce qui
              \quad
              e dopo `qui' voglio uno spazio quadratone.`
              Se lo compili, troverai che lo spazio è maggiore di quello dato da \quad.

              Invece, con
              `questo codice ha una riga che finisce qui\quad
              e dopo `qui' voglio uno spazio quadratone.`
              non avrai il problema. Il fine riga c’è, ma segue un nome di comando e quindi è ignorato, com’era d’altronde ignorato nell’esempio sopra.

              Ciao
              Enrico

              Perfetto! 😀 Quindi era proprio a questo fatto che ti riferivi. Nel caso delle due figure, probabilmente lo spazio extra è davvero minimo e non riesco a osservarlo; nel testo è invece molto evidente.

              Grazie mille.

              Ciao
              Antonio

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

          Go to top