pgfplot:2D,线条颜色取决于另一个值

pgfplot:2D,线条颜色取决于另一个值

我想创建一个包含多条线的二维图。

其中一条线取决于第三维中的附加值。现在我想根据第三个值来设置这条“3d 线”的线条颜色。所以这是根据 3d 数据制作 2d 图。

第三条线 (x3, y3) 的颜色应该像散点图。不过,所使用的配色方案应该取决于 z3 的值。

由于我必须制作几个这样的图,如果它可以尽可能地“完全自动化”那就太好了。

如果能得到一些帮助那就太好了!

提前致谢!

梅威瑟:

\documentclass[final]{scrreprt}

\usepackage{filecontents}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{filecontents*}{x_y_z_values.txt}
x1 y1 x2 y2 x3 y3 z3
1 1 1 2 1 3 3
2 2 2 3 2 4 9
3 3 3 4 3 5 27
\end{filecontents*}

\begin{document}
\begin{figure}

\pgfplotsset{width=\textwidth}

    \begin{tikzpicture}
        \begin{axis}
            \addplot[]                
                table [col sep=space,x expr=\thisrow{x1},y expr=\thisrow{y1}]
                        {x_y_z_values.txt};
            \addplot[]                  
                table [col sep=space,x expr=\thisrow{x2},y expr=\thisrow{y2}]
                            {x_y_z_values.txt};
            \addplot[]
                table [col sep=space,x expr=\thisrow{x3},y expr=\thisrow{y3}]
                            {x_y_z_values.txt};\addlegendentry{3-d-line}
        \end{axis}
    \end{tikzpicture}
\end{figure}

\end{document}

答案1

您正在寻找这样的东西吗?

在此处输入图片描述

point meta这可以通过使用pgfplots 手册中更详细解释的键来实现(第 4.8.2 节)。

\documentclass[final]{scrreprt}

\usepackage{filecontents}
\usepackage{pgfplots}

\pgfplotsset{compat=newest}

\begin{filecontents*}{x_y_z_values.txt}
x1 y1 x2 y2 x3 y3 z3
1 1 1 2 1 3 3
2 2 2 3 2 4 9
3 3 3 4 3 5 27
\end{filecontents*}

\begin{document}
\begin{figure}

\pgfplotsset{width=\textwidth}

    \begin{tikzpicture}
        \begin{axis}[colorbar]
            \addplot[mesh,point meta=explicit]                
                table [col sep=space,x expr=\thisrow{x1},y expr=\thisrow{y1},point meta=\thisrow{z3}]
                        {x_y_z_values.txt};
            \addplot[]                  
                table [col sep=space,x expr=\thisrow{x2},y expr=\thisrow{y2}]
                            {x_y_z_values.txt};
            \addplot[]
                table [col sep=space,x expr=\thisrow{x3},y expr=\thisrow{y3}]
                            {x_y_z_values.txt};\addlegendentry{3-d-line}
        \end{axis}
    \end{tikzpicture}
\end{figure}

\end{document}

相关内容