如何绘制没有框架的 ybar 图?

如何绘制没有框架的 ybar 图?

我想要删除绘图周围的框架,通常与 配合得很好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似乎设置enlargelimitsfalse0

您可以使用axis lines=left, enlargelimits=.1axis 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}

结果:

在此处输入图片描述

相关内容