
知道為什麼這兩個看似相同的格式pfgplots
卻有不同的輸出嗎?大多數情況下,我希望 y 軸(在左側圖中)上的 0 與 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}