[pgfplot] Linea che attraversa due grafici

  • Questo topic ha 1 risposta, 2 partecipanti ed è stato aggiornato l'ultima volta 12 anni fa da cfiandra.
  • Creatore
    Topic
  • #96226
    Up
    0
    Down
    ::


    Ciao,

    modificando un codice precedente ho disegnato due funzioni come nel codice che vi allego. Come faccio per disegnare una retta verticale che passi dal punto etichettato 3T_1 e attraversi entrambi i grafici?

    Grazie, ciao

    `
    \documentclass

    {standalone}
    \usepackage{pgfplots}
    \usepackage{kpfonts}

    \pgfplotsset{every axis/.append style={
    axis x line=bottom,
    axis line style={->},
    %xlabel={$\rho$},
    axis lines = middle,
    xtick = \empty,
    ytick = \empty,
    every axis x label/.style={at={(axis description cs:1,0)},anchor=west},
    every axis y label/.style={at={(axis description cs:0,1)},anchor=east},
    fai sparire le etichette/.style={
    xtick style={opacity=0},
    xticklabel style={opacity=0},
    }
    }
    }

    \tikzset{>=stealth}
    \begin{document}

    \begin{tikzpicture}
    %\useasboundingbox (-0.5,-0.5) rectangle (7.5,6);
    \begin{axis}[
    ylabel=$\alpha_1(t)$,
    xmin=0,xmax=5,
    % ymin=0,
    ymax=1.5,
    xtick = {0.5, 1,2,3,4},
    xticklabels = {$\overline{\alpha}_1$, $T_1$, $2T_1$, $3T_1$, $4T_1$},
    %ytick = {5},
    % yticklabels = {$\varphi_m$}%,
    % xtick style={opacity=0},
    %xticklabel style={opacity=0}
    ]
    \addplot[domain = 0:0.5]{1};
    \addplot[domain=0.5:1]{0};
    \draw (axis cs: 0.5,1) — (axis cs:0.5,0);

    \draw (axis cs: 1,1)–(axis cs:1,0);
    \addplot[domain = 1:1.5] {1};
    \addplot[domain = 1.5:2] {0};
    \draw (axis cs: 1.5,1)–(axis cs:1.5,0);

    \draw (axis cs: 2,1)–(axis cs:2,0);
    \addplot[domain = 2:2.5] {1};
    \addplot[domain = 2.5:3] {0};
    \draw (axis cs: 2.5,1)–(axis cs:2.5,0);

    \draw (axis cs: 3,1)–(axis cs:3,0);
    \addplot[domain = 3:3.5] {1};
    \addplot[domain = 3.5:4] {0};
    \draw (axis cs: 3.5,1)–(axis cs:3.5,0);
    %\draw[dotted] (axis cs: 4,0)–(axis cs: 4,5);
    %\draw (axis cs: 0.45, 0.45*5) — (axis cs: 0.6, 0.45*5) — (axis cs: 0.6, 0.6*5) node

    {$v$};

    \end{axis}
    \end{tikzpicture}

    \begin{tikzpicture}
    %\useasboundingbox (-0.5125,-0.5) rectangle (7.5,6);
    \begin{axis}[
    ylabel = $\alpha_2(t)$,
    ymin=0,ymax=1.5,
    xmin=0,xmax=5,
    xtick = {0.5, 1, 1.5, 2.5,3.5},
    xticklabels = {$\overline{\alpha}_2$, $T_2$, $T'_2$, $T''_2$, $T'''_2$},
    %xmin=0,xmax=5,
    %ymin=0,ymax=6,
    %ytick = {5},
    % yticklabels = {$\varphi_m$}
    ]
    \addplot[domain = 0:0.5]{1};
    \addplot[domain=0.5:1]{0};
    \draw (axis cs: 0.5,1) — (axis cs:0.5,0);

    \draw (axis cs: 1,1)–(axis cs:1,0);
    \addplot[domain = 1:1.25] {1};
    \addplot[domain = 1.25:1.5] {0};
    \draw (axis cs:1.25,1)–(axis cs:1.25,0);

    \draw (axis cs: 1.5,1)–(axis cs:1.5,0);
    \addplot[domain = 1.5:2] {1};
    \addplot[domain = 2:2.5] {0};
    \draw (axis cs:2,1)–(axis cs:2,0);

    \draw (axis cs: 2.5,1)–(axis cs:2.5,0);
    \addplot[domain = 2.5:3] {1};
    \addplot[domain = 3:3.5] {0};
    \draw (axis cs: 3,1)–(axis cs:3,0);

    \draw (axis cs: 3.5,1)–(axis cs:3.5,0);
    \addplot[domain = 3.5:4] {1};
    \addplot[domain = 4:4.5] {0};
    \draw (axis cs: 4,1)–(axis cs:4,0);

    % \draw (axis cs: 2.5, 5 – 1.5*5/3) — (axis cs: 2.25, 5-1.5*5/3) — (axis cs: 2.25 ,5-1.25*5/3) node

    {$w$};
    \end{axis}
    \end{tikzpicture}

    \end{document}
    `

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


      Puoi contrassegnare i punti che ti interessano, ricordarli con l’opzione [tt]remember picture[/tt] e disegnare in [tt]overlay[/tt] la retta che collega i due punti. `\documentclass

      {standalone}
      \usepackage{pgfplots}
      \usepackage{kpfonts}

      \pgfplotsset{every axis/.append style={
      axis x line=bottom,
      axis line style={->},
      %xlabel={$\rho$},
      axis lines = middle,
      xtick = \empty,
      ytick = \empty,
      every axis x label/.style={at={(axis description cs:1,0)},anchor=west},
      every axis y label/.style={at={(axis description cs:0,1)},anchor=east},
      fai sparire le etichette/.style={
      xtick style={opacity=0},
      xticklabel style={opacity=0},
      }
      }
      }

      \tikzset{>=stealth}
      \begin{document}

      \begin{tikzpicture}[remember picture]
      %\useasboundingbox (-0.5,-0.5) rectangle (7.5,6);
      \begin{axis}[
      ylabel=$\alpha_1(t)$,
      xmin=0,xmax=5,
      % ymin=0,
      ymax=1.5,
      xtick = {0.5, 1,2,3,4},
      xticklabels = {$\overline{\alpha}_1$, $T_1$, $2T_1$, $3T_1$, $4T_1$},
      %ytick = {5},
      % yticklabels = {$\varphi_m$}%,
      % xtick style={opacity=0},
      %xticklabel style={opacity=0}
      ]
      \addplot[domain = 0:0.5]{1};
      \addplot[domain=0.5:1]{0};
      \draw (axis cs: 0.5,1) — (axis cs:0.5,0);

      \draw (axis cs: 1,1)–(axis cs:1,0);
      \addplot[domain = 1:1.5] {1};
      \addplot[domain = 1.5:2] {0};
      \draw (axis cs: 1.5,1)–(axis cs:1.5,0);

      \draw (axis cs: 2,1)–(axis cs:2,0);
      \addplot[domain = 2:2.5] {1};
      \addplot[domain = 2.5:3] {0};
      \draw (axis cs: 2.5,1)–(axis cs:2.5,0);

      \draw (axis cs: 3,1)–(axis cs:3,0);
      \addplot[domain = 3:3.5] {1};
      \addplot[domain = 3.5:4] {0};
      \draw (axis cs: 3.5,1)–(axis cs:3.5,0);
      %\draw[dotted] (axis cs: 4,0)–(axis cs: 4,5);
      %\draw (axis cs: 0.45, 0.45*5) — (axis cs: 0.6, 0.45*5) — (axis cs: 0.6, 0.6*5) node

      {$v$};

      \node[coordinate] (start-retta) at (axis cs:3,0){};
      \draw[red] (axis cs:3,0)–(axis cs:3,8);

      \end{axis}
      \end{tikzpicture}

      \begin{tikzpicture}[remember picture]
      %\useasboundingbox (-0.5125,-0.5) rectangle (7.5,6);
      \begin{axis}[
      ylabel = $\alpha_2(t)$,
      ymin=0,ymax=1.5,
      xmin=0,xmax=5,
      xtick = {0.5, 1, 1.5, 2.5,3.5},
      xticklabels = {$\overline{\alpha}_2$, $T_2$, $T'_2$, $T''_2$, $T'''_2$},
      %xmin=0,xmax=5,
      %ymin=0,ymax=6,
      %ytick = {5},
      % yticklabels = {$\varphi_m$}
      ]
      \addplot[domain = 0:0.5]{1};
      \addplot[domain=0.5:1]{0};
      \draw (axis cs: 0.5,1) — (axis cs:0.5,0);

      \draw (axis cs: 1,1)–(axis cs:1,0);
      \addplot[domain = 1:1.25] {1};
      \addplot[domain = 1.25:1.5] {0};
      \draw (axis cs:1.25,1)–(axis cs:1.25,0);

      \draw (axis cs: 1.5,1)–(axis cs:1.5,0);
      \addplot[domain = 1.5:2] {1};
      \addplot[domain = 2:2.5] {0};
      \draw (axis cs:2,1)–(axis cs:2,0);

      \draw (axis cs: 2.5,1)–(axis cs:2.5,0);
      \addplot[domain = 2.5:3] {1};
      \addplot[domain = 3:3.5] {0};
      \draw (axis cs: 3,1)–(axis cs:3,0);

      \draw (axis cs: 3.5,1)–(axis cs:3.5,0);
      \addplot[domain = 3.5:4] {1};
      \addplot[domain = 4:4.5] {0};
      \draw (axis cs: 4,1)–(axis cs:4,0);

      % \draw (axis cs: 2.5, 5 – 1.5*5/3) — (axis cs: 2.25, 5-1.5*5/3) — (axis cs: 2.25 ,5-1.25*5/3) node

      {$w$};

      \node[coordinate] (end-retta) at (axis cs:3,0){};
      \end{axis}
      \end{tikzpicture}

      \begin{tikzpicture}[remember picture,overlay]
      \draw[red] ([yshift=-0.5cm]start-retta)–(end-retta); % la retta non sovrascrive l'etichetta sull'asse x
      \end{tikzpicture}

      \end{document}`

      Ciao
      Claudio

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

Go to top