我想要删除绘图周围的框架,通常与 配合得很好axis lines = left
。但是,当尝试将其与 配合使用时,会发生一些奇怪的事情ybar
。
无轴线=左
轴线=左
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread[col sep=tab]{data.tsv}\serialisations
\begin{axis}[
ybar, xtick=data, xticklabels from table={\serialisations}{Name},
axis lines=left, % remove for normal display
]
\addplot table [x expr=\coordindex, y index=1]{\serialisations};
\end{axis}
\end{tikzpicture}
\end{document}
数据.tsv
Name Value
A 2000
B 3000
C 4000
我怎样才能删除框架,但仍然保留正确的图形?
答案1
ybar
与之结合axis lines=left
似乎设置enlargelimits
为false
或0
。
您可以使用axis lines=left, enlargelimits=.1
或axis lines=left, enlargelimits=true
恢复默认值。
代码:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread[col sep=tab]{data.tsv}\serialisations
\begin{axis}[
ybar, xtick=data, xticklabels from table={\serialisations}{Name},
axis lines=left,
enlargelimits=.1 % <- adds 10% of the axis range on both sides
]
\addplot table [x expr=\coordindex, y index=1]{\serialisations};
\end{axis}
\end{tikzpicture}
\end{document}
也可以分别更改 x 和 y 限值。您可以使用维度作为abs
值:enlarge x limits={abs={1.5*\pgfplotbarwidth}}
。此外,您可以仅将 y 轴的上限放大,enlarge y limits={0.1,upper}
并将 y 下限定义为ymin=1000
。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\pgfplotstableread[col sep=tab]{data.tsv}\serialisations
\begin{axis}[
ybar, xtick=data, xticklabels from table={\serialisations}{Name},
axis lines=left,
enlarge x limits={abs={1.5*\pgfplotbarwidth}},
enlarge y limits={0.1,upper},
ymin=1000
]
\addplot table [x expr=\coordindex, y index=1]{\serialisations};
\end{axis}
\end{tikzpicture}
\end{document}
结果: