我正在尝试使用它pgfplots
创建一个具有 3 个变量的二维图,其中第三个变量被绘制为颜色渐变。
\begin{tikzpicture}[scale=0.75]
\begin{axis}[xlabel=Selta,ylabel={Hitastig $[\si{\celsius}]$},colorbar,colormap/greenyellow]
\addplot[mesh,ultra thick]
table[x=S,y=POT_T,z=DB, col sep=semicolon]{287.csv};
\legend{Stöð 287}
\end{axis}
\end{tikzpicture}
我已经查看了 pgfplots 手册,但是不知何故我忽略了如何将 z 变量绘制为颜色渐变,此代码自动假定要绘制 y 变量。
似乎总是存在这样的问题,这些问题很容易被忽视,所以我希望这些问题能很快得到解决。
提前致谢 :)。
编辑:
虽然我找到了这个特定问题的答案,但还有另一个非常相关的问题我希望得到答案,如果这应该是一个单独的问题,请纠正我。
我想反转颜色条,并发现这样做的代码是放入colorbar style={z dir=reverse}
轴选项中。但根据之前的答案,我不能使用 z 作为变量名(或者我可以吗?)并且pgfplots
不接受 colorbar style={point meta dir=reverse}
。
如何实现这一点,或者如何以一种让你反转颜色条的方式回答前面的问题?
答案1
补充您的答案:您可以通过旋转颜色条并将标签放在另一侧来“伪造”反转的颜色条。颜色条本质上是另一个轴,因此可以使用普通轴的所有样式。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}[scale=0.75]
\begin{axis}[colorbar,colormap/cool,
colorbar style={xshift=1cm,
yticklabel pos=left,
yticklabel style={anchor=west},
rotate=180}]
\addplot[scatter,point meta=explicit,ultra thick,point meta min={1}, point meta max={700}]
table[x=S,y=POT_T, meta=DB, col sep=semicolon]{
S;POT_T;DB
0;0;650
1;0.5;400
2;2;150
};
\end{axis}
\end{tikzpicture}
\end{document}
答案2
关于反转颜色条:Jake 的回答在这里相当不错,但您也可以使用相同的论点,但使用更“内置”的键:您还可以提供-- 它应该会自动调整所有剩余的内容。也许应该添加colorbar style={y dir=reverse}
更直观的键。point meta dir=reverse
请记住,这需要\pgfplotsset{compat=1.3}
或更新版本。
答案3
这回答了问题的原始部分:
我终于知道该怎么做了。似乎我必须命名第三个变量meta
并添加meta point=explicit
到addplot
选项中。我还看到可以通过添加和将自己的范围添加到颜色栏,point meta min={value}
并point meta max={value}
得到类似以下代码的内容
\begin{tikzpicture}[scale=0.75]
\begin{axis}[xlabel=Selta,ylabel={Hitastig $[\si{\celsius}]$},colorbar,colormap/cool]
\addplot[scatter,point meta=explicit,ultra thick,point meta min={1}, point meta max={700}]
table[x=S,y=POT_T, meta=DB, col sep=semicolon]{287.csv};
\legend{Stöð 287}
\end{axis}
\end{tikzpicture}
PS 当你最终找到答案时,这样回答你自己的问题可以吗?