tickzpicture vs includegraphics

  • Creatore
    Topic
  • #93132
    Up
    0
    Down
    ::


    Ciao a tutti.

    Per la prima volta, ho separato i grafici elaborati con pgfplots dal documento principale.
    Ogni grafico è ora prodotto in formato pdf in una cartella separata, con un documentaclass standalone.
    Nel documento finale, quindi, non ho più il codice latex per la produzione del grafico. Inserisco direttamente l’immagine pdf prodotta a parte.

    Ho delle difficoltà a capire, però, come riprodurre esattamente la stessa figura che producevo prima di elaborare separatamente i grafici.
    Faccio un esempio.

    Il grafico standalone è prodotto con il seguente codice
    `
    \PassOptionsToPackage{dvipsnames}{xcolor}
    \documentclass[tikz,border=10pt]{standalone}

    \input{../../PackagesPerLeImmagini}

    \begin{document}
    \begin{tikzpicture}[scale=0.75]
    \begin{axis}[name=plot1, xmajorgrids=true, ymajorgrids=true, ymax=30, extra y ticks={5,15,25}, xlabel=Iterazione, ylabel=Particelle intrappolate, legend style={legend pos=south east, font=\tiny}]
    \addplot[restrict x to domain=0:10000][red, each nth point=10]
    table[x index=0, y index=1] {FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
    \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50]
    table[x index=0, y index=1] {FileDati/SimulazioniRandWalk/316NonRidotto/simulazione500/trapped_plain.dat};
    \legend{Matrice Di Densità, Random Walk singolo}
    \end{axis}
    \begin{axis}[name=plot2,at={($(plot1.east)+(1cm,0)$)}, anchor=west, xmajorgrids=true, ymajorgrids=true, ymax=30, yticklabel=\empty, xlabel=Iterazione, legend style={legend pos=south east, font=\tiny}, extra y ticks={5,15,25}]
    \addplot[restrict x to domain=0:10000][red, each nth point=10]
    table[x index=0, y index=1] {FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
    \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50, error bars/.cd, y dir=both, y explicit]
    table[x index=0, y index=1, y error index=2] {FileDati/SimulazioniRandWalk/316NonRidotto/datasetDa1000/mean_trapped_plain.dat};
    \legend{Matrice Di Densità, Random Walk}
    \addlegendimage{empty legend}
    \addlegendentry{mediato su $1000$ simulazioni}
    \end{axis}
    \end{tikzpicture}
    \end{document}
    `

    Nel capitolo di prova, per fare un confronto tra le due “rese grafiche”, ho prima elaborato il grafico in una tickzpicture, e successivamente inserito l’immagine prodotta dal codice qui sopra.
    Pertanto:
    `
    \chapter{Capitolo di Prova}
    \newpage
    \begin{figure}[!h] %figura elaborata in ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens
    \begin{tikzpicture}[scale=0.75]
    \begin{axis}[name=plot1, xmajorgrids=true, ymajorgrids=true, ymax=30, extra y ticks={5,15,25}, xlabel=Iterazione, ylabel=Particelle intrappolate, legend style={legend pos=south east, font=\tiny}]
    \addplot[restrict x to domain=0:10000][red, each nth point=10]
    table[x index=0, y index=1] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
    \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50]
    table[x index=0, y index=1] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniRandWalk/316NonRidotto/simulazione500/trapped_plain.dat};
    \legend{Matrice Di Densità, Random Walk singolo}
    \end{axis}
    \begin{axis}[name=plot2,at={($(plot1.east)+(1cm,0)$)}, anchor=west, xmajorgrids=true, ymajorgrids=true, ymax=30, yticklabel=\empty, xlabel=Iterazione, legend style={legend pos=south east, font=\tiny}, extra y ticks={5,15,25}]
    \addplot[restrict x to domain=0:10000][red, each nth point=10]
    table[x index=0, y index=1] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
    \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50, error bars/.cd, y dir=both, y explicit]
    table[x index=0, y index=1, y error index=2] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniRandWalk/316NonRidotto/datasetDa1000/mean_trapped_plain.dat};
    \legend{Matrice Di Densità, Random Walk}
    \addlegendimage{empty legend}
    \addlegendentry{mediato su $1000$ simulazioni}
    \end{axis}
    \end{tikzpicture}
    %~ \caption{Rapporto tra gli andamenti del numero di particelle intrappolate in funzione dell'iterazione, per la matrice di densità e per il modello a random walk, nel caso di singola simulazione e di un dataset da 1000 simulazioni.}
    %~ \label{fig:trappedVsTimeSingleVsDataset-bassaDens}
    \end{figure}

    %~ \newpage
    \begin{figure}[!h] %figura elaborata in ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens
    \includegraphics{ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens}
    \end{figure}
    `

    Quello che viene prodotto dal codice qui sopra lo potete vedere qui sotto

    [attachment=955]Schermatadel2014-03-10161539.png[/attachment]

    Al di là della barra verticale nera, dovuta al fatto che ho impostato \overfullrule=5pt nel documento principale, le due immagini sono differenti.
    Avrei bisogno di aiuto per capire come risolvere questo tipo di problemi.

    Grazie in anticipo 🙂

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 4 filoni di risposte
  • Autore
    Risposte
    • #93133
      Up
      0
      Down
      ::

      l3on4rdo” post=92772Ciao a tutti.

      Per la prima volta, ho separato i grafici elaborati con pgfplots dal documento principale.
      Ogni grafico è ora prodotto in formato pdf in una cartella separata, con un documentaclass standalone.
      Nel documento finale, quindi, non ho più il codice latex per la produzione del grafico. Inserisco direttamente l’immagine pdf prodotta a parte.

      Ho delle difficoltà a capire, però, come riprodurre esattamente la stessa figura che producevo prima di elaborare separatamente i grafici.
      Faccio un esempio.

      Il grafico standalone è prodotto con il seguente codice
      `
      \PassOptionsToPackage{dvipsnames}{xcolor}
      \documentclass[tikz,border=10pt]{standalone}

      \input{../../PackagesPerLeImmagini}

      \begin{document}
      \begin{tikzpicture}[scale=0.75]
      \begin{axis}[name=plot1, xmajorgrids=true, ymajorgrids=true, ymax=30, extra y ticks={5,15,25}, xlabel=Iterazione, ylabel=Particelle intrappolate, legend style={legend pos=south east, font=\tiny}]
      \addplot[restrict x to domain=0:10000][red, each nth point=10]
      table[x index=0, y index=1] {FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
      \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50]
      table[x index=0, y index=1] {FileDati/SimulazioniRandWalk/316NonRidotto/simulazione500/trapped_plain.dat};
      \legend{Matrice Di Densità, Random Walk singolo}
      \end{axis}
      \begin{axis}[name=plot2,at={($(plot1.east)+(1cm,0)$)}, anchor=west, xmajorgrids=true, ymajorgrids=true, ymax=30, yticklabel=\empty, xlabel=Iterazione, legend style={legend pos=south east, font=\tiny}, extra y ticks={5,15,25}]
      \addplot[restrict x to domain=0:10000][red, each nth point=10]
      table[x index=0, y index=1] {FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
      \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50, error bars/.cd, y dir=both, y explicit]
      table[x index=0, y index=1, y error index=2] {FileDati/SimulazioniRandWalk/316NonRidotto/datasetDa1000/mean_trapped_plain.dat};
      \legend{Matrice Di Densità, Random Walk}
      \addlegendimage{empty legend}
      \addlegendentry{mediato su $1000$ simulazioni}
      \end{axis}
      \end{tikzpicture}
      \end{document}
      `

      Nel capitolo di prova, per fare un confronto tra le due “rese grafiche”, ho prima elaborato il grafico in una tickzpicture, e successivamente inserito l’immagine prodotta dal codice qui sopra.
      Pertanto:
      `
      \chapter{Capitolo di Prova}
      \newpage
      \begin{figure}[!h] %figura elaborata in ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens
      \begin{tikzpicture}[scale=0.75]
      \begin{axis}[name=plot1, xmajorgrids=true, ymajorgrids=true, ymax=30, extra y ticks={5,15,25}, xlabel=Iterazione, ylabel=Particelle intrappolate, legend style={legend pos=south east, font=\tiny}]
      \addplot[restrict x to domain=0:10000][red, each nth point=10]
      table[x index=0, y index=1] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
      \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50]
      table[x index=0, y index=1] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniRandWalk/316NonRidotto/simulazione500/trapped_plain.dat};
      \legend{Matrice Di Densità, Random Walk singolo}
      \end{axis}
      \begin{axis}[name=plot2,at={($(plot1.east)+(1cm,0)$)}, anchor=west, xmajorgrids=true, ymajorgrids=true, ymax=30, yticklabel=\empty, xlabel=Iterazione, legend style={legend pos=south east, font=\tiny}, extra y ticks={5,15,25}]
      \addplot[restrict x to domain=0:10000][red, each nth point=10]
      table[x index=0, y index=1] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniDensMat/0.007NonRidotto/simulazione01/trapped_plain.dat};
      \addplot+[restrict x to domain=0:10000][black, only marks, mark=+, each nth point=50, error bars/.cd, y dir=both, y explicit]
      table[x index=0, y index=1, y error index=2] {CartellaGrafica/ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/FileDati/SimulazioniRandWalk/316NonRidotto/datasetDa1000/mean_trapped_plain.dat};
      \legend{Matrice Di Densità, Random Walk}
      \addlegendimage{empty legend}
      \addlegendentry{mediato su $1000$ simulazioni}
      \end{axis}
      \end{tikzpicture}
      %~ \caption{Rapporto tra gli andamenti del numero di particelle intrappolate in funzione dell'iterazione, per la matrice di densità e per il modello a random walk, nel caso di singola simulazione e di un dataset da 1000 simulazioni.}
      %~ \label{fig:trappedVsTimeSingleVsDataset-bassaDens}
      \end{figure}

      %~ \newpage
      \begin{figure}[!h] %figura elaborata in ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens
      \includegraphics{ModelliTrattati/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens/ModelsComparisonTrappedPartsSingleSimVsDatasetLowDens}
      \end{figure}
      `

      Quello che viene prodotto dal codice qui sopra lo potete vedere qui sotto

      [attachment=955]Schermatadel2014-03-10161539.png[/attachment]

      Al di là della barra verticale nera, dovuta al fatto che ho impostato \overfullrule=5pt nel documento principale, le due immagini sono differenti.
      Avrei bisogno di aiuto per capire come risolvere questo tipo di problemi.

      Grazie in anticipo 🙂

      Visto che hai impostato un bordo di 10pt nelle opzioni di standalone [tt]border=10pt[/tt] (che sono circa 3mm e qualcosa) vuol dire che la tua immagine, se prima era larga [tt]\textwidth[/tt] ora è [tt]\textwidth+6mm+qualcosa[/tt]. Per non impazzire a ricalcolare le dimensioni della tela dei grafici, puoi sempre utilizzare il comodissimo comando [tt]\resizebox[/tt] di [tt]graphicx[/tt].

      Ciao
      Claudio

    • #93134
      Up
      0
      Down
      ::


      Claudio, te lo devo dire: sei una scheggia, complimenti! 🙂

      Ora devo staccare ma mi ha rincuorato vedere due tue risposte.
      Stasera a casa cerco di capire come regolarmi, perché la gestione di buona parte di quello che termina con “pt” (vedi anche lo sforamento laterale) in LaTeX ancora non mi è del tutto chiara.

    • #93135
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::

        l3on4rdo” post=92775Claudio, te lo devo dire: sei una scheggia, complimenti! 🙂

        Ora devo staccare ma mi ha rincuorato vedere due tue risposte.
        Stasera a casa cerco di capire come regolarmi, perché la gestione di buona parte di quello che termina con “pt” (vedi anche lo sforamento laterale) in LaTeX ancora non mi è del tutto chiara.


        @l3on4rdo
        , che un punto tipografico sia un terzo di millimetro lo sano tutti. voglio dire tutti quelli che leggono le rispsote che vengono date nel forum e quelli che leggono le guide..

        D’atra parte in ogni guida c’è scritto che in un pollice ci sono 72,27 pt e tutti dovrebbero sapere che un pollice è lungo 25,4 mm.

        Facedo il rapporto si ottien il coefficioente di conversione: (25,4 mm/pollice)/(72,27 punti/pollice) = 0,35145980351 mm/punto.
        dunque diere che 1 punto tipografico è circa un terzo di millimetro non è tanto lontano dal vero e risparmia di fare conti complessi.; nel tuo caso dunque usato il fattore un terzo si ottine che 10 pt sono 3,333 mm; usando il valore “esatto” si ha che 10 pt sono 3,5145980351 mm.

        Poiché tu hai specificato di scontornare la tua figura all’esterno del disegno vero e proprio di 3,5 mm da tutti e quattro i lati, il tuo secondo disegno, anche se ha i contorni bianchi, è più largo e più di 7 mm rispetto al disegno fatto direttamente con tikz. Questo da solo giustifica lo spostamento a destra del secondo disegno incluso con \includegraphics, ma ti dice anche che il primo disegno è troppo largo, tant’è che la riga nera che marca l’uscita fuori dia margini c’è anche sopra.

        Il suggerimento che ti ha dato @cfiandra di usare \resizebox è validissimo anche epr il grafico di sopra.

        Ma ricordati che la specificazione della parola chiave border= serve per lasciare un margine piccolissimo attorno al disegno, solitamente di un solo punto, meglio ancora qualcosina di meno, giusto per evitare che l’algoritmo invocato dalla classe standalone non riesca a smarginare il disegno con un rettangolo esattamente tangente al disegno stesso.
        Se usi \resizebox, questo tiene correttamente in conto anche questo margine microscopico di un terzo di millimetro o anche più piccolo, a otticamente non si vede, pur garantendo che la figura sia esattamente dentro i margini.

        Ricorda: in ogni messaggio che riguardi i problemi che nascono nell’inclusione dei figure si chiede sempre al richiedente: Hai smarginato al figura?
        Perché se le figure non sono smarginate, anche se è bianco come la pagina, il margine c’è e influisce negativamente sul posizionamento delle immagini.

      • #93136
        Up
        0
        Down
        ::

        @l3on4rdo, che un punto tipografico sia un terzo di millimetro lo sano tutti. voglio dire tutti quelli che leggono le rispsote che vengono date nel forum e quelli che leggono le guide..

        Rispondo alla frecciatina relativa alla lettura delle guide nello stesso modo in cui ho risposto quando mi fu lanciata in un’altra discussione: leggo le guide, con enorme interesse e soddisfazione personale, ma come ogni essere umano ho dei limiti e tra i miei limiti c’è quello di non capire alcune cose. In merito alle risposte che vengono date, no, non sono un assiduo lettore delle discussioni altrui, escluse quelle che mi capitano sotto mano quando faccio le ricerche per cercare soluzioni ai problemi con cui mi confronto.
        Mi dispiace se questa mia caratteristica umana e questa mia “attitudine” rappresentino un problema e vi ringrazio per la comprensione e le innumerevoli spiegazioni che avete dato a me e ad altri (non che io ringrazi per loro… ringrazio per quelle che ho letto e che mi sono state utili).
        Tanto per fare un esempio, programmo abbastanza felicemente in differenti linguaggi… però stupisco le persone per la difficoltà che ho a fare pagamenti online con la carta prepagata.
        Un altro esempio? Se non stampo una guida su carta non riesco ad assimilare il suo contenuto. La lettura su dispositivi elettronici (anche se ci ho provato e se attualmente ho un kindle) mi risulta difficilissima.
        Facendo un esempio più attinente… è un po’ come la questione del mio smoderato uso di \left e \right per dimensionare le parentesi. Pensavo di fare una cosa furba, fino a che non mi fu fatto notare e, documentandomi, ho capito come risolvere.
        Anche se comprendo benissimo che la cosa possa essere vista come una mancanza di rispetto verso lo sforzo di chi scrive guide, come pigrizia, come tante altre cose che non elenco, dico solo che con alcune indicazioni, come quelle che mi avete cortesemente fornito in questa discussione, si sciolgono dei “blocchi” e si dà modo al diretto interessato (in questo caso io) di poter approfondire ulteriormente qualcosa che non è che sia proprio elementare… a me i pt fanno proprio paura 🙂
        Per “paura” intendo che non riesco a gestirli in modo consapevole. Intendevo questo, quando ho scritto che non non gestisco in modo consapevole quello che finisce con “pt”.
        Ad esempio (esula dalla discussione, ma lo dico per spiegarmi) ho notato che modificando il pt si evita lo “sforamento” indicato grazie al comando overfullrule… ma le modifiche che ho fatto non erano qualcosa di consapevole, ma fatto a tentativi. Sicuramente sarò spiegato in qualche guida che non ho letto 😀

        Ci tengo a dire che non sto assolutamente polemizzando e che, anzi, apprezzo davvero tanto il vostro impegno, la vostra preparazione e la vostra cordialità nel mettervi a disposizione del prossimo.

        edit:
        Un fattore che ho dimenticato di sottolineare è l’ansia. Non sempre chi apre una discussione è libero da pressioni esterne, come per esempio la scadenza entro cui deve presentare un documento al suo “superiore”.
        Alle volte, questo fattore risulta un vero blocco. Almeno per me. E un semplice aiuto a “sbloccare” non potete immaginare quanto sia gradito 🙂

      • #93137
        Up
        0
        Down
        ::


        Mi riaffaccio per dire che sono praticamente riuscito a risolvere i problemi che mi erano rimasti, per le figure di questo “libro”.
        Vi ringrazio per la pazienza e per le indicazioni.

        Alla prossima (tirata d’orecchi 🙂 )
        Ciao.

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

    Go to top