正如标题所说,我想制作一个垂直彩条,以对数刻度显示开尔文温度,右侧有常规刻度,左侧有一些自定义刻度(即底部为绝对零度,冰的熔点为 273)。
我让基本颜色条正常工作,但刻度从 1 到 -1,而不是从 10^9 到 -10^9。我也不知道如何在另一侧添加自定义刻度。
梅威瑟:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[scale only axis, hide axis, height=0em, width=0em, colormap/jet,
colorbar horizontal, point meta min=-1000000000, point meta max=1000000000,
colorbar style={width=.8\textheight, rotate=90, % xtick={1000000000,100000000,...,-1000000000}, % This gives me 'Dimesion too large' errors
}]
\addplot [draw=none] coordinates {(0,0)};
\end{axis}
\end{tikzpicture}
\end{document}
答案1
我承认我有几个问题可能表明我没有理解/考虑过你的问题(例如,你想如何在对数刻度上显示 -1*10^9?或者你的意思是 10^-9?你真的是指对数刻度还是你只是想要“大数字”?为什么你使用colorbar horizontal
90 度旋转?)。无论如何,我倾向于不去思考这些问题,而是给你一些提示,这些提示(希望)能帮助你自己解决剩下的问题:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
scale only axis,
hide axis,
colormap/jet,
colorbar,
point meta min=-1000000000, point meta max=1000000000,
colorbar style={
scaled ticks=false,
extra y ticks={-1e9,1e9},
extra y tick labels={$0$,Warm},
extra y tick style={
yticklabel pos=left,
red,
},
%ymode=log,
%ytick={-1e9,-1e8,-1e7},
}]
\end{axis}
\end{tikzpicture}
\end{document}
如果您想要对数轴,请使用
ymode=log
。这不会影响阴影,只会影响标签在其上的绘制方式。请注意,这不适用于负值(自然),您还需要采用point meta min
。ytick 仍然原生使用 PGF,但不幸的是,它不支持大数字。这是 pgfplots 的一个弱点,最终会得到解决。目前,您必须手动扩展“...”以处理大数字。
您的图像没有显示 -1 ... 1;它显示 -1 *10^9 ... +1 *10^9 (参见
tick scale label
底部的小图。用于scaled ticks=false
禁用刻度缩放。可以使用
extra y ticks
及其变体添加额外的刻度。该示例应该会为您提供一些文档指导。考虑
\pgfplotsset{compat=1.12}
在序言中使用或更新。在这种情况下,它会缩小图形的边界框。这个键通常是一种很好的做法。