更改 pgfplots 补丁的边缘颜色

更改 pgfplots 补丁的边缘颜色

我正在绘制块,但不想根据它们的 z 值对它们进行着色。相反,我想自己定义颜色。

以下是一个例子:

\addplot3[area legend,patch,forget plot,patch type=triangle,color=red,opacity=0.8]
table[row sep=crcr, point meta=\thisrow{c}] {%
x   y   z   c\\
0   0   0   0\\
0   0.3 0   0\\
0.3 0   0   0\\
};

我可以用 color=red 覆盖颜色,但补丁的边缘颜色仍然绘制成不同的颜色:

补丁图

我找不到合适的参数来将它们改为黑色。有人知道怎么做吗?

以下是完整示例:

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\pagestyle{empty}

\begin{document}

\begin{figure}[htb]
\centering
  \begin{tikzpicture}
    \begin{axis}[%
      width=0.5\linewidth,
      height=0.5\linewidth,
      view={-213.5}{18},
      scale only axis,
      xmin=0,
      xmax=1,
      ymin=0,
      ymax=1,
      zmin=0,
      zmax=1,
      axis x line*=bottom,
      axis y line*=left,
      axis z line*=left]

    \addplot3[area legend,patch,forget plot,patch type=triangle,color=white,opacity=0.8]
      table[row sep=crcr, point meta=\thisrow{c}] {%
      x     y   z   c\\
      0     0   0   0\\
      0     0.3 1   0\\
      0.3   0   0.5 0\\};
    \end{axis}
  \end{tikzpicture}%
\end{figure}

\end{document}

答案1

您可以通过设置来更改边缘线的颜色faceted color=<color>,或者通过设置来完全禁用它们faceted color=none

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\pagestyle{empty}

\begin{document}

  \begin{tikzpicture}
    \begin{axis}[%
      view={-213.5}{18},
      xmin=0,
      xmax=1,
      ymin=0,
      ymax=1,
      zmin=0,
      zmax=1
      ]

    \addplot3[
            patch,
            patch type=triangle,
            color=red!25,
            faceted color=black
        ]
      table[row sep=crcr, point meta=\thisrow{c}] {%
      x     y   z   c\\
      0     0   0   0\\
      0     0.3 1   0\\
      0.3   0   0.5 0\\};
    \end{axis}
  \end{tikzpicture}%
\end{document}

答案2

我发现可以使用表的 c 参数指定颜色。由于更改每个三角形的值非常繁琐,因此一个简单(但不太优雅)的解决方案是修改轴的底层颜色图:

colormap={mymap}{rgb=(0,0,0); rgb=(0,0,0)}

现在每个边都用黑色绘制。

相关内容