![ymode=log를 사용할 때 pgfplot이 제대로 작동하지 않습니다.](https://rvso.com/image/392336/ymode%3Dlog%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%A0%20%EB%95%8C%20pgfplot%EC%9D%B4%20%EC%A0%9C%EB%8C%80%EB%A1%9C%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
축이 규칙적이면 플롯이 제대로 작동합니다. y축이 로그 스케일로 변경되는 순간 플롯의 일부만 표시됩니다. 제공된 dat 파일에는 약 9000개의 포인트가 있습니다. 어떤 지원이라도 감사하겠습니다. 감사해요
\documentclass{standalone}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{verbatim}
\usetikzlibrary{decorations}
\usetikzlibrary{decorations.markings}
\usetikzlibrary{plotmarks}
\begin{document}
\begin{tikzpicture}
\begin{axis}[width=12cm,height=12cm,legend style={font=\scriptsize,draw=none,at={(0.825,0.9)},anchor=north},
xmin=0, xmax=10000,ymin=1e-8,ymax=1e4, xtick={
-3.14159,-1.5708,0,
1.5708, 3.14159},
xticklabels={
$-\pi$, $-\frac{\pi}{2}$,
$0$,$\frac{\pi}{2}$, $\pi$},ytick={1e-8,1e4},
xlabel={Non-dimensional wave vector, $\kappa$},
ylabel={Frequency, $\omega$, \SI{}{\radian\per\second}}, mark repeat={15},domain=-3.14:3.14, restrict y to domain = 1e-8: 1e4,
xmin=0, xmax=10000,
ymin = 1e-8, ymax = 1e4,ymode=log,log basis y=10]
\addplot [thick,color=blue] table{u_lmm.dat};
\end{axis}
\end{tikzpicture}
\end{document}
답변1
데이터 파일(일부)을 제공하지 않았거나 "잘못"/작동하지 않는 것을 설명하기 위해 이미지를 표시하지 않았기 때문에 코드를 컴파일할 수 없습니다. 그러므로 우리가 당신을 도울 수 있는 것은 아무것도 없습니다. 제공된 코드는 완벽하게 작동합니다 ...
% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{siunitx}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
width=12cm,
height=12cm,
xmin=0,
xmax=10000,
% (these `xticks` don't make much sense when `xmax=10000` ...)
xtick={-3.14159,-1.5708,0,1.5708,3.14159},
xticklabels={
$-\pi$, $-\frac{\pi}{2}$,
$0$,$\frac{\pi}{2}$, $\pi$
},
xlabel={Non-dimensional wave vector, $\kappa$},
ymode=log,
ymin=1e-8,
ymax=1e4,
ytick={1e-8,1e4},
ylabel={Frequency, $\omega$, \SI{}{\radian\per\second}},
]
% % (because you didn't provide any data ...
% \addplot [thick,color=blue] table{u_lmm.dat};
% ... I just tested with the min and max values of the axis)
\addplot coordinates { (0,1e-8) (10000,1e4) };
\end{axis}
\end{tikzpicture}
\end{document}