Überlappung von Circuitikz und Pgfplots Abbildung

Überlappung von Circuitikz und Pgfplots Abbildung

Mein heutiges Problem besteht darin, einen Stromkreis (hauptsächlich mit \draw gezeichnet) in eine Tikz-Achse einzupassen.

Ich verwende den Achsenbefehl, um (mit \addplot) eine Kurve aus einer Reihe von Punkten zu zeichnen (bisher ohne Probleme), aber ich kann nicht herausfinden, wie Tikzpicture mit Ankern und all dem umgeht, damit die Dinge nicht außer Kontrolle geraten, sondern an Ort und Stelle bleiben.

Zur Verdeutlichung hier der Code, in dem ich drei Achsen erstelle (also drei Unterabbildungen, wenn Sie so wollen, zwei oben und eine unten links):

\begin{tikzpicture}[scale=1]
% Vs(ve) graphique

  \begin{axis}[name=plot1
    ]
    \addplot[black] table {Fig_ELA2/ELA2_P3_C3/ELA2_P3_C1_PP_CLASSE_B/courbes/vs_ve_out.txt};
  \end{axis}
  
% Vs(wt) graphique
  \begin{axis}[name=plot2,at={($(plot1.east)+(1.5cm,0)$)},anchor=west
    ]
    \addplot[black] table {Fig_ELA2/ELA2_P3_C3/ELA2_P3_C1_PP_CLASSE_B/courbes/vs_t_out.txt};
  \end{axis}
  
% Ve(wt) graphique
  \begin{axis}[name=plot3,at={($(plot1.south)-(0,1.5cm)$)},anchor=north
    ]
    \addplot[black] table {Fig_ELA2/ELA2_P3_C3/ELA2_P3_C1_PP_CLASSE_B/courbes/ve_t_out.txt};
  \end{axis}

% Electrical circuit
  \draw
    (0,0) node[njfet](J){$J$}
    (J.S) to[short,-o] ++(0,-0.1) node[left](S){\tiny S} to [R, l_=$R_S$,-*] (0,-3) node(gnd_rs)[ground]{}
    (J.D) to[short,-o] ++(0,0.3) node[left](D){\tiny D} to [R, l=$R_D$] ++(0,2) node[vcc]{\color{green} $V_{CC}$}
    (J.G) to[short,-o] ++(-0.1,0) node[above](G){\tiny G}-- ++(-1,0) node(RG){}
    ;
    \coordinate (gnd_rg) at (RG|-gnd_rs);
    \draw (RG) to [R, l_=$R_G$,-*] (gnd_rg);
    \draw (gnd_rs) to[short,-o] ++(-4,0) node(gnd_ve){};
    \draw (gnd_rs) to[short,-*] ++(1,0) node(gnd_cs){} to[short,-o] ++(2,0) node(gnd_vs){};
    \coordinate (ve) at (gnd_ve|-J.G);
    \draw (ve) to[C,l=$C_{Le}$,o-*] (RG);
    \coordinate (vs) at (gnd_vs|-D);
    \draw (D) to[C,l=$C_{Ls}$,-o] (vs);
    \coordinate (cs) at (S-|gnd_cs);
    \draw (S) -- (cs) to[C,l=$C_S$,] (gnd_cs);
    \draw[-triangle 45, red] (gnd_vs) -- (vs) node[right,pos=0.5]{$v_s(t)$};
    \draw[-triangle 45, red] (gnd_ve) -- (ve) node[left,pos=0.5]{$v_e(t)$};
\end{tikzpicture}
    

Es tut mir leid, dass ich Ihnen die Kurven nicht zum Testen zur Verfügung stelle. Ich schätze, Sie können einfach einfache Kurven erstellen (oder gar kein Addplot).

Gibt es also eine Möglichkeit, den Stromkreis irgendwie als absolut festzulegen und ihn in CSS wie einen absoluten Schaltkreis verhalten zu lassen (also außerhalb des Flusses)?

Ich danke Ihnen für Ihre Hilfe !

Antwort1

Sie sollten immer versuchen, in sich geschlossene Beispiele zu posten, damit Leute, die helfen möchten, dies tun können, ohne Ihre Präambel oder Definitionen erraten zu müssen. Trotzdem ist dies eine Option – beachten Sie Folgendes:

  1. in Ihrem Schaltkreis haben Sie nur eine absolute Koordinate, nämlich die (0,-3)in der ersten Zeile, die ich behoben habe (und die dafür gesorgt hat, dass Ihr Schaltkreis nicht mehr übersetzt werden kann).
  2. selbst dann ist die Schaltung ziemlich groß, also habe ich sie mit einer scopeUmgebung skaliert.

Sie können also so etwas tun (die Einstellung ++(6,-5)manuell vornehmen; es ist auch möglich, es automatischer vorzunehmen, aber das ist eine andere Geschichte, die an einem anderen Tag erzählt wird ...)

\documentclass[border=10pt]{standalone}
\usepackage[siunitx, RPvoltages]{circuitikz}
\usepackage{pgfplots}\pgfplotsset{compat=newest}
\begin{document}

\begin{tikzpicture}[scale=1]
    % Vs(ve) graphique

    \begin{axis}[name=plot1
        ]
        \addplot[black] {sin(x)};
    \end{axis}

    % Vs(wt) graphique
    \begin{axis}[name=plot2,at={($(plot1.east)+(1.5cm,0)$)},anchor=west
        ]
        \addplot[black] {cos(x)};
    \end{axis}

    % Ve(wt) graphique
    \begin{axis}[name=plot3,at={($(plot1.south)-(0,1.5cm)$)},anchor=north
        ]
        \addplot[black] {x};
    \end{axis}

    % Electrical circuit
    \begin{scope}[scale=0.8, transform shape]
        \draw
            (plot1.south east) ++(6,-5) node[njfet](J){$J$}
            (J.S) to[short,-o] ++(0,-0.1) node[left](S){\tiny S} to [R, l_=$R_S$,-*] ++(0,-3) node(gnd_rs)[ground]{}
            (J.D) to[short,-o] ++(0,0.3) node[left](D){\tiny D} to [R, l=$R_D$] ++(0,2) node[vcc]{\color{green} $V_{CC}$}
            (J.G) to[short,-o] ++(-0.1,0) node[above](G){\tiny G}-- ++(-1,0) node(RG){}
            ;
        \coordinate (gnd_rg) at (RG|-gnd_rs);
        \draw (RG) to [R, l_=$R_G$,-*] (gnd_rg);
        \draw (gnd_rs) to[short,-o] ++(-4,0) node(gnd_ve){};
        \draw (gnd_rs) to[short,-*] ++(1,0) node(gnd_cs){} to[short,-o] ++(2,0) node(gnd_vs){};
        \coordinate (ve) at (gnd_ve|-J.G);
        \draw (ve) to[C,l=$C_{Le}$,o-*] (RG);
        \coordinate (vs) at (gnd_vs|-D);
        \draw (D) to[C,l=$C_{Ls}$,-o] (vs);
        \coordinate (cs) at (S-|gnd_cs);
        \draw (S) -- (cs) to[C,l=$C_S$,] (gnd_cs);
        \draw[->, red] (gnd_vs) -- (vs) node[right,pos=0.5]{$v_s(t)$};
        \draw[->, red] (gnd_ve) -- (ve) node[left,pos=0.5]{$v_e(t)$};
    \end{scope}
\end{tikzpicture}

\end{document}

Bild aus dem obigen Code

verwandte Informationen