Problema con pgfplots e gnuplot

  • Creatore
    Topic
  • #68771
    Up
    0
    Down
    ::


    Salve a tutti

    sto utilizzando, sia pure ad un livello elementare , pgfplots.
    Ho un problema con gnuplot che vorrei inserire nel codice pgfplots come indicato nell’articolo da De Marco Giacomelli si ArsTEXnica.
    Ho scritto un codice molto semplice ma non funziona, sicuramente c’è qualche errore.
    Grazie per qualche aiuto.
    Giovanni C.

    Aggiungo il codice:

    % Preambolo
    \documentclass{standalone}
    \usepackage{lmodern,pgfplots}

    \begin{document}

    \begin{tikzpicture}
    \begin{axis}
    \addplot+[id=parable,domain=-5:5]
    gnuplot{4*x**2 – 5} node[pin=180:{$4x^2-5$}]{};
    \end{axis}
    \end{tikzpicture}

    \end{document}

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #68772
      admin
      Amministratore del forum
        Up
        0
        Down
        ::

        gcappellotto47″ post=67912Salve a tutti

        sto utilizzando, sia pure ad un livello elementare , pgfplots.
        Ho un problema con gnuplot che vorrei inserire nel codice pgfplots come indicato nell’articolo da De Marco Giacomelli si ArsTEXnica.
        Ho scritto un codice molto semplice ma non funziona, sicuramente c’è qualche errore.
        Grazie per qualche aiuto.
        Giovanni C.

        Che tipo di errore?

        Ciao
        Orlando

      • #68773
        Up
        0
        Down
        ::

        gcappellotto47″ post=67912Salve a tutti

        sto utilizzando, sia pure ad un livello elementare , pgfplots.
        Ho un problema con gnuplot che vorrei inserire nel codice pgfplots come indicato nell’articolo da De Marco Giacomelli si ArsTEXnica.
        Ho scritto un codice molto semplice ma non funziona, sicuramente c’è qualche errore.

        Se l’errore è
        `! Package pgfplots Error: Sorry, the gnuplot-result file 'cappell.parable.table
        ' could not be found. Maybe you need to enable the shell-escape feature? For pd
        flatex, this is '>> pdflatex -shell-escape'. You can also invoke '>> gnuplot .gnuplot' manually on the respective gnuplot file..`
        evidentemente non hai chiamato pdflatex con l’opzione -shell-escape che è necessaria perché sia lanciato gnuplot.

        Ciao
        Enrico

      • #68774
        Up
        0
        Down
        ::


        scusa, ecco lil messaggio d’errore:

        Line 16 !Package pgfplots Error: Sorry, the gnuplot-result file ‘prova-grafici-xxxxx.parable.table’ could not be found

      • #68775
        Up
        0
        Down
        ::


        Allora controlla che trovi gnuplot. Devi preoccuparti che sia nel percorso di ricerca. Apri una console dei comandi e lancia manualmente il programma digitando “gnuplot”. Se il programma non parte, ecco qual’è il tuo problema. Che sistema operativo usi?

        Ciao,
        Agostino

      • #68776
        Up
        0
        Down
        ::


        Il sistema operativo è Windows XP S.P.3
        gnuplot lo trova in C:\Documents and Setting\gcappellotto47
        forse devo dargli tutto il percorso?

      • #68777
        Up
        0
        Down
        ::

        gcappellotto47″ post=67920Il sistema operativo è Windows XP S.P.3
        gnuplot lo trova in C:\Documents and Setting\gcappellotto47
        forse devo dargli tutto il percorso?

        Non mi pare una buona idea mettere un eseguibile nella tua home.

        Ciao
        Enrico

      • #68778
        Up
        0
        Down
        ::

        Il sistema operativo è Windows XP S.P.3
        gnuplot lo trova in C:\Documents and Setting\gcappellotto47
        forse devo dargli tutto il percorso?

        Beh non è il massimo.
        Intanto devi avere i privilegi di amministratore.
        Nel tuo caso sarebbe consigliabile copiare l’intera cartella di Gnuplot (quella che contiene l’eseguibile gnuplot.exe e tutti gli altri file) nella cartella C:\Programmi\Gnuplot
        (o C:\Program Files\Gnuplot) o in alternativa nella cartella C:\Gnuplot.
        Supponiamo che tu scelga C:\Gnuplot.
        La cosa importante è aggiungere il percorso in cui si trova gnuplot.exe alla variabile d’ambiente Path.
        Si fa così: Start->Pannello di controllo->Sistema->Impostazioni Avanzate->Variabili d’ambiente. Si aprirà una finestra di dialogo. Andrai a scorrere le variabili di sistema. Modificherai la variabile Path così: aggiungendo un ‘;’ (punto e virgola) ed il percorso C:\Gnuplot alla fine della stringa.
        A questo punto dovresti aver finito. Se riavvii il sistema è ancora meglio.

        Ciao,
        Agostino

      • #68779
        Up
        0
        Down
        ::


        Ti ringrazio,
        ho fatto quanto mi hai indicato però non funziona ancora.

        il codice è il solito:

        \documentclass{standalone}
        \usepackage{lmodern,pgfplots}

        \begin{document}

        \begin{tikzpicture}
        \begin{axis}
        \addplot+[id=parable,domain=-5:5]
        gnuplot{4*x**2 – 5} node[pin=180:{$4x^2-5$}]{};
        \end{axis}
        \end{tikzpicture}

        \end{document}

        Il messaggio d’errore è il seguente:

        ! Package pgfplots Error: Sorry, the gnuplot-result file ‘prova-grafici-xxxxx.p
        arable.table’ could not be found. Maybe you need to enable the shell-escape fea
        ture? For pdflatex, this is ‘>> pdflatex -shell-escape’. You can also invoke ‘>
        > gnuplot .gnuplot’ manually on the respective gnuplot file..
        See the pgfplots package documentation for explanation.
        Type H for immediate help.

        Quasi ci rinuncio…
        Comunque grazie lo stesso.
        Ciao

      • #68780
        Up
        0
        Down
        ::


        Leggi il terzo messaggio del filone.

        Ciao
        Enrico

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


          Nell’articolo su ArsTeXnica leggi l’esempio alla sezione 7.5. Viene detto che:
          1 – gnuplot serve solo per computazione numerica
          2 – occorre dare il comando di compilazione con l’opzione -shell-escape (almeno pre il primo run)

          Fai così: apri una finestra di console (Start-> Programmi -> Accessori -> Prompt dei comandi)
          adesso alla riga di comando devi rendere ‘corrente’ la directory dove si trova il sorgente tex per pgfplots
          usa quindi il comando `cd nome-dir (invio)`
          poi lancia il comando: `pdflatex -shell-escape nomesorgente`
          Si tratta di un normalissimo comando di compilazione del sorgente che di solito l’utente non vede perché viene lanciato dietro le quinte dall’editor. L’opzione -shell-escape consente a TeX di utilizzare i programmi esterni, cosa non permessa normalmente per questioni di sicurezza.

          Nella prima compilazione, pgfplots crea i file di comandi per gnuplot, e lancia gnuplot stesso sui file appena creati che in uscita danno i file numerici di risultato, letti poi da pgfplots per il plottaggio. Nelle compilazioni successive gnuplot viene chiamato solo se sono cambiate le formule.

          Nel tuo caso, tu lanci la compilazione, l’editor lancia il comando senza opzione -shell-escape, gnuplot non può quindi lavorare e pgfplots non trova i file numerici che si aspetterebbe.

          Aggiungo una nota:
          La classe standalone, suggeritami da Enrico, funziona bene perché il pdf del grafico è già scontornato (si evita un passaggio con pdfcrop), ma occorre sapere che funziona bene solo se non ci sono ritorni a capo tra \begin{document} e \begin{tikzpicture} e neppure tra i rispettivi comandi di chiusura di questi ambienti.

          Ciao
          R.

          ps. mi fa piacere che sul forum compaiono riferimenti all’articolo 🙂

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

      Go to top