Pgfplots: xtick は ybar 間隔では無視されます

Pgfplots: xtick は ybar 間隔では無視されます

1 日の需要の棒グラフを作成するときに問題があります。 x 座標は「午前 0 時からの分数」ですが、指定した場所の x 軸に時刻を表示したいです (例: 390 分ではなく午前 6:30)。xtickと はxticklabelsこれを実行するはずです。 がない場合でも実行しますybar interval=1が、その場合、適切なタイプのグラフではなくなります。

私のコードは次のとおりです:

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{figure}
    \centering
    \begin{tikzpicture}
        \begin{axis}[
            xtick={390,540,720,900,1020},
            xticklabels={6:30,9:00,12:00,15:00,17:00},
            ylabel=Required staff,
            xlabel=Time of day,
            ybar interval=1,
            width=0.8\textwidth,
            height=5cm,
            axis lines=left,
            ymin=0
        ]
            \addplot 
                coordinates {(390,1) (450,2) (510,3) (570,6) (720,3) (735,2) (780,3) (795,4) (930,2) (960,1) (1020,1)};
        \end{axis}
    \end{tikzpicture}
\end{figure}
\end{document}

そしてそれは以下を生成します:

チェックマークの位置が間違っている

アウトコメントybar interval=1,の結果:

目盛りは正しいが、プロットの種類が間違っている

答え1

マニュアル (私のバージョンでは 87 ページと 320 ページ) には、ybar intervalプロットごとにのみインストールされると書かれています。軸に設定すると、目盛りの定義がおかしくなります。

enlarge x limits=0.05, enlarge y limits=upper軸に少し余裕を持たせるために、軸オプションに を追加します。

図のデフォルトの色付けを使用するには、汎用ybarスタイルを使用してから、次の操作を実行しますaddplot+

\documentclass{article}
\usepackage{pgfplots}\pgfplotsset{compat=1.13}
\begin{document}
\begin{figure}
    \centering
    \begin{tikzpicture}
        \begin{axis}[
            ybar, %% installs bar cycle list also
            xtick={390,540,720,900,1020},
            xticklabels={6:30,9:00,12:00,15:00,17:00},
            ylabel=Required staff,
            xlabel=Time of day,
            width=0.8\textwidth,
            height=5cm,
            axis lines=left,
            ymin=0,
            enlarge x limits=0.05,
            enlarge y limits=upper,
        ]
        \addplot+ [ybar interval]
                coordinates {(390,1) (450,2) (510,3) (570,6) (720,3) (735,2) (780,3) (795,4) (930,2) (960,1) (1020,1)};
        \end{axis}
    \end{tikzpicture}
\end{figure}
\end{document}

別の棒グラフ

答え2

axis同じディメンションを持つ2 番目の環境を追加することもできます。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}% <- current version is 1.14
\begin{document}
\begin{figure}
    \centering
    \begin{tikzpicture}
        \pgfplotsset{
            xmin=390,xmax=1020,
            width=0.8\textwidth,
            height=5cm,
            axis lines=left,
            ymin=0,ymax=6
        }
        \begin{axis}[
            xtick={390,540,720,900,1020},
            xticklabels={6:30,9:00,12:00,15:00,17:00},
            ylabel=Required staff,
            xlabel=Time of day
        ]
        \end{axis}
        \begin{axis}[
            axis lines=none,
            ybar interval=1,
            xtick=\empty,
        ]
            \addplot 
                coordinates {
                    (390,1) (450,2) (510,3) (570,6) (720,3) (735,2)
                    (780,3) (795,4) (930,2) (960,1) (1020,1)
                };
        \end{axis}
    \end{tikzpicture}
\end{figure}
\end{document}

ここに画像の説明を入力してください

関連情報