Grafici direttamente in Latex

  • Creatore
    Topic
  • #11325
    Up
    0
    Down
    ::


    Cari tutti,
    la mia è una domanda molto semplice: in molti qui nel forum chiedono come esportare grafici da Matlab, Mathematica ed altri sw. Non è invece possibile (lo sarà di sicuro, ma cercando “grafici” nel motore di ricerca del forum non ho trovato granchè ) disegnare semplici grafici direttamente da (codice) Latex, sfruttando magari un qualche pacchetto?
    Grazie per l’attenzione.
    O.

Visualizzazione 7 filoni di risposte
  • Autore
    Risposte
    • #11326
      Up
      0
      Down
      ::


      Disegnare grafici in LaTeX è semplice, ma LaTeX è un programma per il typesetting e non è un foglio di calcolo, quindi da solo non è in grado di sfornare grafici, anche se semplici.

      Gli strumenti per disegnare ci sono, sono potenti e si chiamano MetaPost, ambiente picture e pacchetto xypic, giusto per nominare i più utilizzati. Tuttavia, tutti richiedono di mettersi a costruire, a mano, il grafico di cui si necessita.

      Esistono alcuni programmi che, a partire da file contenenti dati formattati in una certa maniera e fornendo uno script contenente comandi di formattazione del grafico, producono codice LaTeX (gnuplot) e/o immagini in vario formato che a questo punto sono semplici da includere (ad esempio, GNU R). Mi sembra che anche GNU Octave (il corrispettivo libero di Matlab) si basi su gnuplot per disegnare i propri grafici.

      Una soluzione alternativa è usare Xfig (o il suo port per Windozer WinFig), piccolo programmino che permette di disegnare grafici (e/o schemi) molto semplici ed esportare l’esportabile in codice LaTeX dell’ambiente picture.

      Questo almeno per i programmi free softwareopen source, per quelli proprietari/commerciali non saprei dirti.

      Ciao.

    • #11327
      Up
      0
      Down
      ::


      Perfetto, grazie!

      O.

    • #11328
      Up
      0
      Down
      ::

      Perfetto, grazie!

      O.

      Ti segnalo anche il pacchetto “tikz” che è molto ben documentato (pure troppo, forse).

      Ciao
      Enrico

    • #11329
      Up
      0
      Down
      ::


      Un’ultima soluzione prevede l’esportazione del grafico da Inkscape post vettorializzazione in documento latex, copi il codice ed è fatta. Ovviamente viene un po’ lungo.

    • #11330
      Up
      0
      Down
      ::


      salve a tutti, ho un dubbio più o meno inerente a questo topic: è possibile, una volta costruito un grafico con picture, ridimensionarlo?

      mi spiego: io ho composto `\begin{figure}[htb]
      \begin{center}
      \begin{picture}(340,240)
      \put(180,0){\small$\overline{\varrho}$}\put(100,10){\small$0$}
      \put(38,10){\small $-0.5$}\put(148,10){\small $0.5$}
      \put(200,10){\small $1$}\put(248,10){\small $1.5$}\put(300,10){\small $2$}
      \multiput(50,20)(0,2){110}{\line(0,1){1}}
      \multiput(150,20)(0,2){110}{\line(0,1){1}}
      \multiput(100,20)(0,2){110}{\line(0,1){1}}
      \multiput(300,20)(0,2){110}{\line(0,1){1}}
      \multiput(250,20)(0,2){110}{\line(0,1){1}}
      \multiput(200,20)(0,2){110}{\line(0,1){1}}
      \put(20,20){\line(1,0){320}}
      \put(20,20){\line(0,1){220}}
      \put(340,20){\line(0,1){220}}
      \put(20,240){\line(1,0){320}}
      \multiput(20,30)(2,0){160}{\line(1,0){1}}
      \multiput(20,80)(2,0){160}{\line(1,0){1}}
      \multiput(20,130)(2,0){160}{\line(1,0){1}}
      \multiput(20,230)(2,0){160}{\line(1,0){1}}
      \multiput(20,180)(2,0){160}{\line(1,0){1}}
      \put(0,126){\small$\overline{\eta}$}
      \put(-3,76){\small$-0.5$}\put(0,26){\small$-1$}\put(10,126){\small$0$}
      \put(3,176){\small$0.5$}\put(10,226){\small$1$}
      \put(100,130){\circle{104}}\put(100,130){\circle{72}}
      \put(200,130){\vector(-13,6){65}} \put(165,150){$R_{t}$}
      \put(200,130){\circle{184}}\put(200,130){\circle{132}}
      \put(100,130){\vector(7,6){35}} \put(115,135){$R_{b}$}
      \end{picture}\end{center}
      \caption{Lati del Triangolo Unitario.}
      \label{fig:UC2}
      \end{figure}`

      è un’immagine piuttosto grossa (340×240 pt!) ma ho voluto usare dei numeri “comodi” per evitare di complicarmi troppo la vita 🙄 salvo poi trovarmi appunto con una figura da mezza pagina. prima ci stava abbastanza bene, poi sistemando il resto del capitolo ovviamente ha dato problemi di locazione, per cui mi sono trovta nella necessità di ridimensionarla. il trucco “sporco” è stato usare ksnapshot per prendere l’immagine eps da schermo e quindi usare \figure e \includegraphics[height=0.3\textheight]{latiUC}

      mi chiedevo se è possibile invece ridimensionare direttamente picture, ovviamente senza rifare da capo la figura!

      anto

    • #11331
      DMW
        Up
        0
        Down
        ::


        Devi ridimensionare \unitlength che vale 1pt.

        Esempio
        `
        \begin{figure}[htb]
        \setlength{\unitlength}{.5pt}
        \centering
        \begin{picture}(340,240)
        …….
        \end{picture}
        \caption{Lati del Triangolo Unitario.}
        \label{fig:UC2}
        \end{figure}
        `

        così è grande la metà. E non usare l’ambiente center dentro un oggetto float. Usa \centering. Comunque devi aggiustare la posizione del testo oppure ridurre la loro dimensione usando i soliti comandi, che spero tu conosca.

        Ciao

        Andrea

      • #11332
        Up
        0
        Down
        ::


        grazie!!

        anto

      • #11333
        Up
        0
        Down
        ::


        Per disegnare direttamente in LaTeX c’e’ anche il pacchetto pstricks.
        Funziona benissimo e si fanno semplici grafici e plot molto belli,
        semplicemente scrivendo dei comandi direttamente in latex!
        Io mi ci sono trovato davvero bene, e credo che abbandonero’ per sempre xfig.
        Pstricks e’ latex, quindi concettualmente molto piu’ pulito!

        Ciao.
        Salegrosso.

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

    Go to top