禁用平滑/插值 pgf 曲面图

禁用平滑/插值 pgf 曲面图

我正在尝试在 Tikz/pgfplots 中重新创建使用 Matplotlib 制作的以下图像。python_plot

到目前为止,我已经成功地使用 pgfplots 3d 曲面图重新创建了以下内容,但存在一个问题:我正在使用如上所述的显式着色这里(并从 Python 生成的以分号分隔的 CSV 文件中加载我的数据,该文件可以找到这里),但当我使用着色器选项 flat 时,pgfplots 会在相邻颜色之间应用平滑处理,这绝对不是我想要的(颜色代表整数值)。有没有办法在 pgfplots 中禁用此行为?到目前为止,我一无所获。任何帮助都将不胜感激!tikz_plot

梅威瑟:

\documentclass{article}

% Import packages
\usepackage{tikz}
\usepackage{tikz-3dplot} 
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

\begin{tikzpicture}
    \begin{axis} [
        axis line style={draw=none},
        axis equal image,
        ticks=none,
        view={20}{20},
        clip=false,
        width=120mm,
        xmin = -1,
        xmax = 1,
        ymin = -1,
        ymax = 1,
        zmin = -1,
        zmax = 1,
    ]
        % Sphere plot
        \addplot3 [surf, mesh/rows=30, mesh/color input=explicit, shader=flat] table [
            x=x, y=y, z=z, meta=c, col sep=semicolon, 
        ] {xyz_coords_c_vals_30_60.csv}; 
    \end{axis}
\end{tikzpicture}

\end{document}

答案1

没关系,我肯定是没注意到:我发现还有一个选项shader=flat corner(感谢帖子)。解决了我所有的问题。

工作 MWE(添加xyz_coords_c_vals.csv来自这里并将其添加到同一目录/文件夹):

\documentclass{article}

% Import packages
\usepackage{tikz}
\usepackage{tikz-3dplot} 
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}

\begin{tikzpicture}
    \begin{axis} [
        axis line style={draw=none},
        axis equal image,
        ticks=none,
        view={20}{20},
        clip=false,
        width=120mm,
        xmin = -1,
        xmax = 1,
        ymin = -1,
        ymax = 1,
        zmin = -1,
        zmax = 1,
    ]
        % Sphere plot
        \addplot3 [surf, mesh/rows=30, mesh/color input=explicit, shader=flat corner] table [
            x=x, y=y, z=z, meta=c, col sep=semicolon, 
        ] {xyz_coords_c_vals_30_60.csv}; 
    \end{axis}
\end{tikzpicture}

\end{document}

相关内容