如何使用图形环境向居中对象添加水平偏移?

如何使用图形环境向居中对象添加水平偏移?

我目前刚开始使用 LaTeX,正在尝试编写我的第一份正式文档 - 实验报告。为此,我需要在我的页面上添加图表。为此,我目前使用 python 中的 mathplotlib 并导出到 .pgf 文件,如下所示:

import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt

matplotlib.use("pgf")
matplotlib.rcParams.update({
    "pgf.texsystem": "pdflatex",
    'font.family': 'serif',
    'text.usetex': True,
    'pgf.rcfonts': False,
})

data = pd.read_excel("data.xlsx")

# the specific names are only relevant to my specific data

data.plot(kind="line", x="Volym(HCl)", y="pH(HCl)", legend=True, marker="o",ylabel="pH")
plt.savefig(".\\images\\plots\\HCl.pgf")

我稍后会将此输出文件合并到我的 LaTeX 文档中,如下所示:

\begin{center}    
    \begin{figure}[h]
        \begin{center}
            \input{images/plots/HCl.pgf}      
        \end{center}
        \caption{HCl plot}
    \end{figure}
\end{center}

LaTeX 输出

如您在上面的输出中看到的,由于图像不是正方形,因此 x 轴标签相对于图形标签偏离中心。有没有办法添加水平偏移来解决这个问题?

答案1

更新

您的问题与 LaTeX 代码无关,而与 python 代码有关,因为这是生成轴标签的地方。

这是一个简单的矩形图,保存为HC5.pgf,稍后导入到 LaTeX 文档中。为了适合文本区域,它的大小已调整为\textwidth

import matplotlib.pyplot as plt
import numpy as np

# Data for plotting
t = np.arange(0.0, 20.0, 0.1)
s = 1 + 12*np.sin(0.1 * np.pi * t)

fig, ax = plt.subplots()
ax.plot(t, s)

ax.set(xlabel='Volym(HCl)', ylabel='pH(HCl)',   title='Simple plot')
ax.grid()

plt.savefig(".\\images\\plots\\HC5.pgf")

plt.show()

A

如您所见,生成的 xlabel (由matplotlib) 与图正确居中。

\documentclass{article}

\usepackage{pgf}

\usepackage{showframe}% show the margin

\begin{document}
      
\begin{figure}[h]
\centering
    \resizebox{\textwidth}{!}{\input{images/plots/HC5.pgf}}     
    \caption{HCl plot}
\end{figure}

\end{document}

(当然,假设这images是你的工作 LaTeX 目录的子目录)

Python 3.6.4

matplotlib 3.3.4

相关内容