Ошибка гистограммы в Tikzpicture

Я не знаю, почему данные по оси X за прыжки. Понятия не имею.

\documentclass[varwidth=true, border=2pt]{standalone}  \usepackage{pgfplots}\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        symbolic x coords={Coke-Classic,Diet Coke, Dr.Peppre,Pepsi Cola,Sprite,},
        xtick=data
      ]
        \addplot[ybar,fill=blue] coordinates {
            (Coke-Classic,   38)
            (Diet Coke,  16)
            (Dr.Peppre,   10)
            (Pepsi Cola, 26)
            (Sprite, 10)
        };
    \end{axis}
\end{tikzpicture}   \end{document}

1 ответ

Решение

Есть два возможных решения, которые пришли мне в голову. Оба относительно просты (нужно добавить только одну строку):

Решение 1

Чтобы избежать наложения х-меток, вы можете явно определить размер одной х-единицы:

\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        symbolic x coords={Coke-Classic,Diet Coke, Dr.Peppre,Pepsi Cola,Sprite,},
        xtick=data,
        x=2cm
      ]
        \addplot[ybar,fill=blue] coordinates {
            (Coke-Classic,   38)
            (Diet Coke,  16)
            (Dr.Peppre,   10)
            (Pepsi Cola, 26)
            (Sprite, 10)
        };
    \end{axis}
\end{tikzpicture}
\end{document}

Единственное, что я изменил, это добавление x=2cm на ось-варианты.

Результат выглядит следующим образом:

график ybar с x = 2 см

Решение 2

Решение выше увеличивает ширину участка. Если вы не хотите этого, вы можете вместо этого повернуть метки:

\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        symbolic x coords={Coke-Classic,Diet Coke, Dr.Peppre,Pepsi Cola,Sprite,},
        xtick=data,
        xticklabel style={rotate=45}
      ]
        \addplot[ybar,fill=blue] coordinates {
            (Coke-Classic,   38)
            (Diet Coke,  16)
            (Dr.Peppre,   10)
            (Pepsi Cola, 26)
            (Sprite, 10)
        };
    \end{axis}
\end{tikzpicture}
\end{document}

Здесь я только заменил x=2cm с xticklabel style={rotate=45} (45 - это угол поворота, вы можете использовать любой другой угол, просто используйте то, что вы считаете наиболее подходящим).график ybar с повернутыми метками xtick

Другие вопросы по тегам