펑키함(어떻게 설명해야 할지 모르겠습니다) 표면 플롯

펑키함(어떻게 설명해야 할지 모르겠습니다) 표면 플롯

아래는 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}

그러면 다음과 같은 출력이 생성됩니다.

여기에 이미지 설명을 입력하세요

여기에 링크된 데이터 파일로 실행하면

PlusIncreasingSurface.txt

PlusIncreasingDeltaSurface.txt

PlusDecreasingSurface.txt

PlusDecreasingDeltaSurface.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}

산출

관련 정보