我不明白为什么图 (a) 没有显示填充区域,而图 (b) 却显示。
PGF 报告以下警告:
包 pgf 警告:填充跳过:第一个输入路径为空。在输入行 20。
这是我的代码:
\documentclass{article}
\usepackage[labelformat=simple]{subcaption}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.14}
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[t]{0.5\textwidth}
\begin{tikzpicture}
\begin{axis}[try min ticks=6]
\addplot[blue, name path=A] table{tab1.dat};
\addplot[red, dashed, name path=B] table{tab2.dat};
\addplot[orange] fill between[of=A and B, soft clip={domain=0:10}];
\end{axis}
\end{tikzpicture}
\caption{}
\end{subfigure}%
~~%
\begin{subfigure}[t]{0.5\textwidth}
\begin{tikzpicture}[yscale=1.0, xscale=1.0]
\begin{axis}[try min ticks=6]
\addplot[blue, name path=A] table{tab3.dat};
\addplot[red,dashed, name path=B] table{tab2.dat};
\addplot[orange] fill between[of=A and B, soft clip={domain=0:10}];
\end{axis}
\end{tikzpicture}
\caption{}
\end{subfigure}
\end{figure}
\end{document}
谁能帮帮我吗?
答案1
我不知道为什么,但似乎soft clip
对缩放(或其他东西)很敏感。例如,如果您删除的前 70 个数据点tab1.dat
,或设置xmin=-28
,它可以正常工作。
当然,这些都不是解决方案,但你可以将 增加到width
。8cm
至少在这里这样可以。
\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=8cm,compat=1.14} %% <-- 8cm here
\usepgfplotslibrary{fillbetween}
\begin{document}
\begin{tikzpicture}
\begin{axis}[try min ticks=6]
\addplot[blue, name path=A] table{tab1.dat};
\addplot[red, dashed, name path=B] table{tab2.dat};
\addplot[orange] fill between[of=A and B, soft clip={domain=0:10}];
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}[yscale=1.0, xscale=1.0]
\begin{axis}[try min ticks=6]
\addplot[blue, name path=A] table{tab3.dat};
\addplot[red,dashed, name path=B] table{tab2.dat};
\addplot[orange] fill between[of=A and B, soft clip={domain=0:10}];
\end{axis}
\end{tikzpicture}
\end{document}
答案2
这漏洞已在刚刚发布的 PGFPlots v1.16 中修复。
因此,您的 MWE 现在可以按预期工作。