我目前刚开始使用 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}
如您在上面的输出中看到的,由于图像不是正方形,因此 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()
如您所见,生成的 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