这是先前帖子。我的目标是制作一个使用元数据来着色/阴影数据点的图。我很难理解的是颜色图是如何应用于元范围内的最大/最小值的。正如您从下面的 MWE 中看到的那样,具有 $\Pi_2 = 0$ 的点被涂成蓝色,而我期望的是黑色,因为我使用的是 hot2 颜色图。有人能告诉我这是怎么回事吗?
谢谢!
\documentclass[margin=5pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{filecontents*}{mydata.dat}
C P1 P2 P3 sigP3
1 1.12E-4 0.06189 0.1865 0.0080
1 6.03E-3 0.00000 0.2517 0.0046
1 2.64E-2 0.00000 0.2247 0.0165
2 6.49E-5 0.00000 0.1906 0.0043
2 1.27E-5 0.00296 0.2120 0.0039
2 3.34E-4 0.00865 0.1709 0.0050
3 1.59E-2 0.01857 0.1596 0.0216
3 7.10E-4 0.01857 0.2547 0.0316
3 3.23E-5 0.00526 0.1557 0.0051
3 2.33E-4 0.01857 0.2008 0.0136
3 5.80E-4 0.01857 0.2389 0.0172
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{semilogxaxis}[
width=12cm,height=8cm,
xlabel={$\Pi_1$},
ylabel={$\Pi_3$},
ymin=0.1,ymax=0.35,
xmin=1E-5,xmax=1E-1,
log basis x=10,
colorbar,
colorbar style={
colormap/hot2,
xshift=-1.5em,
ylabel={$\Pi_2$},
scaled ticks=false,
yticklabel style={
font=\footnotesize,
/pgf/number format/fixed,
/pgf/number format/fixed zerofill,
/pgf/number format/precision=2,
},
},
]
\addplot+[
scatter,scatter src=explicit,mark=*,only marks,
error bars/.cd,y dir=both,y explicit,error bar style={black}
]
table[x=P1,y=P3,y error=sigP3,meta=P2,
restrict expr to domain={\thisrow{C}}{1:1}
]{mydata.dat};
\addlegendentry{Cond. 1}
\addplot+[
scatter,scatter src=explicit,mark=square*,only marks,
error bars/.cd,y dir=both,y explicit,error bar style={black}
]
table[x=P1,y=P3,y error=sigP3,meta=P2,
restrict expr to domain={\thisrow{C}}{2:2}
]{mydata.dat};
\addlegendentry{Cond. 2}
\addplot+[
scatter,scatter src=explicit,mark=triangle*,only marks,
error bars/.cd,y dir=both,y explicit,error bar style={black}
]
table[x=P1,y=P3,y error=sigP3,meta=P2,
restrict expr to domain={\thisrow{C}}{3:3}
]{mydata.dat};
\addlegendentry{Cond. 3}
\end{semilogxaxis}
\end{tikzpicture}
\end{document}