为什么我的 pgf 图形不居中?

为什么我的 pgf 图形不居中?

我正在使用 Python 和 matplotlib.pyplot 生成 pgfplot 文件(PGF)以及用于 pdfLatex 编译器的 pgf 导出的以下配置:

import matplotlib as mpl
mpl.use("pgf")
pgf_with_pdflatex = {
    "pgf.texsystem": "pdflatex",
    "pgf.preamble": [
         r"\usepackage[utf8x]{inputenc}",
         r"\usepackage[T1]{fontenc}",
         #r"\usepackage{cmbright}",
         ]
}

使用 Python 中的常用plt.plot()命令等,我设法生成一个 20 厘米宽的图,然后使用plt.savefig('Graphes/pompage_pCav.pgf', format = 'pgf')Pyplot 命令将其导出到 pgf 文件中。

该 pgf 文件看起来非常合适。然后我将其作为图形包含到 tex 文件中:

\begin{figure}
    \begin{center}
        \input{Figures/pompage_pCav.pgf}
    \end{center}
    \caption{test}
    \label{test}
\end{figure}

页面尺寸为 A4(即 21 厘米宽),结果如下: 它没有居中 :(

如您所见,无论我使用centerlatex 环境还是\centering命令,图形都不会居中。如何解决这个问题?谢谢。

答案1

如果你为 21 厘米的页面生成 20 厘米宽的图,这可能会导致问题,因为它会将 1 厘米的左右边距加在一起。如果左边距大于 0.5 厘米,你的图形将要延伸到右边距。唯一的解决方案是生成一个小于左右边距(又名\textwidth)之间距离的图。

答案2

感谢大家的快速回答。

确实我的图像太大了。我用 显示文本宽度\printinunitsof{in}\prntlen{\textwidth},其值为 6.69423 英寸。然后将图形宽度更改为 6.69 英寸,纵横比为 1.3(~4/3)。编译 Tex 文件输出 9 个错误,提示尺寸太大。我不明白。不过,由于我使用的是 ShareLaTeX,因此 pdf 可以编译,并且绘图可以正确居中。但是如何解决这些问题呢?

 Figures/pompage_pCav.pgf, line 1772
Dimension too large.

<to be read again> 
                   \relax 
l.1772 ...ansformshift{-1416.023250in}{4.191678in}
                                                  %
I can't work with sizes bigger than about 19 feet.
Continue and I'll use the largest value I can.

! Dimension too large.
<to be read again> 
                   \relax 
l.1877 ...ansformshift{-1416.023250in}{4.191678in}
                                                  %
I can't work with sizes bigger than about 19 feet.
Continue and I'll use the largest value I can.

9 个错误显示相同的文本。

顺便问一下,是否可以像 pdf 或 png 一样更改 pgf 图像宽度(和高度?)?看起来这种格式不像 tickz 那样通用(我无法在 Windows 上使用 Anaconda 安装 matplotlib2tikz 包)。

对于那些询问可用示例的人:Python:

import numpy as np
import matplotlib.pyplot as plt 
plt.figure(figsize = (6.69, 5.017500000000001))

# do some plotting here
x = np.linspace(-2, 2, 100)
plt.plot(x, x)

# save to file
plt.savefig('test.pgf')

在乳胶中:

\documentclass[11pt, a4paper]{report}
\usepackage[left=2cm,right=2cm,top=2cm,bottom=2cm]{geometry}
\usepackage[T1]{fontenc}
\usepackage[utf8x]{inputenc}
\usepackage{lmodern}
\usepackage{xstring}
\usepackage{layouts}
\usepackage{pgfplots}
\pgfplotsset{height = 7cm,width=12cm,compat=1.9}

\begin{document}
\begin{figure}
    \begin{center}
        \input{test.pgf}
    \end{center}
    \caption{textwidth = \printinunitsof{in}\prntlen{\textwidth}}
    \label{test}
\end{figure}
\end{document}

我使用的 pgf 文件链接:test.pgf(保存为.pgf文件)

相关内容