是否可以为两个额外的 x-tick 标签分配不同的颜色?

是否可以为两个额外的 x-tick 标签分配不同的颜色?

我认为这个问题说明了一切。我想要两个不同的颜色的额外 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

如果颜色太少,代码就会抱怨。

相关内容