\documentclass{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=none,axis equal]
\addplot+[no markers,thick] table [y=y1, x=x]{p=0_basis.dat};
\end{axis}
\end{tikzpicture}
\end{document}
我怎样才能删除这些空白,以使图形更紧凑?
谢谢
答案1
添加水平空间是因为enlargelimits
默认情况下为真。由于它看起来如此,您会获得很多垂直空间axis equal
。一种解决方法是明确设置ymin
和ymax
,我不知道还有其他更自动的方法可以做到这一点,尽管可能有一种。在下面的代码中clip=false
添加了,因为否则水平线的一半厚度将被剪掉。ymin
/的不同值ymax
将使这一点变得不必要。
红色矩形显示的是的边界框tikzpicture
。
\documentclass[border=3mm]{standalone}
\usepackage{pgfplots}
\usepackage{pgfplotstable}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
hide axis,
enlargelimits=false,
ymin=0,
ymax=1,
axis equal,
clip=false]
\addplot+[no markers,thick] table [y=y1, x=x]{
x y1
0 1
1 1
1 0
4 0
};
\end{axis}
\draw [red] (current bounding box.south east) rectangle (current bounding box.north west);
\end{tikzpicture}
\end{document}
答案2
Torbjørn 答案中的变化已经融入到hide axis
使用时设置的密钥背后的底层代码中axis lines=none
。有一个广泛的机制来确保向后兼容性,这样即使包已经更新,pgfplots
现有的图看起来仍然相同。pgfplots
要利用此功能,请始终设置pgfplots
'compat
键。如果您不设置它,甚至会出现警告:
Package pgfplots Warning: running in backwards compatibility mode (unsuitable t ick labels; missing features). Consider writing \pgfplotsset{compat=1.13} into your preamble.
如果没有设置compat
密钥,pgfplots
则进入“后备”模式,所有密钥的效果与引入时相同。这意味着我们没有看到hide axis
1.8 版中引入的密钥的改进。
设置compat
为 1.8 或更高版本(撰写本文时最新版本为 1.13)可访问hide axis
代码的改进:
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13} % or anything >= 1.8
\begin{document}
\begin{tikzpicture}
\begin{axis}[axis lines=none,axis equal]
\addplot+[no markers,thick] coordinates {(0,0) (1,0) (1,1) (2,1)};
\end{axis}
\end{tikzpicture}
\end{document}
建议在创建图时将密钥设置为当前版本,除非您特别需要旧版本。这样,您可以获得所有最新功能/修复,但如果您将来再次访问该文档,图将保持相同的外观,直到您选择更改密钥设置compat
。