如何结合 pgfplots 和 colormap 来绘制线图

如何结合 pgfplots 和 colormap 来绘制线图

我的代码到目前为止

\usepgfplotslibrary{colormaps}
\usetikzlibrary{pgfplots.colormaps}
\pgfplotsset{compat=1.9}
\pgfplotsset{
/pgfplots/colormap={bright}{rgb255=(0,0,0) rgb255=(78,3,100) rgb255=(2,74,255)
    rgb255=(255,21,181) rgb255=(255,113,26) rgb255=(147,213,114) rgb255=(230,255,0)
    rgb255=(255,255,255)}

我刚刚从手册中复制了这段代码。但是我现在该如何告诉我的绘图使用此颜色图呢?

\begin{figure}
\centering
\begin{tikzpicture}
\pgfplotstableread{Plots/dat.txt} \datA
\begin{axis}[
axis y line*=left,
axis x line*=top,
ylabel near ticks,
xlabel near ticks,
xlabel=Current in A,
ylabel=Voltage in V,
every x tick label/.append style = {font=\footnotesize},
every y tick label/.append style = {font=\footnotesize},
]
\addplot [mark=none] table [x index = 0, y index = 1] from \datA ; % ,
\end{axis}
\end{tikzpicture}
\end{figure}

情节创建正确,但所有线条都是黑色。

答案1

当你执行 时\addplot [mark=none] ...,效果是mark=none完全覆盖活动 给出的任何样式cycle list。这意味着反过来使用 TikZ 的默认线条样式,这只是一条黑线。你想要\addplot +[mark=none],其中+表示mark=none附加到循环列表给出的样式。

但这只是答案的一部分。在您展示的代码中,您只定义了一个color map,您实际上并没有使用它。添加colormap name=brightaxis选项中以激活它。但不会colormap直接影响线图的样式,为了从colormap线图中挑选颜色,例如添加cycle list={[of colormap]}axis选项中。由于bright您定义的地图有八种颜色,因此此循环列表也将获得八种颜色。

如果您想要从 中获得给定数量的等距样本colormap,则可以使用 egcycle list={[samples of colormap={20} of bright]}获取 20 个样本(在这种情况下您不必指定colormap=bright)。您还可以使用 eg 获取非等距样本cycle list={[colors of colormap={0,300,600,1000}]}。您提供 0 到 1000 之间的值列表,其中 0 是地图的起点,1000 是终点。

所有这些colormap内容都在手册的末尾cycle list进行了描述,pgfplots4.7.7 循环列表——控制线型的选项pgfplots,第 219 页。 (在2018-3-28 版本的 1.16 版手册中。)

在此处输入图片描述

\documentclass{scrartcl}
\usepackage{pgfplots}
\usepgfplotslibrary{colormaps} 
\pgfplotsset{compat=1.9}
\pgfplotsset{
colormap={bright}{rgb255=(0,0,0) rgb255=(78,3,100) rgb255=(2,74,255)
    rgb255=(255,21,181) rgb255=(255,113,26) rgb255=(147,213,114) rgb255=(230,255,0)
    rgb255=(255,255,255)}
}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
axis y line*=left,
axis x line*=top,
ylabel near ticks,
xlabel near ticks,
xlabel=Current in A,
ylabel=Voltage in V,
every x tick label/.append style = {font=\footnotesize},
every y tick label/.append style = {font=\footnotesize},
colormap name=bright, % activate the defined colormap
cycle list={[of colormap]},
every axis plot/.append style={mark=none,ultra thick} % set options for all plots
]
\addplot {x};
\addplot {x+1};
\addplot {x+2};
\addplot {x+3};
\addplot {x+4};
\addplot {x+5};
\addplot {x+6};
\addplot {x+7}; % white, so not visible
\end{axis}
\end{tikzpicture}
\end{figure}
\end{document}

相关内容