PGF-Plot-Einstellungen

PGF-Plot-Einstellungen

Ich habe dies tikzpicture/ pgfplot(siehe unten). Ich habe ein paar Fragen dazu.

  1. Wie setzen Sie dieX-Labels (10 1 , 10 2 usw.) oben auf demX-Achse?
  2. Wie zeigen Sie diej-Achse nach unten (der Pfeil unten)?
  3. Wie platziert man eineX-Beschriftung an der grünen Vertikale (bei 1591 Hz)?
  4. Wie können Sie zusätzliche Häkchen auf demj-Achse ohne Beschriftung (zB jede Einheit ein Häkchen, nur jede dritte Einheit eine Beschriftung)?
  5. Wie platzieren Sie mit den zusätzlichen Häkchen aus der vorherigen Frage Gitternetzlinien daneben?
  6. Ist es möglich, an der Kreuzung Rot-Grün einen Punkt oder ein Kreuz zu setzen?
  7. Kann ich auch einen Pfeil mit einer Textbeschriftung auf diesen Schnittpunkt setzen?
  8. Wenn ich die Domäne bei 10 statt bei 1 beginne oder wenn ich verwende xmin=10, erhalte ich einen weißen Bereich zwischen denj-Achse und das Diagramm/ Raster . Wie kann man das vermeiden? Ich möchte, dass dieses Diagramm mit 10 1 beginnt,j-Achse.

Vielen Dank im Voraus!

\documentclass{article}
\usepackage{pgf,tikz}
\usepackage{pgfplots}
\begin{document}
\usetikzlibrary{circuits.ee.IEC,graphs,patterns,calc,positioning,intersections,quotes,decorations.markings,angles,bending,arrows.meta,shapes}
\def\dBmax{0}
\def\dBmin{-12}
\def\pi{3.14159}
\def\R{1000}
\def\C{0.0000001}
\def\Fc{1/(2*\pi*\R*\C)}
\pgfplotsset{width=14.5cm,height=6cm}
\begin{tikzpicture}[scale=0.8]
  \begin{axis}[title=$Laagdoorlaatfilter-verzwakking$,
      axis lines=middle,
      ymin=\dBmin,ymax=\dBmax,
      ylabel={$A_v(dB)$},
      ylabel style={at={(ticklabel* cs:1)},anchor=east},
      ytick={-21,-18,...,0},
      xmode=log,
      domain=1:100000,
      xlabel={$f(Hz)$},
      xlabel style={at={(ticklabel* cs:1)},anchor=south},
      xtick style={above=1cm},
      xminorticks=true,
      xmajorticks=true,
      xminorgrids,
      xmajorgrids,
      grid=both,
      samples=100]
    \addplot[no marks, blue] {20*log10(1/sqrt(1+(2*\pi*\R*\C*x)^2))};
%    \addplot+[no marks, green] {20*log10(1/sqrt(1+1/((2*\pi*\R*\C*x)^2)))};
    \addplot+[no marks, red] {-3};
    \addplot+[no marks,green!50!black] coordinates{(\Fc,\dBmax) (\Fc,\dBmin)};
  \end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Antwort1

bearbeiten: wie diese (löste fast alle Ihre Fragen ...)?

Bildbeschreibung hier eingeben

(rote Linien zeigen Textränder an)

\documentclass{article}
\usepackage{siunitx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
\usetikzlibrary{arrows.meta}

\begin{document}
    \begin{tikzpicture}[pin edge={Latex-,black}]
\def\dBmax{0}
\def\dBmin{-12}
\def\pi{3.14159}
\def\R{1000}
\def\C{0.0000001}
\def\Fc{1/(2*\pi*\R*\C)}
\begin{semilogxaxis}[                             % <---
    width=\linewidth,height=6cm,                  % <---
    title=Laagdoorlaatfilter-verzwakking,
    title style = {at={(0.5,1.2)},font=\itshape}, % <---
    axis x line=top,                              % <---
    axis y line=left,                             % <---
    ymin=\dBmin, ymax=\dBmax,
    ylabel={$A_v$ (\si{\decibel})},               % <--- 
    ylabel style={at={(-0.07,0.5)}},              % <---
    ytick={\dBmin,\dBmin+3,...,\dBmax},           % <===
%   ytick={\dBmin,\numexpr\dBmin+3\relax,...,\dBmax}, % alternatively, 
    xlabel={$f$ (\si{\hertz})},
    xlabel style={at={(0.5,1.1)}},
%
    extra x tick style={% changes for x extra ticks % <===
        tick label style={font=\footnotesize,text=green!50!black}, % <===
        grid style={semithick,green},               % <===
                    },
    extra x ticks={1591},                           % <=== 
    extra x tick labels={1591},                     % <===
%
    grid=both,                                       
    minor y tick num=2,                             % <===
    domain=10:100000,                                  
    samples=100,
    no marks]
    \addplot[blue] {20*log10(1/sqrt(1+(2*\pi*\R*\C*x)^2))};
    \addplot[red]  {-3};
    \node[circle,fill, inner sep=1pt,
          pin=45:$f_c$] at (1591,-3) {};            % <===
  \end{semilogxaxis}
\end{tikzpicture}
\end{document}

Notiz:

  • tikzBibliotheken sollten immer in die Dokumentpräambel geladen werden
  • pgfplotsload tikz, es ist also nicht notwendig, es (/noch einmal) zu laden
  • Besser als das Skalieren eines Diagramms ist es, seine Breite vorzuschreiben, zum Beispiel so, dass sie gleich der Textbreite ist

verwandte Informationen