使用 PGFPlots 的 groupplot 库,命令 \nextgroupplot 可以采用 \begin{axis} 过去采用的参数。因此,为其提供选项“ymode=log”应该可以有效地使该图成为 semilogyaxis 图。但是,当我这样做时,我确实会收到错误:
缺失数字,视为零。
这很奇怪,因为如果我给它 xmode=log 它就可以正常工作(尽管给出了一个空的图)。
最小运行示例如下:
\documentclass[11pt]{article}
\usepackage[utf8x]{inputenc}
\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}[scale=0.6]
\begin{groupplot}[ group style={group name=my plots, group size=2 by 1}, ymax=1, restrict y to domain=0:1]
\nextgroupplot[ymode=log]%
\addplot+[domain=0:6,mark=o,smooth,samples=20] {2^(-1)*exp(x)};%
\addplot+[domain=0:6,mark=square,smooth,samples=20] {1-((1-2^(-1))/exp(x))};%
\nextgroupplot%
\addplot+[domain=0:6,mark=o,smooth,samples=20] {2^(-3)*exp(x)};%
\addplot+[domain=0:6,mark=square,smooth,samples=20] {1-((1-2^(-3))/exp(x))};%
\end{groupplot}
\end{tikzpicture}
\end{document}
这些方程式过去通常绘制在半逻辑轴上,但我希望它们绘制在群图中。因此函数域等不应该是问题。
答案1
您不能限制域名是轴。对数未定义为零。以下内容对我有用。
\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\begin{document}
\begin{tikzpicture}[scale=0.6]
\begin{groupplot}[%
group style={%
group name={my plots},
group size=2 by 1
},
ymax=1,
% restrict y to domain=0:1 % <<<<< This is not allowed
]
\nextgroupplot[ymode=log]%
\addplot+[domain=0:6,mark=o,smooth,samples=20] {2^(-1)*exp(x)};%
\addplot+[domain=0:6,mark=square,smooth,samples=20] {1-((1-2^(-1))/exp(x))};%
\nextgroupplot%
\addplot+[domain=0:6,mark=o,smooth,samples=20] {2^(-3)*exp(x)};%
\addplot+[domain=0:6,mark=square,smooth,samples=20] {1-((1-2^(-3))/exp(x))};%
\end{groupplot}
\end{tikzpicture}
\end{document}