我想创建一个包含多条线的二维图。
其中一条线取决于第三维中的附加值。现在我想根据第三个值来设置这条“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}