This happens because PGFPlots only uses one "stack" per axis: You're stacking the second confidence interval on top of the first. The easiest way to fix this is probably to use the approach described in "Is there an easy way of using line thickness as error indicator in a plot?": After plotting the first confidence interval, stack the upper bound on top again, using stack dir=minus
. That way, the stack will be reset to zero, and you can draw the second confidence interval in the same fashion as the first:
\documentclass{standalone}
\usepackage{pgfplots, tikz}
\usepackage{pgfplotstable}
\pgfplotstableread{
temps y_h y_h__inf y_h__sup y_f y_f__inf y_f__sup
1 0.237340 0.135170 0.339511 0.237653 0.135482 0.339823
2 0.561320 0.422007 0.700633 0.165871 0.026558 0.305184
3 0.694760 0.534205 0.855314 0.074856 -0.085698 0.235411
4 0.728306 0.560179 0.896432 0.003361 -0.164765 0.171487
5 0.711710 0.544944 0.878477 -0.044582 -0.211349 0.122184
6 0.671241 0.511191 0.831291 -0.073347 -0.233397 0.086703
7 0.621177 0.471219 0.771135 -0.088418 -0.238376 0.061540
8 0.569354 0.431826 0.706882 -0.094382 -0.231910 0.043146
9 0.519973 0.396571 0.643376 -0.094619 -0.218022 0.028783
10 0.475121 0.366990 0.583251 -0.091467 -0.199598 0.016664
}{\table}
\begin{document}
\begin{tikzpicture}
\begin{axis}
% y_h confidence interval
\addplot [stack plots=y, fill=none, draw=none, forget plot] table [x=temps, y=y_h__inf] {\table} \closedcycle;
\addplot [stack plots=y, fill=gray!50, opacity=0.4, draw opacity=0, area legend] table [x=temps, y expr=\thisrow{y_h__sup}-\thisrow{y_h__inf}] {\table} \closedcycle;
% subtract the upper bound so our stack is back at zero
\addplot [stack plots=y, stack dir=minus, forget plot, draw=none] table [x=temps, y=y_h__sup] {\table};
% y_f confidence interval
\addplot [stack plots=y, fill=none, draw=none, forget plot] table [x=temps, y=y_f__inf] {\table} \closedcycle;
\addplot [stack plots=y, fill=gray!50, opacity=0.4, draw opacity=0, area legend] table [x=temps, y expr=\thisrow{y_f__sup}-\thisrow{y_f__inf}] {\table} \closedcycle;
% the line plots (y_h and y_f)
\addplot [stack plots=false, very thick,smooth,blue] table [x=temps, y=y_h] {\table};
\addplot [stack plots=false, very thick,smooth,blue] table [x=temps, y=y_f] {\table};
\end{axis}
\end{tikzpicture}
\end{document}
As user of the pgfplots
software, I do not want to risk that a package update leads to a different outcome of my existing images. Consequently, I would like to have an opportunity to "preserve" my output even if the package author decides to change something for "new" documents. The alternative would be to browse through entire documents to see if any "obvious" change has occurred. I expect that such changes do not happen, even if an isolated view on the image clearly confirms that a change was caused by a bugfix.
On the other hand, I as author of pgfplots
need the freedom to make changes to the software, either because of new features or in order to fix bugs. I have an interest in maintaining existing workarounds created by users, either those derived because pgfplots
lacked support for something or because pgfplots
had a bug. A package update should not invalidate old work-arounds, but it should provide a fix for all those users who "started a document from scratch".
Choosing a suitable \pgfplotsset{compat=<version>}
flag is a solution which addresses both use-cases, and the fact that pgfplots
suggests a suitable value for <version>
should make it simpler to choose it.
However, the choice compat=newest
spoils both use-cases: both suffer seriously.
There may be a scenario in which backwards compatibility is of minor importance - this is where compat=newest
has a use-case. Personally, I do not know what the use-case might be. The choice compat=newest
means "I do not care if my old figures change in appearance after the next version upgrade".
Best Answer
The
compat
number refers to version numbers for thepgfplots
package. By setting thecompat
you tellpgfplots
to use settings/features from that specific version.If
1.15
doesn't work, that means you don't have version 1.15 ofpgfplots
installed. Thecompat
setting can not look into the future.Just use
1.13
, or possibly try1.14
.If you want to update
pgfplots
, you might be able to use the TeX Live Utility to do that, see How do I update my TeX distribution?, assuming you're using MacTeX.