我认为这个问题说明了一切。我想要两个不同的颜色的额外 x 刻度标签。我想使用循环命令,但我不知道它应该如何工作。我使用
every extra x tick/.style={xticklabel style={color=red}},
并且需要 xticklabel 命令来正确对齐标签(基本上使用 anchor=north)。
以下是 MWE (或 MNWE):
\documentclass{scrreprt}
\usepackage{tikz,pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
every extra x tick/.style={grid=none, xticklabel
style={anchor=north, color=red}},
extra x ticks ={0.5,1.5},
extra x tick labels={$s_l$,$s_r$},
]
\addplot (x,x);
\end{axis}
\end{tikzpicture}
\end{document}
答案1
一种可能性是编写一种依赖于的样式\ticknum
。在刻度标签排版中,此宏计算当前刻度索引(从 0 开始)。我们可以(本地)定义包含此索引的颜色名称 - 并在刻度标签样式中使用这些索引颜色:
\documentclass{standalone}
\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
every extra x tick/.style={
grid=none,
tick0/.initial=red,
tick1/.initial=green,
tick2/.initial=orange,
xticklabel style={
anchor=north,
color=\pgfkeysvalueof{/pgfplots/tick\ticknum},
},
},
extra x ticks ={0.5,1.5,3},
extra x tick labels={$s_l$,$s_r$,qr},
]
\addplot (x,x);
\end{axis}
\end{tikzpicture}
\end{document}
代码<key>/.initial=<value>
指示\pgfkeys
定义一个名称为 的新(临时)键并为其<key>
分配值。我们可以简单地用 读取该值。 允许在 内使用宏;它们将被扩展。当然,与 结合也可以。<value>
\pgfkeysvalueof{/pgfplots/<key>}
<key>
\declarecolor{tick0}{...}
color=tick\ticknum
如果颜色太少,代码就会抱怨。