我正在使用 tikz 在 xy 平面上绘制图形,但是当我将 y 轴模式更改为对数刻度时,我遇到了“尺寸太大”的错误。我在这个网站上搜索过,但其他与我无关的操作也出现了同样的错误。有什么帮助吗?
\begin{tikzpicture}
\begin{axis}[%
width=7.607cm,
height=7cm,
at={(0cm,0cm)},
scale only axis,
xmin=10,
xmax=40,
xlabel={EbNo (dB)},
xmajorgrids,
ymode=log,
ymin=0.99,
ymax=1,
yminorticks=true,
ylabel={Probability},
ymajorgrids,
yminorgrids,
axis background/.style={fill=white},
legend style={at={(0.688,0.157)},anchor=south west,legend cell align=left,align=left,draw=white!15!black,font=\scriptsize}
]
\addplot [color=blue,solid,mark=asterisk,mark options={solid}]
table[row sep=crcr]{%
40 0.998700013\\
38 0.99866668\\
36 0.99866668\\
34 0.998633347\\
32 0.998633347\\
30 0.998566681\\
28 0.998466682\\
26 0.998433349\\
24 0.99833335\\
22 0.998200018\\
20 0.997966687\\
18 0.997233361\\
16 0.996500035\\
14 0.99500005\\
12 0.991966747\\
10 0.984600152\\
8 0.969133622000001\\
6 0.938833844\\
4 0.872634182999999\\
2 0.757800972000009\\
};
\addlegendentry{var 3/64};
\addplot [color=red,solid,mark=triangle,mark options={solid,rotate=90}]
table[row sep=crcr]{%
40 0.998166685\\
38 0.998166685\\
36 0.998166685\\
34 0.998166685\\
32 0.998166685\\
30 0.998166685\\
28 0.998166685\\
26 0.998133352\\
24 0.998100019\\
22 0.997933354\\
20 0.997633357\\
18 0.997200028\\
16 0.996533368\\
14 0.994833384\\
12 0.992300075\\
10 0.984833477\\
8 0.971600263\\
6 0.941933826\\
4 0.880234148999998\\
2 0.763934322000008\\
};
\addlegendentry{fix 3/64};
\end{axis}
\end{tikzpicture}
答案1
您在 中遇到了内部限制pgfplots
:使用对数刻度时轴范围不得变得“太小”(不幸的是,它没有报告已达到限制)。如果您认为应该添加此功能,可以提交功能请求。
为了使@percusse 的想法得以实现,您可以修改ymin
和log plot exponent style
:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
width=7.607cm,
height=7cm,
at={(0cm,0cm)},
scale only axis,
xmin=10,
xmax=40,
xlabel={EbNo (dB)},
xmajorgrids,
ymode=log,
ymin=0.98,
ymax=1,
log plot exponent style/.append style={/pgf/number format/precision=4},
yminorticks=true,
ylabel={Probability},
ymajorgrids,
yminorgrids,
axis background/.style={fill=white},
legend style={at={(0.688,0.157)},anchor=south west,legend cell align=left,align=left,draw=white!15!black,font=\scriptsize}
]
\addplot [color=blue,solid,mark=asterisk,mark options={solid}]
table[row sep=crcr]{%
40 0.998700013\\
38 0.99866668\\
36 0.99866668\\
34 0.998633347\\
32 0.998633347\\
30 0.998566681\\
28 0.998466682\\
26 0.998433349\\
24 0.99833335\\
22 0.998200018\\
20 0.997966687\\
18 0.997233361\\
16 0.996500035\\
14 0.99500005\\
12 0.991966747\\
10 0.984600152\\
8 0.969133622000001\\
6 0.938833844\\
4 0.872634182999999\\
2 0.757800972000009\\
};
\addlegendentry{var 3/64};
\addplot [color=red,solid,mark=triangle,mark options={solid,rotate=90}]
table[row sep=crcr]{%
40 0.998166685\\
38 0.998166685\\
36 0.998166685\\
34 0.998166685\\
32 0.998166685\\
30 0.998166685\\
28 0.998166685\\
26 0.998133352\\
24 0.998100019\\
22 0.997933354\\
20 0.997633357\\
18 0.997200028\\
16 0.996533368\\
14 0.994833384\\
12 0.992300075\\
10 0.984833477\\
8 0.971600263\\
6 0.941933826\\
4 0.880234148999998\\
2 0.763934322000008\\
};
\addlegendentry{fix 3/64};
\end{axis}
\end{tikzpicture}
\end{document}