Tikz da Geogebra

  • Creatore
    Topic
  • #84729
    Up
    0
    Down
    ::


    Gentili amici del Forum,
    riporto di seguito un codice Tikz prodotto da Geogebra perchè riportato in TexShop mi segnale errore:
    `
    \documentclass[10pt]{article}
    \usepackage{pgf,tikz}
    \usetikzlibrary{arrows}
    \pagestyle{empty}
    \begin{document}
    \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
    \draw[->,color=black] (-4.4787,0) — (5.494,0);
    \foreach \x in {-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0.5,1,1.5,2,2.5,3,3.5,4}
    \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
    \draw[->,color=black] (0,-0.4111) — (0,0.575);
    \foreach \y in {-0.4,-0.3,-0.2,-0.1,0.2,0.3,0.4,0.5}
    \draw[shift={(0,\y)},color=black] (2pt,0pt) — (-2pt,0pt) node

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

    {\footnotesize $0$};
    \clip(-4.4787,-0.4111) rectangle (5.494,0.575);

    \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{2.718281828^((-(\x)^2)/(1^2*2))/(abs(1)*sqrt(3.1415926535*2))}) — (2.58,0) — (-2.58,0) — cycle;

    %Nota: il retino grigio assume una forma strana, non certo quello della Normale che ho tracciato in Geogebra.

    \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{2.718281828^((-((\x))^2)/(1^2*2))/(abs(1)*sqrt(3.1415926535*2))});

    %Nota: La Console mi segnale un errore. Se commento la riga tutto procede bene, salvo il retino di cui ho scritto prima.

    \draw (-1.3785,0.539) node[anchor=north west] {Zona di accettazione};
    \draw [->,line width=1.2pt] (0.168,0.5045) — (0.0885,0.4122);
    \draw (2.9141,0.2337) node[anchor=north west] {Zona di rifiuto};
    \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
    \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
    \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
    \draw (-3.98,0.2572) node[anchor=north west] {Zona di rifiuto};
    \draw [->,line width=1.2pt] (-2.9201,0.2118) — (-2.7732,0.0365);
    \draw (-3.4814,-0.1294) node[anchor=north west] {z critico -2.58};
    \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
    \begin{scriptsize}
    \draw (0.2041,0.0397) node {$c = 0.9901$};
    \end{scriptsize}
    \end{tikzpicture}
    \end{document}
    `

    Non riesco a venirne fuori. Qualche suggerimento?

    Grazie

    Emil

Visualizzazione 18 filoni di risposte
  • Autore
    Risposte
    • #84730
      Up
      0
      Down
      ::


      L’errore è Dimension too large

    • #84731
      Liverpool
      Partecipante
        Up
        0
        Down
        ::


        Oltre a dirti dimension too large, dice anche I can’t work with sizes bigger than about 19 feet. Questo ti sugggerisce che, i valori della funzione che cerchi di disegnare, trasformati in centimetri secondo la trasformazione che hai indicato all’inizio (y*5 cm) superano i 5,79 metri. Vuoi davvero disegnare su un foglio così largo? Se provi a ridurre questi valori al di sotto del centimetro, vedi che a un certo punto l’errore scompare.

        Ciao

      • #84732
        Liverpool
        Partecipante
          Up
          0
          Down
          ::


          1) prova con
          `\draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot (\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;`
          2) Oltre a dirti dimension too large, dice anche I can’t work with sizes bigger than about 19 feet. Questo ti sugggerisce che, i valori della funzione che cerchi di disegnare, trasformati in centimetri secondo la trasformazione che hai indicato all’inizio (y*5 cm) superano i 5,79 metri. Se provi a ridurre questi valori al di sotto del centimetro, vedi che a un certo punto l’errore scompare.
          In ogni caso l’errore non l’hai fatto tu, ma pgf. Se utilizzi l’espressione che ti ho indicato prima, l’errore sparisce.

          Ciao

        • #84733
          Up
          0
          Down
          ::


          Grazie, funziona perfettamente.

          Io avevo trovato un modo per aggirare il problema, ridefinendo completamente la funzione, ma era troppo laborioso.

          La tua soluzione è quella giusta.

          Ma fammi capire. Al posto della costante di eulero elevata tu hai utilizzato esp moltiplicato per…
          Poi hai semplificato qualcosa (l’1 elevato al quadrato, il valore assoluto di 1, ecc).
          Credo che il punto critico sia però proprio l’esponenziale.

          E’ così?

          Puoi spiegarmi?

          Ancora grazie

          Emil

        • #84734
          Up
          0
          Down
          ::


          `\documentclass[10pt]{article}
          \usepackage{pgf,tikz}
          \usetikzlibrary{arrows}
          \pagestyle{empty}
          \begin{document}
          \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
          \draw[->,color=black] (-4.4787,0) — (4.494,0);
          \foreach \x in {-4,-3,-2,-1,0,1,2,3,4}
          \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
          \clip(-4.4787,-0.4111) rectangle (5.494,0.575);
          \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
          \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
          \draw (-1.4785,0.580) node[anchor=north west] {Zona di accettazione};
          \draw [->,line width=1.2pt] (0,0.5) — (0,0.4122);
          \draw (1.5141,0.2737) node[anchor=north west] {Zona di rifiuto};
          \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
          \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
          \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
          \draw (-4,0.2737) node[anchor=north west] {Zona di rifiuto};
          \draw [->,line width=1.2pt] (-3.6492,0.1821) — (-3.013,0.0365);
          \draw (-4,-0.1294) node[anchor=north west] {z critico -2.58};
          \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
          \begin{scriptsize}
          \draw (0,0.14) node {$1-\alpha = 0.9901$};
          \end{scriptsize}
          \end{tikzpicture}
          \end{document}`

        • #84735
          Liverpool
          Partecipante
            Up
            0
            Down
            ::

            EmilLask” post=84162Credo che il punto critico sia però proprio l’esponenziale. E’ così? Puoi spiegarmi?

            Sì. La forma \(\mathrm{e}^x\) viene gestita dalla funzione interna [tt]pow[/tt] che non funziona come ci si aspetterebbe quando l’esponente è negativo, mentre l’altra viene gestita dalla funzione [tt]exp[/tt]. Si tratta di capire cos’è che non va nel codice di [tt]pow[/tt].

            Per inserire il codice in un messaggio, racchiudilo in un ambiente [code]<...>[code preceduto dalla barra] in modo tale che sia più leggibile.

            Ciao

            Edit: il problema non è l’esponente negativo, perché anche \(\left(\frac{1}{e}\right)^x\) con esponente positivo si comporta allo stesso modo.

          • #84736
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::

              EmilLask” post=84162Grazie, funziona perfettamente.

              Io avevo trovato un modo per aggirare il problema, ridefinendo completamente la funzione, ma era troppo laborioso.

              La tua soluzione è quella giusta.

              Ma fammi capire. Al posto della costante di eulero elevata tu hai utilizzato esp moltiplicato per…
              Poi hai semplificato qualcosa (l’1 elevato al quadrato, il valore assoluto di 1, ecc).
              Credo che il punto critico sia però proprio l’esponenziale.

              E’ così?

              Puoi spiegarmi?

              Ancora grazie

              Emil

              Nella tua definizione quei vari 1^2 e abs(1) erano evidentemente superflui, nazi mi domando come ti sia venuto in mente di inserirli. È ovvio che uno ala quadrato fa uno e che il valore assoluto di uno vale uno.

              Ma la soluzione di @Liverpool che ricorre alla funzione esponenziale (non exp moltiplicato per qualcosa) svolge meglio il suo mestiere di calcolare l’esponenziale in base e, che non scrivere 2.718… elevato a qualcosa.

              Perché? non sono andato a leggere il codice della libreria matematica di pdfplot, ma suppongo che 2.718… elevato a qualcosa passi per i logaritmi, mentre
              exp calcola direttamente il risultato. Nel primo caso deve calcolare delle serie di potenze almeno per il logaritmo, perché per l’antilogaritmo non deve far altro che calcolare un esponenziale; per il calcolo dell’esponenziale limitato a intervalli sufficientemente limitati per non andare in overflow, cioè -9.7, \x < 9.7, il calcolo può procedere con altri mezzi che non riguardino le serie; Io saprei calcolarlo ricorrendo alle frazioni continue, ma ci sono anche altri modi; non so quale usi la libreria matematica a cui ho accennato sopra. Quel che conta è che il calcolo dell'esponenziale è diretto, quello di 2.718... elevato a qualcosa è più laborioso e passa per ogni punto da calcolare per due funzioni trascendenti, invece di calcolarne una sola. D'accordo, per usare LaTeX non dovrebbe essere necessario essere esperti di calcolo numerico, ma nel momento in cui si usa un modulo molto complesso come pgfplots per tracciare diagrammai, non sarebbe male avere dei buoni rudimenti di calcolo numerico; forse non è necessario averne con geogebra o con mathcad o mathlab o altri programmi specifici di calcolo numerico; questi programmi sono fatti apposta per eseguire calcoli completi anche di funzioni trascendenti e usano le potenzialità di calcolo in virgola mobile che oggi sono eseguibili con tutti i processori di qualunque PC, Mac, Notebook, laptptop, netbook, persino palmare, tablet, iPad e simili. Ma i programmi del sistema TeX, escluso luatex, fanno conti solamente con numeri interi di soli 30 o 31 bit, quindi le loro capacità di calcolo sono limitatissime, e o moduli scritti per far loro fare conti con numeri a virgola mobile sono generalmente dei trucchi. Si, ci sono delle estensioni, come il pacchetto fp.sty lo lo permettono, ma a spese di calcoli relativamente lenti; le nuove librerie che si appoggiano al linguaggio LaTeX3 non sono ancora generalizzate; la libreria matematica di pfgplots non ne fa ancora uso.

            • #84737
              Up
              0
              Down
              ::


              Grazie ancora per i chiarimenti.

              Il codice riportato è stato prodotto da Geogebra e rispecchia la funzione della normale gaussiana.
              Non sapevo, invece, che nell’ambiente Latex, o forse Tikz o PGF, alcuni percorsi di calcolo fossero preclusi.

              Ma adesso mi sembra chiaro e cercherò di farne tesoro, provando ancora a sperimentare altri passaggi da Geogebra a Latex.

              Emil

            • #84738
              Up
              0
              Down
              ::


              Il problema di fondo, secondo me, è proprio l’uso di GeoGebra. Serve davvero per questo grafico? Sicuramente si obbietterà che si fa prima, ma con le nefandezze di codice e risultato che produce io lo lascerei stare.

              Un piccolo elenco:
              `\draw[->,color=black] (-4.4787,0) — (4.494,0); ` scrivere [tt]color=black[/tt] non ha senso: è il predefinito.

              Torno alle opzioni: `x=1.0cm,y=1.0cm` idem come sopra: sono predefinite.
              `\foreach \x in {-4,-3.5,-3,-2.5,-2,-1.5,-1,-0.5,0.5,1,1.5,2,2.5,3,3.5,4}` Dunque: quella lista, per escludere solo lo 0 è assurda. Se proprio si vuole escludere un numero si fa: `\foreach \x in {-4,-3.5,…,-0.5,0.5,1,…,4}
              ` ma nell’esempio che illustro in seguito ho eliminato del tutto questo workaround con qualcosa di più elegante. La cosa interessante è: `\draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};` È indecente. Perché si debba shiftare la coordinata di partenza è un mistero oltre che un’operazione inutile, perché si utilizzi il tipo di font all’interno del testo non è molto bello. Sul colore mi sono già espresso. Più semplicemente: `\draw (\x,2pt)–(\x,-2pt) node[below,font=\footnotesize]{\x};`

              Su:
              `\foreach \y in {-0.4,-0.3,-0.2,-0.1,0.2,0.3,0.4,0.5}` stesso discorso di prima.

              Questo: `\draw (0pt,-10pt) node

              {\footnotesize $0$};` è fantastico. La traduzione normale è: `
              \node[font=\footnotesize,right] at (0pt,-10pt) {0};
              `

              Utilizzare 1^2*2 e abs(1) è nel commento di @OldClaudio, perciò sorvolo.

              Tutte queste label con frecce:
              `
              \draw (-1.3785,0.539) node[anchor=north west] {Zona di accettazione};
              \draw [->,line width=1.2pt] (0.168,0.5045) — (0.0885,0.4122);
              \draw (2.9141,0.2337) node[anchor=north west] {Zona di rifiuto};
              \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
              \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
              \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
              \draw (-3.98,0.2572) node[anchor=north west] {Zona di rifiuto};
              \draw [->,line width=1.2pt] (-2.9201,0.2118) — (-2.7732,0.0365);
              \draw (-3.4814,-0.1294) node[anchor=north west] {z critico -2.58};
              \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
              ` oltre a essere posizionate male sul disegno, vengono sempre realizzate con [tt]\draw[/tt] anziché [tt]\node[/tt].

              Infine…
              `\begin{scriptsize}
              \draw (0.2041,0.0397) node {$c = 0.9901$};
              \end{scriptsize}` semplicemente é: `\node[font=\scriptsize]at (0.2041,0.0397) {$c = 0.9901$};`

              Dimenticavo: non è necessario caricare la libreria [tt]arrows[/tt] per questo esempio.

              Tutti i tool che fanno le cose in automatico hanno qualche fregatura sotto.. quelle che ho elencato sono di codice e, oltre a quelle matematiche, mi fanno seriamente dire che è meglio farsi le cose a mano.

              Cosa avrei fatto io (tenendo comunque le coordinate create con GeoGebra):
              `\begin{tikzpicture}[line cap=round,line join=round,>=stealth,y=5cm]
              % Assi
              \draw[->] (-4.4787,0) — (5.494,0);
              \draw[->] (0,-0.4111) — (0,0.575);` disegno degli assi e opzioni iniziali.

              Le label dell’asse x: `% Label asse x
              \foreach \x in {-4,-3.5,…,4}{
              \pgfmathequal{\x}{0}
              \ifnum\pgfmathresult=1
              \node[below right,font=\tiny] at (\x,\x){\x};
              \else
              \draw (\x,2pt)–(\x,-2pt) node[below,font=\tiny]{\x};
              \fi
              }` Come dicevo prima, si fa molto prima a tenere la lista intera e fare un controllo per escludere solo lo 0.

              Le label dell’asse y e la c=0.9901: `
              % Label asse y
              \foreach \y in {-0.4,-0.3,…,-0.1,0.2,0.3,…,0.5}
              \draw (2pt,\y)–(-2pt,\y) node[left,font=\tiny]{\pgfmathprintnumber{\y}};

              % label c
              \node[font=\scriptsize] at (0.2041,0.0397) {$c = 0.9901$};
              ` Attenzione: siccome hai inserito la trasformazione dell’asse y con [tt]y=5cm[/tt], un foreach normale stamperebbe dei risultati tipo -0.20001. Perciò, inserendo nel preambolo: `
              \pgfkeys{/pgf/number format/.cd,fixed,precision=1}
              ` e stampando il numero con [tt]\pgfmathprintnumber{\y}[/tt] si evita quell’inconveniente.

              Le varie label (messe un po’ meglio e raggruppando le opzioni simili): `
              % varie label
              \begin{scope}[->, line width=1.2pt]
              \node[anchor=north west] (x) at (-1.3785,0.7) {Zona di accettazione};
              \draw (x) — (0.0885,0.4122);
              \node[anchor=north west] (y) at (2.9141,0.2337) {Zona di rifiuto};
              \draw (y) — (3.013,0.0365);
              \node[anchor=north] (y) at (-3.98,0.2572) {Zona di rifiuto};
              \draw (y) — (-2.7732,0.0365);
              \end{scope}

              \node[anchor=north west] (z) at (2.6034,-0.1513) {z critico 2.58};
              \draw [->] (z) — (2.5889,-0.0089);
              \node[anchor=north] (z) at (-3.4814,-0.1294) {z critico -2.58};
              \draw [->] (z) — (-2.607,-0.0136);
              ` Ora sistemiamo in background tutto il resto: in questo modo gli assi risulteranno “sopra” gli altri elementi: `
              % in background qualche elemento
              \begin{scope}[on background layer]
              % Riquadro
              \path[fill=black,fill opacity=0.1] (-2.58,0) — (-2.58,0.575)
              — (2.58,0.575) — (2.58,0) — (-2.58,0);
              % ridesegno i segmenti
              \draw (-2.58,0) — (-2.58,0.575)(2.58,0.575) — (2.58,0);

              % clip sul rettangolo per evitare problemi con la funzione seguente
              \clip(-4.4787,-0.4111) rectangle (5.494,0.575);

              % zona bianca
              \draw[fill=white,smooth,samples=50,domain=-2.58:2.58] plot(\x,{2.718281828^((-(\x)^2)/2)/(sqrt(2*pi))});

              % zona grigio scuro
              \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot (\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
              \end{scope}
              \end{tikzpicture}
              \end{document}
              ` Il risultato:
              [attachment=664]x.jpg[/attachment]

              Per referenza, il codice complessivo: `
              \documentclass[png,border=10pt]{standalone}
              \usepackage{tikz}
              \usetikzlibrary{backgrounds}
              \pgfkeys{/pgf/number format/.cd,fixed,precision=1}

              \begin{document}
              \begin{tikzpicture}[line cap=round,line join=round,>=stealth,y=5cm]
              % Assi
              \draw[->] (-4.4787,0) — (5.494,0);
              \draw[->] (0,-0.4111) — (0,0.575);
              % Label asse x
              \foreach \x in {-4,-3.5,…,4}{
              \pgfmathequal{\x}{0}
              \ifnum\pgfmathresult=1
              \node[below right,font=\tiny] at (\x,\x){\x};
              \else
              \draw (\x,2pt)–(\x,-2pt) node[below,font=\tiny]{\x};
              \fi
              }
              % Label asse y
              \foreach \y in {-0.4,-0.3,…,-0.1,0.2,0.3,…,0.5}
              \draw (2pt,\y)–(-2pt,\y) node[left,font=\tiny]{\pgfmathprintnumber{\y}};

              % label c
              \node[font=\scriptsize] at (0.2041,0.0397) {$c = 0.9901$};

              % varie label
              \begin{scope}[->, line width=1.2pt]
              \node[anchor=north west] (x) at (-1.3785,0.7) {Zona di accettazione};
              \draw (x) — (0.0885,0.4122);
              \node[anchor=north west] (y) at (2.9141,0.2337) {Zona di rifiuto};
              \draw (y) — (3.013,0.0365);
              \node[anchor=north] (y) at (-3.98,0.2572) {Zona di rifiuto};
              \draw (y) — (-2.7732,0.0365);
              \end{scope}

              \node[anchor=north west] (z) at (2.6034,-0.1513) {z critico 2.58};
              \draw [->] (z) — (2.5889,-0.0089);
              \node[anchor=north] (z) at (-3.4814,-0.1294) {z critico -2.58};
              \draw [->] (z) — (-2.607,-0.0136);

              % in background qualche elemento
              \begin{scope}[on background layer]
              % Riquadro
              \path[fill=black,fill opacity=0.1] (-2.58,0) — (-2.58,0.575)
              — (2.58,0.575) — (2.58,0) — (-2.58,0);
              % ridesegno i segmenti
              \draw (-2.58,0) — (-2.58,0.575)(2.58,0.575) — (2.58,0);

              % clip sul rettangolo per evitare problemi con la funzione seguente
              \clip(-4.4787,-0.4111) rectangle (5.494,0.575);

              % zona bianca
              \draw[fill=white,smooth,samples=50,domain=-2.58:2.58] plot(\x,{2.718281828^((-(\x)^2)/2)/(sqrt(2*pi))});

              % zona grigio scuro
              \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot (\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
              \end{scope}
              \end{tikzpicture}
              \end{document}
              `

              Ciao
              Claudio

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


                Allora, ho studiato il codice delle funzioni esponenziale e potenza. La funzione potenza è definita come \(a^b=\exp(b\ln a)\). La riga incriminata nel codice è proprio quella che calcola l’esponenziale del suo argomento. Questo ci porta a scoprire che il codice della funzione esponenziale presenta un bug che è stato risolto nella versione in via di sviluppo non ancora disponibile (strano perché la revisione è del 2010). Sostituendo la vecchia versione con la nuova, che puoi trovare nel codice evidenziato qui il problema si risolve e funziona anche il tuo codice originale.

                Ciao


                @cfiandra
                , pubblica anche la variante con [tt]pgfplots[/tt]!

              • #84740
                Up
                0
                Down
                ::


                [code]
                \documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.4787,0) — (4.494,0);
                \foreach \x in {-4,-3,-2,-1,0,1,2,3,4}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \clip(-4.4787,-0.4111) rectangle (5.494,0.575);
                \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
                \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
                \draw (-1.4785,0.580) node[anchor=north west] {Zona di accettazione};
                \draw [->,line width=1.2pt] (0,0.5) — (0,0.4122);
                \draw (1.5141,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
                \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
                \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
                \draw (-4,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (-3.6492,0.1821) — (-3.013,0.0365);
                \draw (-4,-0.1294) node[anchor=north west] {z critico -2.58};
                \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
                \begin{scriptsize}
                \draw (0,0.14) node {$1-\alpha = 0.9901$};
                \end{scriptsize}
                \end{tikzpicture}
                \end{document}
                [\code]

                Claudio grazie per i preziosi suggerimenti, ma il risultato a cui miravo è quello riportato dal codice che avevo già postato. Hai ragione nell’evidenziare i pasticci di Geogebra, ma è un programma che utilizzo volentieri e quindi cercherò di fare tesoro dei tuoi consigli per trovare un compromesso.

                Liverpool ancora molte grazie. Mi pare di capire però che la difficoltà sta proprio nell’aggiornamento di PGF. Io utilizzo Mac OS X, come posso aggiornare soltanto PGF senza dovere reinstallare tutto?

                Emil

              • #84741
                Up
                0
                Down
                ::



                \documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.4787,0) -- (4.494,0);
                \foreach \x in {-4,-3,-2,-1,0,1,2,3,4}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};
                \clip(-4.4787,-0.4111) rectangle (5.494,0.575);
                \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) -- (2.58,0) -- (-2.58,0) -- cycle;
                \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
                \draw (-1.4785,0.580) node[anchor=north west] {Zona di accettazione};
                \draw [->,line width=1.2pt] (0,0.5) -- (0,0.4122);
                \draw (1.5141,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (3.6492,0.1821) -- (3.013,0.0365);
                \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
                \draw [->] (3.1959,-0.1278) -- (2.5889,-0.0089);
                \draw (-4,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (-3.6492,0.1821) -- (-3.013,0.0365);
                \draw (-4,-0.1294) node[anchor=north west] {z critico -2.58};
                \draw [->] (-3.1056,-0.1137) -- (-2.607,-0.0136);
                \begin{scriptsize}
                \draw (0,0.14) node {$1-\alpha = 0.9901$};
                \end{scriptsize}
                \end{tikzpicture}
                \end{document}
                <\code>

                Claudio grazie per i preziosi suggerimenti, ma il risultato a cui miravo è quello riportato dal codice che avevo già postato. Hai ragione nell'evidenziare i pasticci di Geogebra, ma è un programma che utilizzo volentieri e quindi cercherò di fare tesoro dei tuoi consigli per trovare un compromesso.

                Liverpool ancora molte grazie. Mi pare di capire però che la difficoltà sta proprio nell'aggiornamento di PGF. Io utilizzo Mac OS X, come posso aggiornare soltanto PGF senza dovere reinstallare tutto?

                Emil

              • #84742
                Up
                0
                Down
                ::


                code
                \documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.4787,0) — (4.494,0);
                \foreach \x in {-4,-3,-2,-1,0,1,2,3,4}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \clip(-4.4787,-0.4111) rectangle (5.494,0.575);
                \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
                \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
                \draw (-1.4785,0.580) node[anchor=north west] {Zona di accettazione};
                \draw [->,line width=1.2pt] (0,0.5) — (0,0.4122);
                \draw (1.5141,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
                \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
                \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
                \draw (-4,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (-3.6492,0.1821) — (-3.013,0.0365);
                \draw (-4,-0.1294) node[anchor=north west] {z critico -2.58};
                \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
                \begin{scriptsize}
                \draw (0,0.14) node {$1-\alpha = 0.9901$};
                \end{scriptsize}
                \end{tikzpicture}
                \end{document}
                \code

                Claudio grazie per i preziosi suggerimenti, ma il risultato a cui miravo è quello riportato dal codice che avevo già postato. Hai ragione nell’evidenziare i pasticci di Geogebra, ma è un programma che utilizzo volentieri e quindi cercherò di fare tesoro dei tuoi consigli per trovare un compromesso.

                Liverpool ancora molte grazie. Mi pare di capire però che la difficoltà sta proprio nell’aggiornamento di PGF. Io utilizzo Mac OS X, come posso aggiornare soltanto PGF senza dovere reinstallare tutto?

                Emil

              • #84743
                Up
                0
                Down
                ::


                [code]
                \documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.4787,0) — (4.494,0);
                \foreach \x in {-4,-3,-2,-1,0,1,2,3,4}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \clip(-4.4787,-0.4111) rectangle (5.494,0.575);
                \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
                \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
                \draw (-1.4785,0.580) node[anchor=north west] {Zona di accettazione};
                \draw [->,line width=1.2pt] (0,0.5) — (0,0.4122);
                \draw (1.5141,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
                \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
                \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
                \draw (-4,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (-3.6492,0.1821) — (-3.013,0.0365);
                \draw (-4,-0.1294) node[anchor=north west] {z critico -2.58};
                \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
                \begin{scriptsize}
                \draw (0,0.14) node {$1-\alpha = 0.9901$};
                \end{scriptsize}
                \end{tikzpicture}
                \end{document}
                [\code]

                Claudio grazie per i preziosi suggerimenti, ma il risultato a cui miravo è quello riportato dal codice che avevo già postato. Hai ragione nell’evidenziare i pasticci di Geogebra, ma è un programma che utilizzo volentieri e quindi cercherò di fare tesoro dei tuoi consigli per trovare un compromesso.

                Liverpool ancora molte grazie. Mi pare di capire però che la difficoltà sta proprio nell’aggiornamento di PGF. Io utilizzo Mac OS X, come posso aggiornare soltanto PGF senza dovere reinstallare tutto?

                Emil

              • #84744
                Up
                0
                Down
                ::


                `\documentclass[10pt]{article}
                \usepackage{pgf,tikz}
                \usetikzlibrary{arrows}
                \pagestyle{empty}
                \begin{document}
                \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                \draw[->,color=black] (-4.4787,0) — (4.494,0);
                \foreach \x in {-4,-3,-2,-1,0,1,2,3,4}
                \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                \clip(-4.4787,-0.4111) rectangle (5.494,0.575);
                \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
                \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
                \draw (-1.4785,0.580) node[anchor=north west] {Zona di accettazione};
                \draw [->,line width=1.2pt] (0,0.5) — (0,0.4122);
                \draw (1.5141,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
                \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
                \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
                \draw (-4,0.2737) node[anchor=north west] {Zona di rifiuto};
                \draw [->,line width=1.2pt] (-3.6492,0.1821) — (-3.013,0.0365);
                \draw (-4,-0.1294) node[anchor=north west] {z critico -2.58};
                \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
                \begin{scriptsize}
                \draw (0,0.14) node {$1-\alpha = 0.9901$};
                \end{scriptsize}
                \end{tikzpicture}
                \end{document}`

                Claudio grazie per i preziosi suggerimenti, ma il risultato a cui miravo è quello riportato dal codice che avevo già postato. Hai ragione nell’evidenziare i pasticci di Geogebra, ma è un programma che utilizzo volentieri e quindi cercherò di fare tesoro dei tuoi consigli per trovare un compromesso.

                Liverpool ancora molte grazie. Mi pare di capire però che la difficoltà sta proprio nell’aggiornamento di PGF. Io utilizzo Mac OS X, come posso aggiornare soltanto PGF senza dovere reinstallare tutto?

                Emil

              • #84745
                Up
                0
                Down
                ::


                Leggendo con più attenzione mi pare che ancora l’aggiornamento con la risoluzione del bug non sia disponibile, è così?

                Grazie

                Emil

              • #84746
                Liverpool
                Partecipante
                  Up
                  0
                  Down
                  ::

                  EmilLask” post=84199Leggendo con più attenzione mi pare che ancora l’aggiornamento con la risoluzione del bug non sia disponibile, è così?

                  Sì è cosi. Quello che puoi fare è:
                  a) scaricare questo file dalla versione di sviluppo e sostituire l’omonimo nel tuo computer (la posizione corretta non la so perché io uso MiKTeX)
                  b) oppure aggiungere queste righe nel preambolo dopo aver caricato il paccheto TikZ (dovresti farlo per ogni sorgente che ti interessa correggere):
                  `\makeatletter
                  \let\pgfmath@function@exp\relax
                  \pgfmathdeclarefunction{exp}{1}{%
                  \begingroup
                  \pgfmath@xc=#1pt\relax
                  \pgfmath@yc=#1pt\relax
                  \ifdim\pgfmath@xc<-9pt \pgfmath@x=1sp\relax \else \ifdim\pgfmath@xc<0pt \pgfmath@xc=-\pgfmath@xc \fi \pgfmath@x=1pt\relax \pgfmath@xa=1pt\relax \pgfmath@xb=\pgfmath@x \pgfmathloop% \divide\pgfmath@xa by\pgfmathcounter \pgfmath@xa=\pgfmath@tonumber\pgfmath@xc\pgfmath@xa% \advance\pgfmath@x by\pgfmath@xa \ifdim\pgfmath@x=\pgfmath@xb \else \pgfmath@xb=\pgfmath@x \repeatpgfmathloop% \ifdim\pgfmath@yc<0pt \pgfmathreciprocal@{\pgfmath@tonumber\pgfmath@x}% \pgfmath@x=\pgfmathresult pt\relax \fi \fi \pgfmath@returnone\pgfmath@x% \endgroup } \makeatother`

                • #84747
                  Up
                  0
                  Down
                  ::

                  Liverpool” post=84176 @cfiandra, pubblica anche la variante con [tt]pgfplots[/tt]!

                  La lascio come esercizio 😉

                  In fondo, prendendo spunto da questa discussione non dovrebbero esserci problemi.

                  Ciao
                  Claudio

                • #84748
                  Up
                  0
                  Down
                  ::

                  EmilLask” post=84187`\documentclass[10pt]{article}
                  \usepackage{pgf,tikz}
                  \usetikzlibrary{arrows}
                  \pagestyle{empty}
                  \begin{document}
                  \begin{tikzpicture}[x=1cm,y=5cm][line cap=round,line join=round,>=triangle 45,x=1.0cm,y=1.0cm]
                  \draw[->,color=black] (-4.4787,0) — (4.494,0);
                  \foreach \x in {-4,-3,-2,-1,0,1,2,3,4}
                  \draw[shift={(\x,0)},color=black] (0pt,2pt) — (0pt,-2pt) node[below] {\footnotesize $\x$};
                  \clip(-4.4787,-0.4111) rectangle (5.494,0.575);
                  \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
                  \draw[smooth,samples=100,domain=-4.478660464569973:5.493990767592388] plot(\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
                  \draw (-1.4785,0.580) node[anchor=north west] {Zona di accettazione};
                  \draw [->,line width=1.2pt] (0,0.5) — (0,0.4122);
                  \draw (1.5141,0.2737) node[anchor=north west] {Zona di rifiuto};
                  \draw [->,line width=1.2pt] (3.6492,0.1821) — (3.013,0.0365);
                  \draw (2.6034,-0.1513) node[anchor=north west] {z critico 2.58};
                  \draw [->] (3.1959,-0.1278) — (2.5889,-0.0089);
                  \draw (-4,0.2737) node[anchor=north west] {Zona di rifiuto};
                  \draw [->,line width=1.2pt] (-3.6492,0.1821) — (-3.013,0.0365);
                  \draw (-4,-0.1294) node[anchor=north west] {z critico -2.58};
                  \draw [->] (-3.1056,-0.1137) — (-2.607,-0.0136);
                  \begin{scriptsize}
                  \draw (0,0.14) node {$1-\alpha = 0.9901$};
                  \end{scriptsize}
                  \end{tikzpicture}
                  \end{document}`

                  Claudio grazie per i preziosi suggerimenti, ma il risultato a cui miravo è quello riportato dal codice che avevo già postato. Hai ragione nell’evidenziare i pasticci di Geogebra, ma è un programma che utilizzo volentieri e quindi cercherò di fare tesoro dei tuoi consigli per trovare un compromesso.

                  Liverpool ancora molte grazie. Mi pare di capire però che la difficoltà sta proprio nell’aggiornamento di PGF. Io utilizzo Mac OS X, come posso aggiornare soltanto PGF senza dovere reinstallare tutto?

                  Emil

                  Il codice che avevi postato aveva come risultato qualcosa di molto simile a quello che ho realizzato io (altrimenti non lo avrei fatto così per mostrare il codice senza “traduzioni” da GeoGebra, non ti pare?). Del resto, ti basta prendere il tuo primo codice, incollarlo in un documento, cambiare il plot che dava errore con uno funzionante e vedere il risultato.

                  Visto che volevi una gaussiana semplice… beh: è tutto ancora più semplice: `
                  \documentclass[png,border=10pt,tikz]{standalone}
                  \usepackage{tikz}
                  \usetikzlibrary{backgrounds}
                  \pgfkeys{/pgf/number format/.cd,fixed,precision=1}

                  \begin{document}
                  \begin{tikzpicture}[line cap=round,line join=round,>=stealth,y=5cm]
                  % Assi
                  \draw[->] (-4.4787,0) — (5.494,0);
                  % Label asse x
                  \foreach \x in {-4,-3,…,4}{
                  \draw (\x,2pt)–(\x,-2pt) node[below,font=\footnotesize]{\x};
                  }

                  % label c
                  \node[font=\scriptsize] at (0,0.14) {$1-\alpha = 0.9901$};

                  % varie label
                  \begin{scope}[->, line width=1.2pt]
                  \node (x) at (0,0.580) {Zona di accettazione};
                  \draw (x) — (0,0.4122);
                  \node[anchor=north west] (y) at (2.9141,0.2337) {Zona di rifiuto};
                  \draw (y) — (3.013,0.0365);
                  \node[anchor=north] (y) at (-3.98,0.2572) {Zona di rifiuto};
                  \draw (y) — (-2.7732,0.0365);
                  \end{scope}

                  \node[anchor=north west] (z) at (2.4,-0.1513) {z critico 2.58};
                  \draw [->] (z) — (2.5889,-0.0089);
                  \node[anchor=north] (z) at (-3.3,-0.1294) {z critico -2.58};
                  \draw [->] (z) — (-2.607,-0.0136);

                  % in background qualche elemento
                  \begin{scope}[on background layer]
                  % gaussiana “non tagliata a 2.58”
                  \draw[ smooth,samples=50,domain=-4.478660464569973:5.493990767592388] plot (\x,{exp(-(\x)^2/2)/sqrt(2*pi)});
                  % zona grigio scuro con gaussiana “tagliata a 2.58”
                  \draw[fill=black,fill opacity=0.1, smooth,samples=50,domain=-2.58:2.58] plot (\x,{exp(-(\x)^2/2)/sqrt(2*pi)}) — (2.58,0) — (-2.58,0) — cycle;
                  \end{scope}
                  \end{tikzpicture}
                  `

                  Ciao
                  Claudio

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

              Go to top