如何影响使用 tikzplotlib 从 Python 生成的 tikzpicture 的大小?

如何影响使用 tikzplotlib 从 Python 生成的 tikzpicture 的大小?

我有一个tikzpicture使用 Python 生成了一个tikzplotlib

import numpy as np
import matplotlib.pyplot as plt
import tikzplotlib

vector = np.array([1, 2, 3])
plt.figure(figsize=(6, 4))
plt.plot(vector, vector)
tikzplotlib.save('test.tex')

现在,如果我在 Python 中更改figsize,我的 Python 环境中的图像大小确实会改变。但在 LaTeX 文档中,我tikzpicture使用导入\input{test.tex}大小不会改变。如何在 Python 或 LaTeX 中定义大小,而不拉伸文本/数字,这应该保持 LaTeX 文本的标准大小?在这个问题不能解决我的问题。

答案1

如自述文件中所述,tikzplotlib可以使用figurewidth/figureheight键设置图的宽度和/或高度tikz_save

tikz_save('someplot.tex', figureheight='5cm', figurewidth='9cm')

我相信这些长度仅指轴框的大小,不包括刻度标签、轴标签和标题。

您也可以将值设置为宏,并通过文档中的名称定义长度,即

tikz_save(
    'someplot.tex',
    figureheight = '\\figH',
    figurewidth = '\\figW'
    )

在您的 LaTeX 文档中:

\documentclass{article}
\usepackage{pgfplots,amsmath}

\newlength\figH
\newlength\figW
\setlength{\figH}{4cm}
\setlength{\figW}{8cm}

\begin{document}

Some text, then a centred plot:

\begin{center}
\input{firstplot}
\end{center}

More text, then a wider plot:

\begin{center}
\setlength{\figW}{10cm} % when added inside the  center environment it has no effect outside it
\input{secondplot}
\end{center}

\end{document}

这基本上与matlab2tikz(参见我的回答tikz + matlab2tikz),只不过键是figurewidth/ figureheight,而不是width/ height

答案2

在 0.9.3 版本中您似乎需要axis_heightand axis_width,而不是figureheightand figurewidth

相关内容