如何根据额外的刻度颜色改变额外网格线的颜色

如何根据额外的刻度颜色改变额外网格线的颜色

我的问题类似于是否可以为两个额外的 x-tick 标签分配不同的颜色?,所以我只是从那里获取了代码。除了额外的 x 刻度的不同颜色外,我还想相应地更改水平网格线的颜色。

\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},
        },
        grid,
        grid style={densely dashed,line width=0.6pt,color=red}
    },
    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}

答案1

对网格颜色样式的唯一内置支持是 x、y、z 网格线、主/次网格线之间的区别,以及额外刻度的相同选择。

没有内置对单独样式的网格线的支持。

您可能需要使用自定义\draw命令来绘制特殊的网格线,也许需要与分层图形结合以确保它们与网格线位于同一层(另请参阅extra description在剪切区域外绘制东西的键)。

请注意,刻度标签是 tikz 节点,并xticklabel style针对每个节点重新评估 - 这使得它不同于仅评估一次颜色的网格线。

相关内容