
Ich habe dies tikzpicture
/ pgfplot
(siehe unten). Ich habe ein paar Fragen dazu.
- Wie setzen Sie dieX-Labels (10 1 , 10 2 usw.) oben auf demX-Achse?
- Wie zeigen Sie diej-Achse nach unten (der Pfeil unten)?
- Wie platziert man eineX-Beschriftung an der grünen Vertikale (bei 1591 Hz)?
- 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)?
- Wie platzieren Sie mit den zusätzlichen Häkchen aus der vorherigen Frage Gitternetzlinien daneben?
- Ist es möglich, an der Kreuzung Rot-Grün einen Punkt oder ein Kreuz zu setzen?
- Kann ich auch einen Pfeil mit einer Textbeschriftung auf diesen Schnittpunkt setzen?
- 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}
Antwort1
bearbeiten: wie diese (löste fast alle Ihre Fragen ...)?
(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:
tikz
Bibliotheken sollten immer in die Dokumentpräambel geladen werdenpgfplots
loadtikz
, 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