pgfplots:使用带有选项 shader=interp 的 \addplot3 时行为不一致

pgfplots:使用带有选项 shader=interp 的 \addplot3 时行为不一致

我想绘制相关系数为 0.75 或 -0.75 的双变量高斯密度的轮廓线。事实证明,即使第二个图基本上只是第一个图的翻转版本,当更改系数时,渲染看起来也会有所不同。我相信这与shader=interp我使用的选项有关。更准确地说,第一个图看起来不如第二个图平滑。

图 1(rho=0.75):

\def\mux{2}
\def\muy{-1}
\begin{tikzpicture}
    \begin{axis}[
        view={0}{90},
        axis equal,
        colormap/bluered,
        xmin=-1,
        xmax=5,
        ymin=-4,
        ymax=2,
        xlabel={$x_1$},
        ylabel={$x_2$},
        width=1.95in,
        height=1.95in]
    \addplot3[surf,domain=-1:5,domain y=-4:2,shader=interp] 
        {1/(2*pi*sqrt(1-0.75^2))*exp(-(1/(1-0.75^2))*((x-\mux)^2/2 - 0.75*(x-\mux)*(y-\muy) + (y-\muy)^2/2))};
    \end{axis}
\end{tikzpicture}

在此处输入图片描述

图 2 (rho=-0.75):

\def\mux{2}
\def\muy{-1}
\begin{tikzpicture}
    \begin{axis}[
        view={0}{90},
        axis equal,
        colormap/bluered,
        xmin=-1,
        xmax=5,
        ymin=-4,
        ymax=2,
        xlabel={$x_1$},
        ylabel={$x_2$},
        width=1.95in,
        height=1.95in]
    \addplot3[surf,domain=-1:5,domain y=-4:2,shader=interp] 
        {1/(2*pi*sqrt(1-0.75^2))*exp(-(1/(1-0.75^2))*((x-\mux)^2/2 + 0.75*(x-\mux)*(y-\muy) + (y-\muy)^2/2))};
    \end{axis}
\end{tikzpicture}

在此处输入图片描述

相应的最小工作示例:

\documentclass[12pt,a4]{article}
\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage[T1]{fontenc}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{tikz}
%
\begin{document}
    \begin{figure}
        \centering
        \def\mux{2}
        \def\muy{-1}
        \begin{tikzpicture}
        \begin{axis}[
        view={0}{90},
        axis equal,
        colormap/bluered,
        xmin=-1,
        xmax=5,
        ymin=-4,
        ymax=2,
        xlabel={$x_1$},
        ylabel={$x_2$},
        width=2.95in,
        height=2.95in]
        \addplot3[surf,domain=-1:5,domain y=-4:2,shader=interp] 
        {1/(2*pi*sqrt(1-0.75^2))*exp(-(1/(1-0.75^2))*((x-\mux)^2/2 - 0.75*(x-\mux)*(y-\muy) + (y-\muy)^2/2))};
        \end{axis}
        \end{tikzpicture}
    \end{figure}%
    %
    \begin{figure}
        \centering
        \def\mux{2}
        \def\muy{-1}
        \begin{tikzpicture}
        \begin{axis}[
        view={0}{90},
        axis equal,
        colormap/bluered,
        xmin=-1,
        xmax=5,
        ymin=-4,
        ymax=2,
        xlabel={$x_1$},
        ylabel={$x_2$},
        width=2.95in,
        height=2.95in]
        \addplot3[surf,domain=-1:5,domain y=-4:2,shader=interp] 
        {1/(2*pi*sqrt(1-0.75^2))*exp(-(1/(1-0.75^2))*((x-\mux)^2/2 + 0.75*(x-\mux)*(y-\muy) + (y-\muy)^2/2))};
        \end{axis}
        \end{tikzpicture}
    \end{figure}%
\end{document}%

我使用 TeXStudio 作为我的界面并使用 pdflatex 进行编译。

因此,两个图的代码之间的唯一区别是 -0.75 被 +0.75 替换,但最终结果看起来不同。当然,我指的不是由于修改了相关系数而方向不同的轮廓线。我的问题是指插值结果的差异(中心的小方块和蓝色阴影区域)。顺便说一句,无论我使用哪种 pdf 查看器,结果看起来都一样。

知道问题是什么以及如何解决吗?

非常感谢,祝一切顺利,VK88

相关内容