[RISOLTO] Includere file immagine da matlab

  • Creatore
    Topic
  • #40389
    gg_eo
    Partecipante
      Up
      0
      Down
      ::


      Buongiorno,
      ho necessità di inserire in un documento dei file immagine generati con Matlab.
      Ho provato a generarli in molte estensioni (.png .jpg. eps), e i file sono di ottima qualità, ma quando li includo nel file .tex e poi lo compilo (uso TeXMaker sotto linux) la qualità è pessima! addirittura in alcuni casi scompaiono gli assi cartesiani!
      Come se non bastasse, se cerco di includere file .eps, mi compare:
      `! LaTeX Error: Unknown graphics extension: .eps.`
      Come posso risolvere?

      grazie in anticipo
      gg

    Visualizzazione 15 filoni di risposte
    • Autore
      Risposte
      • #40390
        Antonio Ledda
        Partecipante
          Up
          0
          Down
          ::

          Buongiorno,
          ho necessità di inserire in un documento dei file immagine generati con Matlab.
          Ho provato a generarli in molte estensioni (.png .jpg. eps), e i file sono di ottima qualità, ma quando li includo nel file .tex e poi lo compilo (uso TeXMaker sotto linux) la qualità è pessima! addirittura in alcuni casi scompaiono gli assi cartesiani!
          Come se non bastasse, se cerco di includere file .eps, mi compare:
          `! LaTeX Error: Unknown graphics extension: .eps.`
          Come posso risolvere?

          grazie in anticipo
          gg

          Puoi mostrare un esempio minimo compilabile del codice che usi per inserire le immagini?

          Ciao,
          Antonio

        • #40391
          gg_eo
          Partecipante
            Up
            0
            Down
            ::


            certo:
            `

            \documentclass{article}
            \usepackage[T1]{fontenc}
            \usepackage[ansinew]{inputenc}
            \usepackage{graphicx}
            \usepackage{float}

            \begin{document}

            \begin{figure}[H]
            \centering
            \includegraphics[width=\columnwidth]{Immagini/ISE}%
            \end{figure}

            \end{document}
            `

            In questo caso funziona per tutti i tipi di immagine tranne che per .eps[/code]

          • #40392
            Antonio Ledda
            Partecipante
              Up
              0
              Down
              ::

              certo:
              `

              \documentclass{article}
              \usepackage[T1]{fontenc}
              \usepackage[ansinew]{inputenc}
              \usepackage{graphicx}
              \usepackage{float}

              \begin{document}

              \begin{figure}[H]
              \centering
              \includegraphics[width=\columnwidth]{Immagini/ISE}%
              \end{figure}

              \end{document}
              `

              In questo caso funziona per tutti i tipi di immagine tranne che per .eps[/code]

              Ho fatto una prova con un’immagine .eps: funziona, se compili con LaTeX. Se compili con pdfLaTeX, è normale che non funzioni.

              Non so se con MatLab si possano salvare le immagini in .pdf; se è possibile, le puoi salvare in questo formato, includerle nel sorgente e compilare con pdfLaTeX. Altrimenti, ottieni prima il .dvi e lo trasformi in .pdf dando
              `dvipdfm file`
              da terminale (si chiama così su sistemi Linux?). Altra soluzione: convertire le immagini dal formato .eps al formato .pdf con un programma esterno: per esempio, con ImageMagick.

              Se non funziona ancora, forse le immagini sono corrotte.

              Ciao,
              Antonio

            • #40393
              Up
              0
              Down
              ::


              L’esportazione di immagini da matlab è un tema già trattato sul forum, per esempio qui.
              Per capire perché non compila con il file eps ti consiglio di studiare un guida di base come quelle indicate in alto.

              Ciao
              Matteo

            • #40394
              Up
              0
              Down
              ::


              Per la conversione da eps a pdf è meglio usare direttamente epstopdf, che però richiede che sia installato perl (con linux quasi sicuramente è già installato), un’alternativa è usare direttamente ghostscript con un comando come`gs -dSAFER -dEPSCrop -sDEVICE=pdfwrite -sOutputFile=fig.pdf -dBATCH -dNOPAUSE fig.eps
              `
              sostituendo a fig.pdf e fig.eps il nome dei tuoi file.

              Ciao
              Matteo

            • #40395
              Antonio Ledda
              Partecipante
                Up
                0
                Down
                ::


                Le soluzioni di Matteo sono validissime.

                Se invece decidi di usare ImageMagick, occorre dare
                `mogrify -format pdf *.eps`
                e tutte le immagini in formato .eps saranno convertite in formato .pdf.

                Ciao,
                Antonio

              • #40396
                Up
                0
                Down
                ::


                Ciao.

                sarò ripetitivo ma consiglio sempre di usare il pacchetto PGF plots.

                E’ molto bello e semplice se si usano i dati ottenuti da altri programmi(Matlab,…etc.))

                Nel tuo programma al Matlab, salva i tuoi dati in un file .dat ASCII(anche una matrice)

                Dal file tex poi richiami il file .dat e gli indichi quale colonna usare come ascisse e quale come ordinata e lui fa tutto in automatico, in modo da essere coerente con i caratteri del testo.

                Prima di scoprire questo bellissimo pacchetto, salvavo le figure in EPS poi le convertivo con scribus(software libero) e successivamente, se era necessario modificavo il pdf con inkscape. Tutto questo perché non capivo mai come settare il crop dell’immagine su Matlab e perché inkscape non apriva file eps. Ora che è uscita la nuova versione mi pare che li apra.

                Spero di non averti annoiato.

                Saluti

                Michele

              • #40397
                gg_eo
                Partecipante
                  Up
                  0
                  Down
                  ::


                  Ciao,
                  ti ringrazio molto per il tuo consiglio, mi sembra proprio quello che fa per me.
                  Ho trovato una introduzione efficace a questo indirizzo:
                  http://www.guit.sssup.it/guitmeeting/2009/slides/Dominici_LaTeXCSV.pdf

                  Ho solo un piccolo problema, anche se non so se è questa la sede per risolverlo..
                  come faccio ad installare il pacchetto pgfplots? io uso ubuntu.

                  Grazie mille!

                • #40398
                  gg_eo
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Ho provato con la seguente procedura:

                      copio l’archivio compresso mediante:
                      ` sudo cp pgfplots.zip /usr/share/texmf/tex/latex/`
                      estraggo il pacchetto con
                      ` sudo unzip /usr/share/texmf/tex/latex/pgfplots.zip`
                      completo l’installazione con
                      `sudo texhash`

                    Ma al momento di lanciare TexMaker mi da:

                    ! LaTeX Error: File `pgfplots.sty’ not found.

                    Cosa ho sbagliato?

                  • #40399
                    gg_eo
                    Partecipante
                      Up
                      0
                      Down
                      ::


                      sono riuscito ad installare ma ora ho un problema, immagino di tipo sintattico; inserendo il seguente codice infatti:
                      `\begin{tikzpicture}
                      \begin{axis}[ymin=-30,xmin=0,xlabel={tempo [h]},ylabel = {Massa [kmol]},title={Dinamica di substrato e biomassa},legend entries={Biomassa,Substrato}]
                      \addplot[red]
                      \plottable [x index = 0, y index = 1]{PrimoGrafico.dat}
                      \end{axis}
                      \end{tikxpicture}`
                      Mi restituisce l’errore:
                      `! Package pgfplots Error: Sorry, the supplied plot command is unknown or unsupp
                      orted by pgfplots! Ignoring it..`
                      Ho seguito la sintassi descritta nell’URL indicato sopra.

                    • #40400
                      gg_eo
                      Partecipante
                        Up
                        0
                        Down
                        ::


                        il codice corretto è:
                        `\begin{tikzpicture}
                        \begin{axis}[ymin=-30,xmin=0,xlabel={tempo [h]},ylabel = {Massa [kmol]},title={Dinamica di substrato e biomassa},legend entries={Biomassa,Substrato}]
                        \addplot[red,mark=asterisk]
                        plot table [x index = 0, y index = 1] {PrimoGrafico.dat};
                        \end{axis}
                        \end{tikzpicture}`

                        Stasera sto facendo tutto da solo 😀

                      • #40401
                        gg_eo
                        Partecipante
                          Up
                          0
                          Down
                          ::


                          Mi rimangono ancora un paio di dubbi:
                          1)come faccio a centrare nella pagina il grafico che ho ottenuto
                          2)come posso inserire nel grafico una griglia di sfondo?

                        • #40402
                          Up
                          0
                          Down
                          ::


                          Ciao,

                          io non uso Linux, non me ne avere….. 🙂 prima o poi lo farò comunque.

                          Passiamo ai consigli da darti.:
                          ora non so quanti grafici hai nel tuo documento, ma ti spiego come li gestisco io:

                          Prima di tutto mi salvo un file.tex con il seguente codice[N.B. mi scuso per i tab ma ritengo che in questo caso fossero necessari]:
                          `
                          \pgfplotsset{%
                          tick label style = {font=}, % grandezza cifre su assi
                          label style = {font=}, % grandezza lettere sugli assi
                          legend style = {font=, % grandezza font della legenda
                          at=}, % posizione della legenda
                          grid = major, % tipo di griglia
                          axis x line = bottom, % posizione ascisse
                          axis y line = left, % posizione ordinate
                          ymin =, % valore minimo ordinate
                          ymax =, % valore massimo ordinate
                          xmin =, % valore minimo ascisse
                          xmax =, % valore massimo ascisse
                          width =, % larghezza figura
                          height =, % altezza figura
                          xlabel =, % nome ascisse
                          ylabel =, % nome ordinate
                          legend style = cells={anchor=west}, %
                          ylabel style = {overlay}, % centrano solo le ascisse del grafico
                          yticklabel style = {overlay} %
                          }%

                          \begin{tikzpicture}
                          \begin{axis}
                          \addplot[] table[x index=,y index=]{.dat};
                          \end{axis}
                          \end{tikzpicture}
                          `

                          dove poi riempo con i settaggi che voglio a secondo del caso.
                          Per centrare il grafico basta che vedi i commenti in questo file.

                          Poi lo rinomino e lo includo nel documento con il seguente codice:
                          `
                          \begine{figure}
                          \centering
                          \input{.tex}
                          \caption{Grafico}
                          \label{fig:plot}
                          \end{figure}
                          `

                          Spero di esserti stato utile.

                          Fammi sapere

                          Michele

                        • #40403
                          gg_eo
                          Partecipante
                            Up
                            0
                            Down
                            ::


                            Sono ancora abbagliato da ciò che mi hai mandato.. 😯
                            Grazie mille!!!!! \’E un codice utilissimo! dovresti scrivere una breve guida come introduzione a questo pacchetto, che è si molto potente ma la sua relativa complessità potrebbe scoraggiare…

                            Solo una ultima cosa, il grafico prodotto con le impostazioni:
                            `\pgfplotsset{%
                            tick label style = {font=}, % grandezza cifre su assi
                            label style = {font=}, % grandezza lettere sugli assi
                            legend style = {font=, % grandezza font della legenda
                            at=}, % posizione della legenda
                            grid = major, % tipo di griglia
                            axis x line = bottom, % posizione ascisse
                            axis y line = left, % posizione ordinate
                            ymin =, % valore minimo ordinate
                            ymax =, % valore massimo ordinate
                            xmin =, % valore minimo ascisse
                            xmax =, % valore massimo ascisse
                            width =10cm, % larghezza figura
                            height =10cm, % altezza figura
                            xlabel =Tempo [h], % nome ascisse
                            ylabel =Massa [kmol], % nome ordinate
                            legend style = cells={anchor=west}, %
                            ylabel style = {overlay}, % centrano solo le ascisse del grafico
                            yticklabel style = {overlay} %
                            }%

                            \begin{tikzpicture}
                            \begin{axis}
                            \addplot[red,mark=none] plot table [x index = 0, y index = 1] {PrimoGrafico.dat};
                            \addplot[blue,mark=asterisk] plot table [x index = 0, y index = 2] {PrimoGrafico.dat};
                            \end{axis}
                            \end{tikzpicture} `
                            mi appare con gli assi cartesiani tradizionali, che terminano con una freccia, mentre io vorrei un quadrato che racchiude il grafico, per intendersi solo il primo quadrante.
                            Come posso fare?
                            E come posso inserire nel file il parametro line width?

                          • #40404
                            gg_eo
                            Partecipante
                              Up
                              0
                              Down
                              ::


                              Ho risolto il problema dello spessore delle linee aggiungendo al file di cui sopra:
                              `every axis/.append style = {line width=1pt}`.

                              Rimane il problema degli assi..

                            • #40405
                              Up
                              0
                              Down
                              ::


                              devi commentare le seguenti righe:
                              `
                              axis x line= bottom,
                              axis y line= left,
                              `

                              Saluti

                              Per quanto riguarda la guida, penso che la documentazione ufficiale sia già sufficientemente chiara.

                              Nella versione in sviluppo non ancora rilasciata del pacchetto si potranno fare anche dei bellissimi grafici 3d.

                              Bye

                              Michele

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

                          Go to top