使用 tikzplotlib 时子浮点数内的 pgfplots 对齐

使用 tikzplotlib 时子浮点数内的 pgfplots 对齐

我使用tikzplotlib下面的代码生成两个图。然后我将它们放在两个子浮点中。正如您在最终的 latex 输出中看到的那样,该图看起来相当丑陋,因为两个图的大小不同且不对齐。

我该怎么做才能使图的大小相同并正确对齐它们。也许值得注意的是,我的文档中有多个带有多个子浮点的图形。

Python:

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

x1=np.arange(0,10)*10e9
x2=np.arange(0,1000)
y1=np.random.randn(1,len(x1))[0]
y2=0.01*x2*np.random.randn(1,len(x2))[0]

KIT_green=(0/255,150/255,130/255)
KIT_blue=(70/255,100/255,170/255)

plt.figure()
plt.plot(x2,y2,label="second trace",color=KIT_green)
plt.xlabel(r"Time $t$ (in \si{\milli\second})")
plt.ylabel(r"Amplitude $S_{11}$ \\ (some measurement) \\ (and another meaningless line) (in \si{\volt})");
tikzplotlib.save("subfigs_left.tikz",extra_axis_parameters=["ylabel style={align=center}"],axis_width="5cm",axis_height="5cm")

plt.figure()
plt.plot(x1,y1,label="first trace",color=KIT_blue)
plt.xlabel(r"Time $t$ (in \si{\milli\second})")
plt.ylabel(r"Amplitude $S_{11}$, $S_{35}$ (in \si{\volt})");
tikzplotlib.save("subfigs_right.tikz",extra_axis_parameters=["ylabel style={align=center}"],axis_width="5cm",axis_height="5cm")

乳胶:

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{graphicx}
\usepackage{subfig}
\usepackage{siunitx}

\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{tikzscale}

\begin{document}
\begin{figure}
    \centering
        \subfloat[Plot 1: this shows this]{\includegraphics[width=0.4\textwidth]{subfigs_left.tikz}}
        \qquad
        \subfloat[Plot 2: and this shows that. But this explanation is quite long. blablabla]{\includegraphics[width=0.4\textwidth]{subfigs_right.tikz}}
       \caption{Two plots}
    \label{fig:subfig}
\end{figure}
\end{document}

结果

答案1

从 tikzplotlib 传递给 tikz 的轴高度和宽度指的是轴框。但\includegraphics命令的宽度参数指的是整个图的宽度,包括轴标签等。如果您希望框的大小相同,请使用[scale=1]而不是[width=0.4\textwidth]。垂直对齐它们可能有点棘手;我不熟悉 subfloat。

相关内容