我希望下面第一张图片中颜色图的刻度显示数据的最大值和最小值,如第二张图片中所示,在本例中为 1.35 和 -0.26。我知道我可以通过取消注释包含 的行来实现这一点
extra y ticks=...
,但我想自动完成。我拥有的:
我想要的(自动):
我希望只在最小值和最大值的小数点后显示一个整数(在本例中为 1.3 和 -0.2)。但这并不重要,因为我可以在 Matlab 中对我的数据进行四舍五入,但我想避免这种情况。
\documentclass{article} \usepackage{tikz,pgfplots} \pgfplotsset{compat=1.13} \usepgfplotslibrary{patchplots} \begin{document} \begin{tikzpicture} \begin{axis}[ small, view={0}{90}, colorbar, colorbar style={ %extra y ticks={-0.26,1.35} } ] \addplot3[surf,shader=interp,patch type=bilinear] coordinates { (0,0,-0.26) (1,0,0) (0,1,0) (1,1,1.35) }; \end{axis} \end{tikzpicture} \end{document}
编辑:
在实际应用中,我从 matlab 导入数据,因此简单地定义一个变量(在此示例中可能是半自动解决方案)是不可能的。
答案1
\pgfkeysvalueof{/pgfplots/ymin}
您可以使用和获取最小值和最大值\pgfkeysvalueof{/pgfplots/ymax}}
我只有 TL 2015,所以我需要1.12
,但我不明白为什么这在1.13
\documentclass{article}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.12}
\usepgfplotslibrary{patchplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
small,
view={0}{90},
colorbar,
colorbar style={
extra y ticks={\pgfkeysvalueof{/pgfplots/ymin},\pgfkeysvalueof{/pgfplots/ymax}}
}
]
\addplot3[surf,shader=interp,patch type=bilinear]
coordinates {
(0,0,-0.26) (1,0,0)
(0,1,0) (1,1,1.35)
};
\end{axis}
\end{tikzpicture}
\end{document}