pgfplots & gnuplot

  • Creatore
    Topic
  • #73371
    Up
    0
    Down
    ::


    Ciao, come si fa ad fare usare gnuplot con pgfplots? cosa devo impostare per utilizzare gnuplot per calcolare?
    Grazie

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


        Ciao e Benvenuto sul forum.

        Gnuplot viene utilizzato per effettuare i calcoli (non i grafici).
        Una volta che gnuplot è correttamente installato sul pc, devi specificare la chiave gnuplot al comando \addplot e compilare con l’opzione -shell-escape (almeno la prima volta).

        Se quanto detto ti sembra in qualche modo strano, basta che tu rilegga, a volte i dettagli sfuggono.
        Naturalmente una lettura del manuale di pgfplots risolve gran parte dei problemi.
        Per aprire il manuale, apri la console e digita il comando texdoc pgfplots.
        Un saluto.
        R.

      • #73373
        Up
        0
        Down
        ::


        Grazie mille, molto gentile ! tutto chiaro tranne che per “l’opzione -shell-escape” cosa vuol dire? e come si applica?

      • #73374
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::



          @repez
          ,
          shell escape è quella operazione con la quale un programma lancia un altro programma; i programmi di composizione del sistema TeX sono capaci di farlo; Le verisoni recenti di TeX Live e MiKtEx lo fanno spontaneamente in modo protetto e sono capci di fermarsi, far eseguire programmi come METAFONT, makeindex, bitex, e simili, per poi riprendere a lavorare quando il programma lanciato ha finito.
          Per lanciare gnuplot da dentro una compilazione fatta con pdflatex, per esempio, non basta l’esecuzione delo shell escape protetto, ma ci vuole lo shell escape NON protetto.

          Per fare questo bisogna che l’editor con il quale esegui pdflatex sia configurato (usando i suoi mezzi di configurazione) in modo che la stringa con la quale dice al sistema operativo di eseguire pdflatex contenga anche l’opzione -shell-escape (che con MiKTeX, se nulla è cambiato, si chiama –enable-write18, mentre con TeX Live rimane -shell-escape), in modo da autorizzare pdflatex ad eseguire questo lancio di un altro programma, gnuplot nel tuo caso, senza nessuna restrizione.

          Perché lo shell escape non è attivato per impostazione predefinita? perché con tutti i virus che circolano specialmente per le piattaforme Windows, è pericoloso lanciare un programma qualsiasi; potrebbe essere unn programma bacato e quindi i danni che il PC potrebbe subire potrebbero essere irrimediabili.

          A causa di questo, se vuoi lanciare pdflatex in modo che esegua gnuplot, sarebe meglio che lo facessi da console/terminal/prompt dei comandi, comunque si chiami la finestra dove dai i comandi scritti sulla tua macchina, e specificassi tu nel tuo comando scritto una cosa come
          `
          pdflatex -shell-escape -synctex=1 -errorstopmode “il mio bel file tex”
          `
          aggiungendovi altre opzioni, se vuoi, o modificando quelle che ho scritto io, in modo adeguato anche alla tua distribuzione del sistema TeX.

          Da terminale puoi sempre dare pdflatex –help e ti esce nel terminale stesso tutta la sinstassi del comando pdflatex.

        • #73375
          Up
          0
          Down
          ::


          Ho messo la stringa che mi hai detto nella configurazione del compilatore come nello screenshot ma mi da questo errore:

          pgfplots: Sorry, the gnuplot-result file ‘don.pgf-plot.table’ c>.gnuplot’ manually on the respective gnuplot file.. {1/sqrt((1-x^2)^2+4*0.05^2*x^2)};

          Attachments:
          You must be logged in to view attached files.
        • #73376
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Quello non dipende dallo shell escape ma da come hai passato il comando a pgfplot per lanciare e leggere poi i risultati dell’esecuzione di gnuplot.

            In questo forse può aiutarti @robytex.

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

              repez” post=72481Ho messo la stringa che mi hai detto nella configurazione del compilatore come nello screenshot ma mi da questo errore:

              pgfplots: Sorry, the gnuplot-result file ‘don.pgf-plot.table’ c>.gnuplot’ manually on the respective gnuplot file.. {1/sqrt((1-x^2)^2+4*0.05^2*x^2)};

              Non saprei. Uso pgfplots/gnuplots su Linux (dove gnuplot è di casa).
              Semmai dovresti postare il codice dell’esempio che ti da errore per accertare che dipende dalla configurazione del sistema sotto Windows.
              Un saluto.
              R.

              Ps. Problema di risonanza vero?
              Ti stai riferendo ai codici dell’articolo su pgfplots su ArsTeXnica, disponibili su github?

            • #73378
              Up
              0
              Down
              ::


              `
              \pgfplotsset{width=15cm,compat=1.3}
              %colormap={violetnew}{color(0cm)=(black); color(4cm)=(white)}
              % <-- moves axis labels near ticklabels (respects tick label widths) \begin{figure} \centering \begin{tikzpicture} \begin{axis}[ height=9cm, width=9cm, grid=major, ] \addplot gnuplot[id=filesuffix]{(-x**5 - 242)}; \addlegendentry{model} \addplot coordinates { (-4.77778,2027.60977) (-3.55556,347.84069) (-2.33333,22.58953) (-1.11111,-493.50066) (0.11111,46.66082) (1.33333,-205.56286) (2.55556,-341.40638) (3.77778,-1169.24780) (5.00000,-3269.56775) }; \addlegendentry{estimate} \end{axis} \end{tikzpicture} \caption{A larger example} \end{figure}` Errore: pgfplots: Sorry, the gnuplot-result file 'don.filesuffix.table'le>.gnuplot’ manually on the respective gnuplot file.. …lot gnuplot[id=filesuffix]{(-x**5 – 242)};

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

                repez” post=72494`
                \pgfplotsset{width=15cm,compat=1.3}
                %colormap={violetnew}{color(0cm)=(black); color(4cm)=(white)}
                % <-- moves axis labels near ticklabels (respects tick label widths) \begin{figure} \centering \begin{tikzpicture} \begin{axis}[ height=9cm, width=9cm, grid=major, ] \addplot gnuplot[id=filesuffix]{(-x**5 - 242)}; \addlegendentry{model} \addplot coordinates { (-4.77778,2027.60977) (-3.55556,347.84069) (-2.33333,22.58953) (-1.11111,-493.50066) (0.11111,46.66082) (1.33333,-205.56286) (2.55556,-341.40638) (3.77778,-1169.24780) (5.00000,-3269.56775) }; \addlegendentry{estimate} \end{axis} \end{tikzpicture} \caption{A larger example} \end{figure}` Errore: pgfplots: Sorry, the gnuplot-result file 'don.filesuffix.table'le>.gnuplot’ manually on the respective gnuplot file.. …lot gnuplot[id=filesuffix]{(-x**5 – 242)};

                Ciao,
                eccomi qui.

                Ho compilato il tuo codice e funziona perfettamente:
                `\documentclass{standalone}
                \usepackage{pgfplots}

                \pgfplotsset{width=15cm,compat=1.3}

                \begin{document}
                \begin{tikzpicture}
                \begin{axis}[
                height=9cm,
                width=9cm,
                grid=major,
                ]
                \addplot gnuplot[id=filesuffix]{(-x**5 – 242)};
                \addlegendentry{model}
                \addplot coordinates {
                (-4.77778,2027.60977)
                (-3.55556,347.84069)
                (-2.33333,22.58953)
                (-1.11111,-493.50066)
                (0.11111,46.66082)
                (1.33333,-205.56286)
                (2.55556,-341.40638)
                (3.77778,-1169.24780)
                (5.00000,-3269.56775)
                };
                \addlegendentry{estimate}
                \end{axis}
                \end{tikzpicture}
                \end{document}
                `

                [attachment=266]testgnuplotpgfplots.png[/attachment]

                Sembra quindi essere un problema di configurazione, forse di ricerca dei percorsi dell’eseguibile di gnuplot.
                Saluti.
                R.

                Attachments:
                You must be logged in to view attached files.
              • #73380
                Up
                0
                Down
                ::


                ecco a me viene solo il plot rosso. Oltre l’ opzione shell escape devo impostare pure la directory dell’ exe? se si come? e dove?

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

                  repez” post=72501ecco a me viene solo il plot rosso. Oltre l’ opzione shell escape devo impostare pure la directory dell’ exe? se si come? e dove?

                  Forse, dovresti impostare nel PATH di Windows il percorso all’eseguibile di gnuplot (hai fatto l’installazione giusto?).
                  Anzi, per verificare che gnuplot non è riconosciuto e che quindi potrebbe essere un problema di PATH, apri una finestra di console e digita il comando: `$ gnuplot –version`

                  Allora fai un click destro su “Risorse del Computer”, scegli “Proprietà” poi “Avanzate” e “Variabili d’ambiente”.
                  Tra le variabili di sistema dovresti poter leggere la variabile Path contenente i percorsi in cui vengono cercati gli eseguibili se non si trovano nella cartella corrente, separati da punto e virgola.

                  Un saluto.
                  Ciao

                • #73382
                  OldClaudio
                  Partecipante
                    Up
                    0
                    Down
                    ::


                    Capisco che il disegno con la legenda in inglese sia destinato ad un testo in inglese. Ma anche per gli inglesi e ancor più per gli Americani la separazioni delle cfre in gruppi di tre a desta e a sinistra del separatore decimale è proibita dalle norme ISO; vedi il §10.5.3 del documento sp811.pdf scaricabile da

                    http://physics.nist.gov/cuu/pdf/sp811.pdf

                    Ci sono dei motivi seri per evitare una qualunque segno “nero” (virgola o punto) per seprare i gruppi di cifre a tre a tre.

                  • #73383
                    Up
                    0
                    Down
                    ::

                    robitex” post=72503

                    ecco a me viene solo il plot rosso. Oltre l’ opzione shell escape devo impostare pure la directory dell’ exe? se si come? e dove?

                    Forse, dovresti impostare nel PATH di Windows il percorso all’eseguibile di gnuplot (hai fatto l’installazione giusto?).
                    Anzi, per verificare che gnuplot non è riconosciuto e che quindi potrebbe essere un problema di PATH, apri una finestra di console e digita il comando: `$ gnuplot –version`

                    Allora fai un click destro su “Risorse del Computer”, scegli “Proprietà” poi “Avanzate” e “Variabili d’ambiente”.
                    Tra le variabili di sistema dovresti poter leggere la variabile Path contenente i percorsi in cui vengono cercati gli eseguibili se non si trovano nella cartella corrente, separati da punto e virgola.

                    Un saluto.
                    Ciao

                    Funziona !! tutto perfetto ora ! 😀 grazie mille

                    posso approfittare per farti un’ altra domanda? è possibile fare una cosa del genere con pgfplots? il colore della gaussiana che va in funzione dei numeri. Come l’ opzione ColorFunction di Mathematica..

                    Attachments:
                    You must be logged in to view attached files.
                  • #73384
                    Up
                    0
                    Down
                    ::

                    OldClaudio” post=72505Capisco che il disegno con la legenda in inglese sia destinato ad un testo in inglese. Ma anche per gli inglesi e ancor più per gli Americani la separazioni delle cfre in gruppi di tre a desta e a sinistra del separatore decimale è proibita dalle norme ISO; vedi il §10.5.3 del documento sp811.pdf scaricabile da

                    http://physics.nist.gov/cuu/pdf/sp811.pdf

                    Ci sono dei motivi seri per evitare una qualunque segno “nero” (virgola o punto) per seprare i gruppi di cifre a tre a tre.

                    era solo un grafico preso come esempio per vedere se compilava.. comunque grazie tante per l’ informazione ! 😀

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

                Go to top