Фанки (не знаю, как еще описать) Поверхностный сюжет

Фанки (не знаю, как еще описать) Поверхностный сюжет

Ниже приведен MWE

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\usetikzlibrary{pgfplots.groupplots}

\pgfplotsset{compat = 1.12}

\begin{document}
    \centering

    \begin{figure}
    \centering
    \begin{tikzpicture}{fig6}
        \begin{groupplot}[
                height=6cm,
                width=6cm,
                group style={group size=2 by 2,
                             group name = fig6_plots,
                             xlabels at=edge bottom,
                             ylabels at=edge left
                                        },
                            xlabel = {\footnotesize $\rho$},
                            ylabel = {\footnotesize $\gamma$},
                                        colorbar horizontal,
                                        colorbar to name=Fig6Colorbar,
                                        colormap/blackwhite,
                                        y tick label style={
                                            /pgf/number format/.cd,
                                            fixed,
                                            fixed zerofill,
                                            precision=2,
                                            /tikz/.cd
                                        },
                                        x tick label style={
                                            /pgf/number format/.cd,
                                            fixed,
                                            fixed zerofill,
                                            precision=0,
                                            /tikz/.cd
                                        }]
                            \nextgroupplot[title={\scriptsize Increasing $\alpha$}, z buffer=sort]
                                            \addplot3[surf, shader=interp,colormap/blackwhite] file {PlusIncreasingSurface.txt};
                                        \nextgroupplot[title={\scriptsize Decreasing $\alpha$}, z buffer=sort]
                                            \addplot3[surf, shader=interp,colormap/blackwhite] file {PlusDecreasingSurface.txt};
                                        \nextgroupplot[title={\scriptsize Delta from Come and Go},view={0}{90}]
                                            \addplot3[surf, shader=interp,point meta min=-10,point meta max=0] file {PlusIncreasingDeltaSurface.txt};
                                        \nextgroupplot[title={\scriptsize Delta from Come and Go},view={0}{90}]
                                            \addplot3[surf, shader=interp,point meta min=-10,point meta max=0] file {PlusDecreasingDeltaSurface.txt};

        \end{groupplot}
        \node (fig6_Legend) at ($(fig6_plots c1r2.center)!0.5!(fig6_plots c2r2.center)-(0,4.5cm)$){\ref{Fig6Colorbar}};
    \end{tikzpicture}
    \caption{+Resources Reactive with $\alpha$ Starting at Upper Bound}
    \label{ReactiveDecreasing}
\end{figure}
\end{document}

Это производит этот вывод

введите описание изображения здесь

При запуске с файлами данных, ссылка на которые приведена здесь

PlusIncreisingSurface.txt

PlusIncreisingDeltaSurface.txt

PlusDecreasingSurface.txt

ПлюсУменьшениеДельтаПоверхности.txt

Пока все хорошо... но учитывая большую разницу в масштабе, я решил отказаться от объединенной цветовой шкалы и позволить каждой из нижних диаграмм иметь свою собственную шкалу. Поэтому я закомментировал части об узле и мета-точках, которые создали объединенную цветовую шкалу, оставив себе

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\usetikzlibrary{pgfplots.groupplots}

\pgfplotsset{compat = 1.12}

\begin{document}
    \centering

    \begin{figure}
    \centering
    \begin{tikzpicture}{fig6}
        \begin{groupplot}[
                height=6cm,
                width=6cm,
                group style={group size=2 by 2,
                                         group name = fig6_plots,
                             xlabels at=edge bottom,
                             ylabels at=edge left
                                        },
                            xlabel = {\footnotesize $\rho$},
                            ylabel = {\footnotesize $\gamma$},
                                        colorbar horizontal,
                                        %colorbar to name=Fig6Colorbar,
                                        colormap/blackwhite,
                                        y tick label style={
                                            /pgf/number format/.cd,
                                            fixed,
                                            fixed zerofill,
                                            precision=2,
                                            /tikz/.cd
                                        },
                                        x tick label style={
                                            /pgf/number format/.cd,
                                            fixed,
                                            fixed zerofill,
                                            precision=0,
                                            /tikz/.cd
                                        }]
                            \nextgroupplot[title={\scriptsize Increasing $\alpha$}, z buffer=sort]
                                            \addplot3[surf, shader=interp,colormap/blackwhite] file {PlusIncreasingSurface.txt};
                                        \nextgroupplot[title={\scriptsize Decreasing $\alpha$}, z buffer=sort]
                                            \addplot3[surf, shader=interp,colormap/blackwhite] file {PlusDecreasingSurface.txt};
                                        \nextgroupplot[title={\scriptsize Delta from Come and Go},view={0}{90}]
                                            %\addplot3[surf, shader=interp,point meta min=-10,point meta max=0] file {PlusIncreasingDeltaSurface.txt};
                                            \addplot3[surf, shader=interp] file {PlusIncreasingDeltaSurface.txt};
                                        \nextgroupplot[title={\scriptsize Delta from Come and Go},view={0}{90}]
                                            %\addplot3[surf, shader=interp,point meta min=-10,point meta max=0] file {PlusDecreasingDeltaSurface.txt};
                                            \addplot3[surf, shader=interp] file {PlusDecreasingDeltaSurface.txt};
        \end{groupplot}
        %\node (fig6_Legend) at ($(fig6_plots c1r2.center)!0.5!(fig6_plots c2r2.center)-(0,4.5cm)$){\ref{Fig6Colorbar}};
    \end{tikzpicture}
    \caption{+Resources Reactive with $\alpha$ Starting at Upper Bound}
    \label{ReactiveDecreasing}
\end{figure}
\end{document}

Когда я запускаю это на тех же данных, я получаю это

введите описание изображения здесь

Что за "срез" в верхней части двух контурных графиков? Похоже, что сверху каждого графика проходит немаркированная цветовая полоса?

Бонусный вопрос — как изменить точность отметок на цветовых полосах?

решение1

«Срез», который вы видите в верхней части двух контурных схем, на самом деле является цветовыми полосами для двух верхних схем. Они включены, поскольку вы добавили их colorbar horizontalко всей группе. Каждая axisсреда наследует эти параметры, что означаеткаждыйУчасток в этой группе будет иметь свою собственную цветовую шкалу. Чтобы увидеть это наглядно, вы можете увеличить вертикальный интервал между участками.

Чтобы избежать этого, вам нужно переместить colorbar horizontalопцию на те оси, где вы действительно хотите их видеть. Если вы хотите, чтобы цветовые полосы двух контурных графиков имели одинаковый формат делений, вы можете просто создать новый стиль в pgfplotsи применить его к этим осям. Если вы напишете

\pgfplotsset{%
  mycolorbar/.style={%
    colorbar horizontal,
    every colorbar/.append style={%
      x tick label style={%
        /pgf/number format/.cd,
        fixed,
        fixed zerofill,
        precision=2,
        /tikz/.cd}}}
}

досреду tikzpicture, вы можете просто добавить опцию mycolorbarк осям, где вы хотите цветовые полосы. Если вы хотите разные форматы для двух цветовых полос, вы должны определить их в каждой из опций \nextgroupplot[...].

Таким образом, следующий код дает следующий вывод:

\documentclass{article}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\usetikzlibrary{pgfplots.groupplots}

\pgfplotsset{compat = 1.12}

\begin{document}

\pgfplotsset{%
  mycolorbar/.style={%
    colorbar horizontal,
    every colorbar/.append style={%
      x tick label style={%
        /pgf/number format/.cd,
        fixed,
        fixed zerofill,
        precision=2,
        /tikz/.cd}}}
}

\begin{figure}
  \centering
  \begin{tikzpicture}{fig6}
    \begin{groupplot}[
      height=6cm,
      width=6cm,
      group style={%
        group size=2 by 2,
        group name=fig6_plots,
        xlabels at=edge bottom,
        ylabels at=edge left
      },
      xlabel = {\footnotesize $\rho$},
      ylabel = {\footnotesize $\gamma$},
      %colorbar to name=Fig6Colorbar,
      colormap/blackwhite,
      y tick label style={%
        /pgf/number format/.cd,
        fixed,
        fixed zerofill,
        precision=2,
        /tikz/.cd
      },
      x tick label style={
        /pgf/number format/.cd,
        fixed,
        fixed zerofill,
        precision=0,
        /tikz/.cd
      }
    ]
      \nextgroupplot[title={\scriptsize Increasing $\alpha$}, z buffer=sort]
        \addplot3[surf, shader=interp,colormap/blackwhite] file {PlusIncreasingSurface.txt};
      \nextgroupplot[title={\scriptsize Decreasing $\alpha$}, z buffer=sort]
        \addplot3[surf, shader=interp,colormap/blackwhite] file {PlusDecreasingSurface.txt};
      \nextgroupplot[mycolorbar, title={\scriptsize Delta from Come and Go},view={0}{90}]
        \addplot3[surf, shader=interp] file {PlusIncreasingDeltaSurface.txt};
      \nextgroupplot[mycolorbar, title={\scriptsize Delta from Come and Go},view={0}{90}]
        \addplot3[surf, shader=interp] file {PlusDecreasingDeltaSurface.txt};
    \end{groupplot}
  \end{tikzpicture}
  \caption{+Resources Reactive with $\alpha$ Starting at Upper Bound}
  \label{ReactiveDecreasing}
\end{figure}
\end{document}

Выход

Связанный контент