我已经看到了类似的解决方案这和这个(在问题部分),但它们不使用环境axis
中的子环境tikzpicture
。
如果我制作一个 2-D 图,则根据设置方式显示刻度、刻度标记和刻度间距,但只显示“实数”数字(如果要设置刻度标记,使所有刻度标记中都有 π)。我不介意这样做,因为 π 是一个实数常数。
对于虚数单位我(或者杰在工程界),我希望它能够出现自动地在虚轴上的刻度值。
以下是出于功能目的的 MWE:
\documentclass[12pt]{article}
\usepackage{pgfplots}
\usepackage{float}
\pgfplotsset{compat=1.17}
\usepackage{tikz}
\usetikzlibrary{shapes, arrows.meta, automata, positioning, matrix, calc}
\usepackage[RPvoltages, american,siunitx]{circuitikz}
\usepackage[margin=1in]{geometry}
\tikzset{block/.style={draw, rectangle,
minimum height=3em, minimum width=3em},
sum/.style={draw, circle, node distance=1cm},
input/.style={coordinate},
output/.style={coordinate},
pinstyle/.style={pin edge={to-,thin,black}}}
\begin{document}
\begin{figure}[H]\centering
\begin{tikzpicture}
\begin{axis}[
xmin=-20,xmax=5,
ymin=-5,ymax=5,
% ytick={-10, -5, 5, 10}, %when axis equal is set
% yticklabels={$-j10$, $-j5$, $j5$, $j10$},
ytick={-4, -2, 2, 4}, %when axis equal is not set
yticklabels={$-j4$, $-j2$, $j2$, $j4$},
axis lines=center,
axis line style=->, xlabel = {$\sigma$}, ylabel={$j\omega$},
%axis equal,
every axis y label/.style={at={(ticklabel* cs:1.05)},anchor=south},
every axis x label/.style={at={(ticklabel* cs:1.05)},anchor=west},
legend cell align={left},
legend pos=outer north east]
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}
输出(axis equal
未设置):
axis
有没有办法在子环境中进行设置,tikzpicture
使得当垂直刻度由于设置更改而自动调整时,杰将要自动地出现在数字的左边(如果数字为负数,则出现在减号的右边),还是出现在数字的右边?
答案1
\documentclass[border=1 cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
xmin=-20, xmax=5,
ymin=-5, ymax=5,
axis lines=center,
xlabel = {$\sigma$}, ylabel={$j\omega$},
every axis y label/.style={at={(ticklabel* cs:1.05)},anchor=south},
every axis x label/.style={at={(ticklabel* cs:1.05)},anchor=west},
yticklabel={$\pgfmathparse{\tick > 0 ? "j" : "-j"} \pgfmathresult \pgfmathparse{abs(\tick)} {\pgfmathprintnumber{\pgfmathresult}}$},
%yticklabel={$\pgfmathprintnumber{\tick} j$}, %This is for j to appear on the right side of the number instead of the left
]
\end{axis}
\end{tikzpicture}
\end{document}