Disegno di funzione con Tikz

  • Creatore
    Topic
  • #91989
    Up
    0
    Down
    ::


    Ciao a tutti, mi sono appena iscritta al forum e da pochissimo uso Latex, quindi mi scuso in anticipo per gli “orrori” che potrei scrivere!

    Ho bisogno di una mano per capire come disegnare dei grafici di funzioni usando Tikz ed, eventualmente, Gnuplot.
    Sono riuscita a disegnare il grafico della funzione y= asin(x) e vorrei usare più o meno le stesse impostazioni di questo grafico per farne di simili dove l’unica cosa a cambiare è la curva.
    Ho provato con quest’altra funzione:

    y=\frac{x^2-4}{x+1}

    ma il disegno viene in fondo alla pagina e decapitato! Inoltre se provo ad allargare il dominio mi dice “dimension too large”, ma speravo di risolvere la grandezza del disegno limitando il disegno verticalmente con le specifiche ymax e ymin!

    Inoltre io uso il software Qtikz per creare il disegno prima di riportare il codice sul foglio di lavoro ma, mentre per la prima funzione non ho problemi, per la seconda mi risponde “Process finished successfully.” ma non genera alcun disegno…

    Vi prego aiutatemi a capire dove sbaglio, anche perché devo creare moltissimi grafici di questo genere con le funzioni più disparate, e si mi blocco già per una banale funzione fratta non oso immaginare per le altre! 😯

    ————-
    Grafico ok:

    `\documentclass[a4paper,10pt,openany,fleqn]{book}
    \usepackage[italian]{babel}
    \usepackage[T1]{fontenc}
    \usepackage[latin1]{inputenc}
    \usepackage{amssymb,amsmath,amsfonts,amsthm,graphicx,makeidx,fancyhdr,pxfonts,txfonts,nccmath,tikz,pgf,pgfplots,enumitem}
    \usepackage[miktex,cleanup]{gnuplottex}
    \pgfplotsset{compat=1.9,tick label style={font=\footnotesize},label style={font=\scriptsize}}
    \begin{document}

    \begin{tikzpicture}
    \begin{axis}[
    anchor=origin,
    disabledatascaling,
    x=1cm,y=1cm,
    axis lines=middle,
    enlargelimits,
    ytick={-1.57,1.57},
    xtick={-1,1},
    xticklabels={-1,1},
    yticklabels={$-\frac{\pi}{2}$,$\frac{\pi}{2}$},
    no markers,line width=0.2pt,
    cycle list={{black,solid}},
    clip=false,
    width=5cm, height=5cm,]
    \addplot gnuplot [domain=-1:1,samples=120,smooth,thick] {asin(x)};
    \end{axis}
    \draw[dotted,very thin] (0,1.57) — (1,1.57) — (1,0);\draw[dotted,very thin] (-1,0) — (-1,-1.57) — (0,-1.57);
    \draw (0,1.85) node[anchor=south,font=\scriptsize] {$y$};\draw (1.2,0) node[anchor=west,font=\scriptsize] {$x$};
    \end{tikzpicture}
    \end{document}
    `
    —————-

    Grafico errato:

    `
    \begin{tikzpicture}
    \begin{axis}[
    anchor=origin,
    disabledatascaling,
    x=1cm,y=1cm,
    axis lines=middle,
    enlargelimits,
    xtick={-1},
    ymax=2,ymin=-2,
    no markers,line width=0.2pt,
    cycle list={{black,solid}},
    clip=false,
    width=5cm, height=5cm,]
    \addplot gnuplot [domain=-1:1,samples=120,smooth,thick] {(x^2-4)/(x+1)};
    \end{axis}
    \draw[dotted,very thin] (0,1.57) — (1,1.57) — (1,0);\draw[dotted,very thin] (-1,0) — (-1,-1.57) — (0,-1.57);
    \draw (0,1.85) node[anchor=south,font=\scriptsize] {$y$};\draw (1.2,0) node[anchor=west,font=\scriptsize] {$x$};
    \end{tikzpicture}
    `

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


        Benvenuta sul forum!

        Da quello che ricordo QTikZ è solo una sorta d’interfaccia a TikZ, quindi il codice lo scrive l’utente.
        Ergo, probabilmente dipende dal codice che hai scritto ottenere o meno il risultato atteso, quindi una buona guida dovrebbe essere letta, per esempio l’articolo sui grafici scaricabile da questo sito, contenuto in ArsTeXnica n. 12 (/wp-content/uploads/joomla-images/ArsTeXnica/AT012/grafici-pgfplots.pdf ).

        Poi, è chiaro che il pacchetto che crea il grafico non è TikZ ma bensì pgfplots, che dal precedente dipende.
        Un po’ di codice:
        `
        \documentclass{standalone}

        \usepackage[T1]{fontenc}
        \usepackage[latin1]{inputenc}
        \usepackage[italian]{babel}

        \usepackage{pgfplots}
        \pgfplotsset{compat=1.9,
        tick label style={font=\footnotesize},
        label style={font=\scriptsize}}

        \begin{document}

        \begin{tikzpicture}
        \begin{axis}[
        domain=-1:1,
        samples=120,
        width=5cm, height=5cm,
        clip= false,
        ]

        \addplot[line width=1pt] {asin(x)};

        \node at (axis description cs:0.98,-0.15){$x$};
        \node at (axis description cs:-0.26,0.95){$y$};
        \end{axis}
        \end{tikzpicture}
        \end{document}
        `
        A presto.
        R.

      • #91991
        Up
        0
        Down
        ::


        Grazie per aver risposto! 🙂

        La guida l’ho già letta, ho anche studiato il manuale di pgfplots e infatti il grafico della funzione asin(x) già riuscivo a farlo. Il problema è che non capisco perché non riesco a fare il grafico dell’altra funzione!
        Mi viene tutto tagliato, come se l’avesse scritto su una pagina invisibile!
        Allego il file pdf.

        Hai ragione per Qtikz, il codice lo scrivo io, è solo un modo più rapido per “vedere” in tempo reale quello che genera il codice senza dover ogni volta creare il pdf, però è anche un buon modo per capire subito se c’è qualcosa che non va, e infatti il grafico della funzione non viene bene né in Qtikz né in Latex. 🙁

        Attachments:
        You must be logged in to view attached files.
      • #91992
        robitex
        Amministratore del forum
          Up
          0
          Down
          ::

          geurs” post=91538Grazie per aver risposto! 🙂

          La guida l’ho già letta, ho anche studiato il manuale di pgfplots e infatti il grafico della funzione asin(x) già riuscivo a farlo. Il problema è che non capisco perché non riesco a fare il grafico dell’altra funzione!
          Mi viene tutto tagliato, come se l’avesse scritto su una pagina invisibile!
          Allego il file pdf.

          Hai ragione per Qtikz, il codice lo scrivo io, è solo un modo più rapido per “vedere” in tempo reale quello che genera il codice senza dover ogni volta creare il pdf, però è anche un buon modo per capire subito se c’è qualcosa che non va, e infatti il grafico della funzione non viene bene né in Qtikz né in Latex. 🙁

          Puoi allegare io codice di questo secondo grafico corrispondente al pdf?
          Mettilo tra i tag code altrimenti è scomodo (anche il il pulsantino Codice).
          Grazie.

        • #91993
          Up
          0
          Down
          ::


          `\documentclass[a4paper,10pt,openany,fleqn]{book}
          \usepackage[italian]{babel}
          \usepackage[T1]{fontenc}
          \usepackage[latin1]{inputenc}
          \usepackage{amssymb,amsmath,amsfonts,amsthm,graphicx,makeidx,fancyhdr,pxfonts,txfonts,nccmath,tikz,pgf,pgfplots,enumitem}
          \usepackage[miktex,cleanup]{gnuplottex}
          \pgfplotsset{compat=1.9,tick label style={font=\footnotesize},label style={font=\scriptsize}}
          \begin{document}
          \begin{tikzpicture}
          \begin{axis}[
          anchor=origin,
          disabledatascaling,
          x=1cm,y=1cm,
          axis lines=middle,
          enlargelimits,
          xtick={-1},
          ymax=2,ymin=-2,
          no markers,line width=0.2pt,
          cycle list={{black,solid}},
          clip=false,
          width=5cm, height=5cm,]
          \addplot gnuplot [domain=-1:1,samples=120,smooth,thick] {(x^2-4)/(x+1)};
          \end{axis}
          \draw[dotted,very thin] (0,1.57) — (1,1.57) — (1,0);\draw[dotted,very thin] (-1,0) — (-1,-1.57) — (0,-1.57);
          \draw (0,1.85) node[anchor=south,font=\scriptsize] {$y$};\draw (1.2,0) node[anchor=west,font=\scriptsize] {$x$};
          \end{tikzpicture}
          \end{document}`

        • #91994
          Up
          0
          Down
          ::


          Io di grafici non so ancora molto…(su quello ho appena iniziato a sperimentarmi anche io e non mi sto nemmeno applicando :-)) ma sicuro pgfplots carica già graphicx, pgf, tikz e quindi questi non caricarli che avere doppioni non è il massimo. Dopodiché amsfonts è già caricato da amssymb quindi anche in questo caso basta quest’ultimo. Poi ti suggerisco di aggiungere una “i” e caricare imakeidx…se ti leggi la documentazione di imakeidx (e quella di makeindex,oltre quella di makeidx che a quel punto non ti serve) puoi fare veramente delle figate. Se invece aggiunge la “i” e non leggi la documentazione, l’unica cosa che ti cambierà è che non ti servirà più compilare l’indice analitico a parte e ricompilare tutto di nuovo per ottenerlo…basterà una sola compilazione e l’indice sarà già a posto e aggiornato di suo! Quindi, per quanto il consiglio sia sempre di leggere la documentazione (o almeno dargli un occhio per sapere cosa tratta e dove trovare le info quando ti serviranno), dal mio punto di vista la “i” aggiungila comunque 🙂

          Per il resto, non ho altri consigli da darti ne posso aiutarti con il tuo problema

          ah…se un attimo di “buco” dai un occhio al documento scritto da Claudio Beccari sulle codifiche (corto e chiarificatore). Lo trovi nella sezione documentazione, e valuta di passare (magari per i prossimi documenti) alla utf8 in luogo della latin1, ovviamente se scegliere quest’ultima non è il frutto di una necessità specifica! 🙂

          Ciao ciao,

          Corrado.

        • #91995
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Be’, Tikz e pdfplots non sono il mio forte, ma se vuoi disegnare il grafico di una funzione che ha un asintoto verticale per x=-1, quello che ti succede è il minimo che possa succederti quando specifichi clip=false, metti almeno clip=true; non solo ma gli estremi del range verticale sono troppo stretti; prova a mettere ymin=-6, invece che -2 e vedrai che il disegno viene meglio, anche se è piccolo; cambia scale e ti verrà meglio.

            PS: per aggiungere un commento a quelli giustissimi di @Dork, hai deciso se vuoi usare i font Times (pacchetto txfonts) o i font Palatino (pacchetto pxfonts)? Caricando entrambi i pacchetti non sai in effetti quali verranno usati; deciditi; o gli uni o gli altri. Non faresti male a leggere la documentazione di newtx e quella di nexpx, dove i font Times e Palatino sono rivisitati, corretti, migliorati, estesi, eccetera. A parte gli scherzi: ogni volta che carichi un pacchetto domandati che cosa fa e a che cosa serve; come dice @Dork, leggere la documentazione, anche solo un’occhiata, non guasta mai; guasta tanto meno se si è alle prime armi; se si prendono le buone abitudini fin dall’inizio, il seguito diventa molto più facile.

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


              Se devi trattare un asintoto verticale puoi usare il trucco di inserire due \addplot della stessa funzione ma con domini contigui.
              Se per esempio l’asintoto si verifica per x = 1 i domini sarebbero per esempio 0: 0.95 e 1.05: 2 .
              Saluti.
              R.

              Ps.
              pgfplots carica tikz che è il front-end di pgf (quindi anch’esso viene caricato), ma non carica graphicx.

            • #91997
              Up
              0
              Down
              ::


              oh cavolo…scusate tantissimo!! … ora devo scoprire perché ne ero convinto (e sopratutto “cosa” nel mio ultimo documento, carica graphicx :-))

              Un abbraccio e grazie di aver corretto immediatamente la mia affermazione falsa e tendenziosa!

              Corrado.

            • #91998
              Up
              0
              Down
              ::


              (ok, sono del tutto stordito…lo avevo caricato io nel pacchetto fatto per fare la pagina del titolo :-)…che figura :mrgreen: :mrgreen: )

            • #91999
              Up
              0
              Down
              ::


              Un’osservazione: OldClaudio ha fatto giustamente notare c’è un problema con l’asintoto, ma conta anche il dominio in cui vuoi visualizzare la funzione, [tt]domain=-1:1[/tt]. È chiaro che se facessi il grafico da 0 a 1 non avresti nessun problema. Quindi se non usi l’opzione clip, pgfplots esegue semplicemente dei calcoli e ti fornisce un risultato grafico che su una pagina non ci può proprio stare, ecco perché ti salta in una pagina nuova e non se ne vede la fine.

              Per la serie: i calcolatori fanno solo quello che gli si dice di fare 😉

              P.S. Se devi fare tante funzioni, potresti pensare di usare GeoGebra ed esportare in TikZ il risultato.

              P.P.S. Pgfplots non carica graphicx è vero, ma siccome TikZ lo fa, automaticamente graphicx è caricato. Da notare:`
              \documentclass{article}
              \usepackage{pgfplots}
              \usepackage{mwe}
              \begin{document}

              \includegraphics{example-image}

              \end{document}`
              funziona.

              Ciao
              Claudio

            • #92000
              Up
              0
              Down
              ::

              cfiandra” post=91556
              P.S. Se devi fare tante funzioni, potresti pensare di usare GeoGebra ed esportare in TikZ il risultato.

              Si può fare 😮 😮 😮 adoro GeoGebra andrò a vedermi subito come fare!!!! Funziona bene, si?!?! super!! Grazie Grazie Grazie 🙂

              cfiandra” post=91556
              P.P.S. Pgfplots non carica graphicx è vero, ma siccome TikZ lo fa, automaticamente graphicx è caricato.

              Grazie anche di questo, mi sento salvo in corner e sono felice che il mio pacchetto non lo carichi due volte se c’è già (c’è il require 🙂 Grazie OldClaudio :-)) quindi era pgfplot che lo caricava sul serio e mi ricordavo giusto (nel mio documento non spariva commentando la chiamata a pgfplots, e quindi mi sentivo di confermare non fosse lui a caricarlo, perché il mio require falliva e dunque era lui che lo caricava…lazzarone :-))

              Mi avete fatto venire in mente un argomento per una nuova discussione!…arriva prestissimo

            • #92001
              Up
              0
              Down
              ::

              Dork” post=91559

              P.S. Se devi fare tante funzioni, potresti pensare di usare GeoGebra ed esportare in TikZ il risultato.

              Si può fare 😮 😮 😮 adoro GeoGebra andrò a vedermi subito come fare!!!! Funziona bene, si?!?! super!! Grazie Grazie Grazie 🙂

              Si, dovrebbe esserci il modo di esportare con TikZ. Avevo provato tempo fa con la versione on line di GeoGebra e funzionava.

              Dork” post=91559

              P.P.S. Pgfplots non carica graphicx è vero, ma siccome TikZ lo fa, automaticamente graphicx è caricato.

              Grazie anche di questo, mi sento salvo in corner e sono felice che il mio pacchetto non lo carichi due volte se c’è già (c’è il require 🙂 Grazie OldClaudio :-)) quindi era pgfplot che lo caricava sul serio e mi ricordavo giusto (nel mio documento non spariva commentando la chiamata a pgfplots, e quindi mi sentivo di confermare non fosse lui a caricarlo, perché il mio require falliva e dunque era lui che lo caricava…lazzarone :-))

              Mi avete fatto venire in mente un argomento per una nuova discussione!…arriva prestissimo

              Non ho capito molto di quanto hai scritto.

              Ricapitoliamo. Pgfplots non carica graphicx direttamente. Pgfplots carica TikZ ed è TikZ che carica graphicx. Alla fine della fiera come ti ho dimostrato, puoi usare i comandi di graphicx solo caricando pgfplots, sebbene, evidenzio nuovamente, pgfplots non carichi direttamente graphicx.

              Visto che ti interessa, puoi dare un’occhiata a Automated management of package options and loading order dove si parla di un pacchetto che dovrebbe gestire i conflitti nati da caricamento di pacchetti in ordine sbagliato.

              Ciao
              Claudio

            • #92002
              OldClaudio
              Partecipante
                Up
                0
                Down
                ::


                Il link che hai inserito riporta informazioni preziose; peccato che il pacchetto pkgloadr non sia ancora disponibile; sarebbe utile, anche se non risolve certi altri conflitti, ma almeno ne risolve alcuni.

                Claudio

              • #92003
                Up
                0
                Down
                ::


                Già..ho visto pure io 🙂 tra l’altro ho provato a vedere anche com’è il pacchetto nel SVN e quello che dice è vero…potenzialmente è incredibile ma al momento (tenendo conto che ha definito tutto per far si che quello che “c’è scritto” venga fatto), se non ho capito male il codice, si “limita” a:

                `
                \Load {fancyhdr} before {hyperref}
                \Load {fncychap} before {hyperref}
                \Load {float} before {hyperref}
                \Load {hyperref} before {algorithm}
                \Load {amssymb} before {xunicode}
                \Load {amssymb} before {xltxtra}
                \Load {graphicx} before {xltxtra}
                \Load {graphicx} before {fontspec}
                \Load {caption} before {subfig}
                \Load {amsmath} before {wasysym}
                \Load {todonotes} before {program}
                `

                (non ho capito invece se evita anche vegano caricati, in generale, doppioni)

                in ogni modo, da tenere sott’occhio 🙂

              • #92004
                Up
                0
                Down
                ::


                Ho provato con Geogebra ma anche lì ci deve essere qualcosa che mi perdo strada facendo perché, nonostante in Geogebra il grafico venga benissimo, quando esporto il codice in Latex mi disegna solo gli assi cartesiani…:???:

                `\documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.3,0) — (7.06,0);
                \foreach \x in {,5}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \draw[->,color=black] (0,-2.56) — (0,6.3);
                \foreach \y in {,5}
                \draw[shift={(0,\y)},color=black] (2pt,0pt) — (-2pt,0pt) node

                {\footnotesize $\y$};
                \draw (0pt,-10pt) node

                {\footnotesize $0$};
                \clip(-4.3,-2.56) rectangle (7.06,6.3);
                \draw plot[raw gnuplot, id=func1] function{set samples 100; set xrange [-4.2:6.960000000000001]; plot (x²-4)/(x+1)};
                \end{tikzpicture}
                \end{document}`

              • #92005
                Up
                0
                Down
                ::


                credo che la parte interessante sia

                `sh: gnuplot: command not found

                Package pgf Warning: Plot data file `gegebratikz.func1.table' not found. on inp
                ut line 15.
                `

                line 15 che è:

                `\draw plot[raw gnuplot, id=func1] function{set samples 100; set xrange [-4.2:6.960000000000001]; plot (x²-4)/(x+1)};
                `

              • #92006
                Up
                0
                Down
                ::

                geurs” post=91595Ho provato con Geogebra ma anche lì ci deve essere qualcosa che mi perdo strada facendo perché, nonostante in Geogebra il grafico venga benissimo, quando esporto il codice in Latex mi disegna solo gli assi cartesiani…:???:

                `\documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.3,0) — (7.06,0);
                \foreach \x in {,5}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \draw[->,color=black] (0,-2.56) — (0,6.3);
                \foreach \y in {,5}
                \draw[shift={(0,\y)},color=black] (2pt,0pt) — (-2pt,0pt) node

                {\footnotesize $\y$};
                \draw (0pt,-10pt) node

                {\footnotesize $0$};
                \clip(-4.3,-2.56) rectangle (7.06,6.3);
                \draw plot[raw gnuplot, id=func1] function{set samples 100; set xrange [-4.2:6.960000000000001]; plot (x²-4)/(x+1)};
                \end{tikzpicture}
                \end{document}`


                @Dork
                ha ragione, il problema è: `
                \draw plot[raw gnuplot, id=func1] function{set samples 100; set xrange [-4.2:6.960000000000001]; plot (x²-4)/(x+1)};
                ` Può essere dovuto al fatto che non hai gnuplot installato oppure se lo hai installato non stai compilando con l’opzione [tt]-shell-escape[/tt]. Non pensavo che durante il processo di trasformazione si usasse gnuplot. Ovviamente è possibile farne a meno: `
                \documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.3,0) — (7.06,0);
                \foreach \x in {,5}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \draw[->,color=black] (0,-2.56) — (0,6.3);
                \foreach \y in {,5}
                \draw[shift={(0,\y)},color=black] (2pt,0pt) — (-2pt,0pt) node

                {\footnotesize $\y$};
                \draw (0pt,-10pt) node

                {\footnotesize $0$};
                \clip(-4.3,-2.56) rectangle (7.06,6.3);
                \draw plot (\x,{\x^2-4)/(\x+1)}); % senza gnuplot: basta mettere fra () la funzione secondo: primo argomento \x , secondo argomento funzione vera e propria
                \end{tikzpicture}
                \end{document}
                `

                Ciao
                Claudio

              • #92007
                Up
                0
                Down
                ::


                io non so come impostarlo…lo sto modificando a mano…ma in GeoGebra (ultima versione 4.4 per lo meno) c’è l’opzione per esportare usando gnuplot meno!

                [attachment:1]C:\fakepath\GeoGebra_Tikz.pdf[/attachment]

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


                Ho fatto un po’ di prove con geogebra ma non ne vengo fuori… se provo a generare il codice senza gnuplot viene un grafico errato 😕
                Se provo, sempre con geogebra, ma con gnuplot, viene meglio (dopo aver modificato a mano la funzione… non capisco che senso ha a questo punto usare geogebra) ma non riesco a fargli eliminare la retta dell’asintoto, che non voglio assolutamente sia disegnata con lo stesso stile della funzione, ma al max tratteggiata, visto che può essere fuorviante.
                Suggerimenti?

                `\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=0.21346011573656667cm,y=0.2628883802411409cm]
                \draw[->,color=black] (-10.24,0) — (13.18,0);
                \foreach \x in {-10,-8,-6,-4,-2,2,4,6,8,10,12}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \draw[->,color=black] (0,-9.72) — (0,9.3);
                \foreach \y in {-8,-6,-4,-2,2,4,6,8}
                \draw[shift={(0,\y)},color=black] (2pt,0pt) — (-2pt,0pt) node

                {\footnotesize $\y$};
                \draw (0pt,-10pt) node

                {\footnotesize $0$};
                \clip(-10.24,-9.72) rectangle (13.18,9.3);
                \draw plot[raw gnuplot, id=func0] function{set samples 100; set xrange [-10.143365060000006:13.080214482000013]; plot (x**2-4)/(x+1)};
                \end{tikzpicture}`

              • #92009
                Up
                0
                Down
                ::

                geurs” post=91660Ho fatto un po’ di prove con geogebra ma non ne vengo fuori… se provo a generare il codice senza gnuplot viene un grafico errato 😕
                Se provo, sempre con geogebra, ma con gnuplot, viene meglio (dopo aver modificato a mano la funzione… non capisco che senso ha a questo punto usare geogebra) ma non riesco a fargli eliminare la retta dell’asintoto, che non voglio assolutamente sia disegnata con lo stesso stile della funzione, ma al max tratteggiata, visto che può essere fuorviante.
                Suggerimenti?

                `\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=0.21346011573656667cm,y=0.2628883802411409cm]
                \draw[->,color=black] (-10.24,0) — (13.18,0);
                \foreach \x in {-10,-8,-6,-4,-2,2,4,6,8,10,12}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \draw[->,color=black] (0,-9.72) — (0,9.3);
                \foreach \y in {-8,-6,-4,-2,2,4,6,8}
                \draw[shift={(0,\y)},color=black] (2pt,0pt) — (-2pt,0pt) node

                {\footnotesize $\y$};
                \draw (0pt,-10pt) node

                {\footnotesize $0$};
                \clip(-10.24,-9.72) rectangle (13.18,9.3);
                \draw plot[raw gnuplot, id=func0] function{set samples 100; set xrange [-10.143365060000006:13.080214482000013]; plot (x**2-4)/(x+1)};
                \end{tikzpicture}`

                Non è difficile, è questione di capire bene cosa fare prima di farlo. Come ti è stato detto, il solito trucco per disegnare funzioni che hanno un asintoto è spezzare il dominio e fare due grafici: in questo caso scegli un intorno q di -1 e creati due domini: da -1+q fino a +infinito o quello che ti pare e da -1-q fino a -infinito. Stop.

                Senza gnuplot: `
                \documentclass[tikz,border=10pt]{standalone}
                \usetikzlibrary{arrows}
                \begin{document}

                \begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=0.21346011573656667cm,y=0.2628883802411409cm]
                \draw[->,color=black] (-10.24,0) — (13.18,0);
                \foreach \x in {-10,-8,-6,-4,-2,2,4,6,8,10,12}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \draw[->,color=black] (0,-9.72) — (0,9.3);
                \foreach \y in {-8,-6,-4,-2,2,4,6,8}
                \draw[shift={(0,\y)},color=black] (2pt,0pt) — (-2pt,0pt) node

                {\footnotesize $\y$};
                \draw (0pt,-10pt) node

                {\footnotesize $0$};
                \clip(-10.24,-9.72) rectangle (13.18,9.3);

                \draw[domain=-0.95:6] plot (\x,{(\x^2-4)/(\x+1)});
                \draw[domain=-1.05:-6] plot (\x,{(\x^2-4)/(\x+1)});
                \end{tikzpicture}

                \end{document}
                `

                Ciao
                Claudio

              • #92010
                Up
                0
                Down
                ::


                Sì infatti stavo giusto per aggiungere che alla fine ho capito che il problema è quello e quindi ho risolto come aveva suggerito robitex e viene benissimo!

                Resta il fatto che senza gnuplot il grafico è proprio errato.

                Grazie a tutti!

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

            Go to top