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}