TikZ 中包含用户定义颜色图的问题

TikZ 中包含用户定义颜色图的问题

我在 TikZ 方面遇到了一个小问题,我无法弄清楚。我在 MATLAB 中生成了一些 TikZ 代码(使用 matlab2tikz),显示了带有用户定义颜色图和相应颜色条的图像。图像导出为 .png,但鉴于颜色条是在 TikZ 中创建的,我需要相应地为其着色(定义新的颜色图)。我简化了代码以获得 MWE,它的内容如下(我用一个简单的颜色图替换了用户定义的颜色图):

\documentclass[11pt,twoside,a4paper]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\usepackage{tikz}                       %inline graphics
\usetikzlibrary{plotmarks,external}   
\begin{document}

\begin{tikzpicture}

\begin{axis}[width=\textwidth,height=4cm,axis on top,scale only axis,
xmin=0,xmax=5,xlabel={myxlabel},ymin=0,ymax=4000,
colorbar,
colormap ={mymap}{rgb(0pt)=(0,1,1); rgb(63pt)=(1,0,1)},
ylabel={myylabel}
]
\end{axis}
\end{tikzpicture}%
\end{document}

这很好用,但考虑到我的颜色图有两种以上的颜色定义,我认为将其保存在单独的 .tex 文件中,比如 mycmap.tex,是个好主意

colormap ={mymap}{\input{mycmap}},

但是,如果我这样做,它不起作用...我尝试将其保存为 .txt 文件而不是 .tex,但仍然没有成功。有什么想法可以解决它吗?

提前致谢! ;)

答案1

我不知道为什么,但选择少于 64 种颜色的色彩图对我来说是有效的。

答案2

您可以在外部文件中定义一个宏,如下面的代码所示(filecontents用于创建外部文件的包和环境):

\documentclass[11pt,twoside,a4paper]{article}

\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\pgfplotsset{plot coordinates/math parser=false}
\usepackage{tikz}                       %inline graphics
\usetikzlibrary{plotmarks,external}

%% creation of external colormap
\usepackage{filecontents}
\begin{filecontents*}{\jobname-external-colormap}
\def\mycolormap{rgb(0pt)=(0,1,1); rgb(63pt)=(1,0,1)}
\end{filecontents*}
%%

\input{\jobname-external-colormap}

\begin{document}
\begin{tikzpicture}

\begin{axis}[width=\textwidth,height=4cm,axis on top,scale only axis,
xmin=0,xmax=5,xlabel={myxlabel},ymin=0,ymax=4000,
colorbar,
colormap ={mymap}{\mycolormap},
ylabel={myylabel}
]
\end{axis}
\end{tikzpicture}
\end{document}

相关内容