PGFPLOTS 颜色图问题

PGFPLOTS 颜色图问题

我观察到我的色彩图上出现了一些奇怪的行为。以下是最低限度的工作代码示例:

\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
    colormap={parula}{[1pt] rgb255(0pt)=(53,42,135); rgb255(1pt)=(15,92,221); rgb255(2pt)=(18,125,216); rgb255(3pt)=(7,156,207); rgb255(4pt)=(21,177,180); rgb255(5pt)=(89,189,140); rgb255(6pt)=(165,190,107); rgb255(7pt)=(225,185,82); rgb255(8pt)=(252,206,46); rgb255(9pt)=(249,251,14)}, % BROKEN
    %colormap={parula}{ rgb255=(53,42,135); rgb255=(15,92,221); rgb255=(18,125,216); rgb255=(7,156,207); rgb255=(21,177,180); rgb255=(89,189,140); rgb255=(165,190,107); rgb255=(225,185,82); rgb255=(252,206,46); rgb255=(249,251,14)}, % FIXED
    }
\begin{document}
    \begin{tikzpicture}
        \begin{axis}[
            colormap access=piecewise const,
            colorbar horizontal,
            colorbar sampled,
            colorbar style={samples=11},
            point meta min=0,
            point meta max=1,
        ]
        \end{axis}
    \end{tikzpicture}
\end{document}

这会产生以下颜色条: 糟糕的结果 问题是第五种颜色重复了两次(在第六个位置重复),而第十种颜色根本没有显示。

现在,我发现我实际上有一个修复方法,即用第 5 行注释掉的行替换第 4 行代码。主要区别在于不包含每种颜色的 pt 规范。以下是更正后的结果: 好结果

所以,我的问题是,为什么我在使用包含每种颜色的 pt 规范的代码时会出现不良行为?您可能想知道,如果我已经有了修复,我为什么还要关心这个问题。原因是我使用的是 Matlab2Tikz,它输出的颜色图包含 pt 规范,他们似乎对此非常谨慎。所以我有几个选择:(1) 使用上面显示的修复从 matlab2tikz 获取输出后修复我的颜色图,(2) 更改 matlab2tikz 脚本以正确执行,(3) 更好的选择?

在采取行动之前,我只是想了解我所看到的问题的根本原因。用户错误?Matlab2Tikz 有错误?PGFPLOTS 有错误?等等?

答案1

似乎缺少最终值,以下给出了所需的结果(上述)

 \documentclass[border=5pt]{standalone}
 \usepackage{pgfplots}
        \pgfplotsset{
        colormap={parula}{[1pt] rgb255(0pt)=(53,42,135); rgb255(1pt)=(15,92,221); rgb255(2pt)=(18,125,216); rgb255(3pt)=(7,156,207); rgb255(4pt)=(21,177,180); rgb255(5pt)=(89,189,140); rgb255(6pt)=(165,190,107); rgb255(7pt)=(225,185,82); rgb255(8pt)=(252,206,46); rgb255(9pt)=(249,251,14); rgb255(10pt)=(255,255,0)}, % NOT BROKEN
        %colormap={parula}{ rgb255=(53,42,135); rgb255=(15,92,221); rgb255=(18,125,216); rgb255=(7,156,207); rgb255=(21,177,180); rgb255=(89,189,140); rgb255=(165,190,107); rgb255=(225,185,82); rgb255=(252,206,46); rgb255=(249,251,14)}, % FIXED
        }
    \begin{document}
        \begin{tikzpicture}
            \begin{axis}[
                colormap access=piecewise const,
                colorbar horizontal,
                colorbar sampled,
                colorbar style={samples=11},
                point meta min=0,
                point meta max=1,
            ]
            \end{axis}
        \end{tikzpicture}
    \end{document}

相关内容