Как выровнять столбчатую диаграмму pfgplot по оси x?

Как выровнять столбчатую диаграмму pfgplot по оси x?

Есть идеи, почему эти два, казалось бы, отформатированных одинаково, pfgplotsимеют разные выходные данные? В основном я хотел бы, чтобы 0 на оси Y (на графике слева) был вровень с осью X, как на графике справа. Как это исправить?

    \usepackage{graphicx}
    \usepackage{pgfplots}
    \usepackage{tikz}

    \begin{figure}[htb]
        \centering
        \makebox[0pt][c]{%
        \hspace{-2cm}
        \begin{minipage}[b]{0.5\linewidth}
        \centering
          \begin{tikzpicture}
                \begin{axis}[
                    ybar,
                    enlargelimits=0.15,
                    legend style={at={(0.5,-0.15)},
                      anchor=north,legend columns=-1},
                    ylabel={Collision score},
                    symbolic x coords={Large, 1, 2, 3, 33, 37},
                    xtick=data,
                    nodes near coords,
                    nodes near coords align={vertical},
                    point meta=y *10^-2
                ]
                \addplot 
                    coordinates {(Large,6.069e3) (1,1.311e3) (2,.146e3)
                         (3,.066e3) (33,.060e3) (37,.067e3)};
                \legend{Base}
                \end{axis}
            \end{tikzpicture}
        \label{sva}
        \end{minipage}%
        \hspace{1.5cm}
        \begin{minipage}[b]{0.5\linewidth}
        \centering
         \begin{tikzpicture}
                \begin{axis}[
                    ybar,
                    enlargelimits=0.15,
                    legend style={at={(0.5,-0.15)},
                      anchor=north,legend columns=-1},
                    ylabel={Elapsed Time},
                    symbolic x coords={Large, 1, 2, 3, 33, 37},
                    xtick=data,
                    nodes near coords,
                    nodes near coords align={vertical},
                ]
                \addplot 
                    coordinates {(Large,0.115 ) (1,0.124) (2,0.104 )
                         (3,0.108) (33,0.099) (37,0.103)};
                \legend{Base}
                \end{axis}
            \end{tikzpicture}
        \label{svb}
        \end{minipage}%
        }%
    \end{figure}

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

решение1

Это из-за enlargelimits, но на правой оси y не начинается с 0. Так что с небольшим изменением вы получите желаемый результат. Для этого смотрите комментарии в коде.

% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \pgfplotsset{
        my axis style/.style={
            ybar,
            enlarge x limits=0.15,      % <-- changed
            legend style={
                at={(0.5,-0.15)},
                anchor=north,
                legend columns=-1,
            },
            symbolic x coords={Large, 1, 2, 3, 33, 37},
            xtick=data,
            nodes near coords,
            nodes near coords align={vertical},
        },
    }
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        my axis style,
        ymin=0,                         % <-- added
        ylabel={Collision score},
        point meta=y *10^-2
    ]
    \addplot
        coordinates {(Large,6.069e3) (1,1.311e3) (2,.146e3)
             (3,.066e3) (33,.060e3) (37,.067e3)};
    \legend{Base}
    \end{axis}
\end{tikzpicture}
\begin{tikzpicture}
    \begin{axis}[
        my axis style,
        ylabel={Elapsed Time},
    ]
        \addplot coordinates {
            (Large,0.115 ) (1,0.124) (2,0.104)
             (3,0.108) (33,0.099) (37,0.103)};
        \legend{Base}
    \end{axis}
\end{tikzpicture}
\end{document}

изображение, показывающее результат кода выше

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