Как изменить ширину бина гистограммы

Как изменить ширину бина гистограммы

Я пытаюсь нарисовать гистограмму из 8 столбцов шириной 10. Вот что у меня есть в данный момент, причем ширина столбца заметно меньше 10 единиц.

    \begin{tikzpicture}
        \begin{axis} [ybar,xmin=70,xmax=160,ymin=0,ymax=20, xlabel = IQ Scores, ylabel = Frequency, xtick={70, 80, 90, 100, 110, 120, 130, 140, 150}]
            \addplot [draw = black, fill = gray] coordinates {
                (75,2)
                (85,3) 
                (95, 10)
                (105, 16)
                (115, 13)
                (125, 10)
                (135, 5)
                (145,1)
            }; 
        \end{axis}
    \end{tikzpicture}

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

Мне в основном нужно, чтобы планки касались друг друга. Есть идеи, что мне нужно сделать?

решение1

Один из способов сделать это — использовать ybar interval(обратите внимание на небольшую разницу в положении деления по оси x)

\begin{tikzpicture}
    \begin{axis} [ybar interval,
    grid=none,
    xmin=70,xmax=160,ymin=0,ymax=20, xlabel = IQ Scores, ylabel = Frequency, xtick={70, 80, 90, 100, 110, 120, 130, 140, 150}]
        \addplot [draw = black, fill = gray] coordinates {
            (75,2)
            (85,3) 
            (95, 10)
            (105, 16)
            (115, 13)
            (125, 10)
            (135, 5)
            (145,1)
            (155,0)
        }; 
    \end{axis}
\end{tikzpicture}

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

решение2

Вы можете задать ширину единицы измерения оси X (например, x=0.1cm) и ширину полосы ( bar width=1cmпоскольку ваш размер шага равен 10).

\documentclass{article}

\usepackage{pgfplots}
\pgfplotsset{compat=1.18}

\begin{document}
\begin{tikzpicture}
    \begin{axis} [
        ybar,
        x=0.1cm,
        bar width=1cm,
        xmin=70,
        xmax=160,
        ymin=0,
        ymax=20,
        xlabel=IQ Scores,
        ylabel=Frequency,
        xtick={70, 80, 90, 100, 110, 120, 130, 140, 150}
    ]
        \addplot [draw = black, fill = gray] coordinates {
            (75,2)
            (85,3) 
            (95, 10)
            (105, 16)
            (115, 13)
            (125, 10)
            (135, 5)
            (145,1)
        }; 
    \end{axis}
\end{tikzpicture}
\end{document}

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

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