gpt4 book ai didi

python - 由 matplotlib 创建的 eps 文件的 LaTeX 文档和 BoundingBox

转载 作者:太空宇宙 更新时间:2023-11-03 14:25:12 25 4
gpt4 key购买 nike

我在将 matplotlib 生成的 eps 文件包含到 LaTeX 文档中时遇到问题。图的大小好像没有被正确识别,标题和图有重叠。

请看下图。这是 latex 文档的图像,其中包含由 matplotlib 生成的图形。下面进一步显示了用于绘图的 LaTeX 源文件和 python 源代码。

========================

Image of the LaTeX document.

=======================

图 1. 与标题重叠。似乎 LaTeX 识别出的图形尺寸小于实际尺寸。

图 2. 是与图 1. 相同的 eps 文件,但 bb 参数在 LaTeX 文档的 includegraphics 命令中指定。 eps文件的BoundingBox为%%BoundingBox: 18 180 594 612bb参数设置为bb=0 0 594 612 .前两个值更改为零,而保留最后两个值。然后,图 2. 看起来不错。图形的大小似乎被正确识别。

到目前为止,我在其他计算机上没有遇到过此类问题,我想知道是什么导致了这个问题。我不确定是 matplotlib 还是 LaTex 的问题,我想就如何找到问题的根源提出建议。

matplotlib包版本为1.1.1rc,操作系统为Ubuntu 12.04。我通过 latex 命令处理 LaTeX 文档,然后使用 dvipdfm 命令。

>>> import matplotlib
>>> matplotlib.__version__
'1.1.1rc'

$ latex --version
pdfTeX 3.1415926-2.5-1.40.14 (TeX Live 2013)
kpathsea version 6.1.1
Copyright 2013 Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
There is NO warranty. Redistribution of this software is
covered by the terms of both the pdfTeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the pdfTeX source.
Primary author of pdfTeX: Peter Breitenlohner (eTeX)/Han The Thanh (pdfTeX).
Compiled with libpng 1.5.16; using libpng 1.5.16
Compiled with zlib 1.2.7; using zlib 1.2.7
Compiled with xpdf version 3.03


$ dvipdfm --version

This is dvipdfmx-20130405 by the DVIPDFMx project team,
modified for TeX Live,
an extended version of dvipdfm-0.13.2c developed by Mark A. Wicks.

Copyright (C) 2002-2013 by the DVIPDFMx project team

This is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

这是 LaTeX 源文件。

\documentclass{article} 
\usepackage[dvips]{graphicx,color}
%\usepackage{amsmath,amssymb}

%\usepackage[top=1in,bottom=1in,left=1in,right=1in]{geometry}



\begin{document}

This is the first paragraph of the text.
Today is a good day.

\begin{figure}[ht]
\begin{center}
\includegraphics[width=.5\linewidth]{fig.eps}
\caption{This is the caption of the figure included without specifying bb parameters.}
\label{fig1}
\end{center}
\end{figure}

This is the second paragraph of the text written below the first figure environment.
Tomorrow will be a bad day.

\begin{figure}[hb]
\begin{center}
\includegraphics[bb=0 0 594 612, width=.5\linewidth]{fig.eps}
\caption{This is the caption of the figure included with the first two bb parameters set zero.}
\label{fig2}
\end{center}
\end{figure}

% Note that fig.eps has the following bounding box information.
% $ grep BoundingBox fig.eps
% %%BoundingBox: 18 180 594 612


\end{document}

这里是用于绘图的python源代码。

#!/usr/bin/python

import matplotlib.pyplot as plt

plt.plot([0, 1, 2], [0, 2, 4], '-b')
plt.savefig('fig.eps')

最佳答案

首先,您应该使用带有 figsize=(x,y) 选项的 plt.figure() 函数设置图形尺寸。您还应该使用 bbox_inches='tight' 选项在 plt.savefig() 函数中设置边界框,这应该会删除图形周围的多余空白。

您可以尝试的其他一些事情包括将后端设置为“PS”(如果您尚未使用):

import matplotlib as mpl
mpl.use('PS')

此外,我在我的 savefig 函数中使用了 format='eps' 选项,虽然这不是必需的,因为您的文件名已经有了 eps 扩展名,但这并没有什么坏处试一试。

关于python - 由 matplotlib 创建的 eps 文件的 LaTeX 文档和 BoundingBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21709050/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com