我使用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。