我有一个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_height
and axis_width
,而不是figureheight
and figurewidth
。