[Tikz] Sistema di riferimento comando draw

  • Creatore
    Topic
  • #118350
    Up
    0
    Down
    ::


    Ciao a tutti, sto cercando di aggiungere una freccia in un grafico disegnato con tikz. La vorrei disegnare con un comando del tipo:

    \draw[->] (1:1) — (5:1);

    Il problema è che il sistema di riferimento della freccia non combacia con quello del grafico. Vi allego il codice e il risultato ottenuto.

    `
    \documentclass[tikz]{standalone}
    \usepackage{pgfplots}
    \pgfplotsset{width=14cm,height=5cm}
    \begin{document}
    \begin{tikzpicture}
    \begin{axis}[
    axis x line=middle,
    axis y line=middle,
    ymax=2,
    ymin=-2,
    xmin=pi/3,xmax=8*pi,
    ]
    \addplot[domain=0:8*pi,samples=200,black]{sin(deg(x))};
    \end{axis}
    \draw[->] (1:1) — (5:1);
    \end{tikzpicture}
    \end{document}
    `

    [attachment=2460]bitmap.png[/attachment]

    Dall’immagine si nota la freccia fare capolino dal basso, in una zona ben diversa da quella specificata nel codice. Cosa non ho capito?

    Attachments:
    You must be logged in to view attached files.
Visualizzazione 2 filoni di risposte
  • Autore
    Risposte
    • #118351
      mcl1962
      Partecipante
        Up
        0
        Down
        ::


        La terz’ultima riga deve essere

        `\draw[->] (1,1) — (5,1);`

        se al posto della virgola usi i due punti (come hai fatto) disegni in coordinate polari.

        Ciao.

        Claudio

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

          MarioRossi” post=118789Ciao a tutti, sto cercando di aggiungere una freccia in un grafico disegnato con tikz. La vorrei disegnare con un comando del tipo:

          \draw[->] (1:1) — (5:1);

          Il problema è che il sistema di riferimento della freccia non combacia con quello del grafico. Vi allego il codice e il risultato ottenuto.

          `
          \documentclass[tikz]{standalone}
          \usepackage{pgfplots}
          \pgfplotsset{width=14cm,height=5cm}
          \begin{document}
          \begin{tikzpicture}
          \begin{axis}[
          axis x line=middle,
          axis y line=middle,
          ymax=2,
          ymin=-2,
          xmin=pi/3,xmax=8*pi,
          ]
          \addplot[domain=0:8*pi,samples=200,black]{sin(deg(x))};
          \end{axis}
          \draw[->] (1:1) — (5:1);
          \end{tikzpicture}
          \end{document}
          `

          [attachment=2460]bitmap.png[/attachment]

          Dall’immagine si nota la freccia fare capolino dal basso, in una zona ben diversa da quella specificata nel codice. Cosa non ho capito?

          Ciao.
          Ottieni quello che è perfettamente normale in pgfplots (se ci pensi arriveresti anche tu a questa soluzione se consideri che la figura è disegnata all’interno di una figura TiKz).
          Detto questo, pgfplots mette a disposizione l’accesso alle coordinate del grafico tramite la direttiva axis cs.

          Quindi: devi spostare l’istruzione di disegno all’interno dell’ambiente axis, e poi modificarla in:
          `\draw[->] (axis cs:1,1) — (axis cs:5,1);`
          Vedrai che tutto ciò che è al di fuori della tela del grafico non viene disegnato. Anche questo è il comportamento di default e può essere modificato. Cerca sul manuale che puoi aprire in un attimo con il comando da terminale “texdoc pgfplots”.
          Alla prossima.
          R.

        • #118353
          Up
          0
          Down
          ::


          Grazie, ho provato entrambe le soluzioni e sono riuscito a ottenere quello che desideravo. Siete stati molto gentili!

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

      Go to top