我编写了以下代码来排列三个图形,如下图所示。您有什么想法,如何更好地排列这些图形?由于某些原因,图片的左右两侧有大量可用空间。如果我用 替换0.45\textwidth
,例如,0.5\textwidth
那么我将有三个图形在列中对齐!!顺便说一句,\subfigure
由于包之间的冲突,我无法使用命令。
非常感谢
\documentclass[letterpaper,12pt,oneside,final]{book}
\usepackage{tikz,float,subfig}
\usepackage{amsmath}
\usepackage{graphicx}
\usepackage{caption}
\usepackage{pgfplots}
\usepackage{mwe}
\newsavebox{\measurebox}
\begin{document}
%%%%%
%%%%%
\begin{figure}
\centering
\sbox{\measurebox}{%
\begin{minipage}[b]{0.45\textwidth}
\subfloat[]
{
\begin{tikzpicture}[baseline]
\begin{axis}[
width=\textwidth,
]
\addplot[solid,smooth,mark=none,color={rgb,255:red,0; green,0; blue,255}]
coordinates {(9.8,0) (10.1,0.25)
(10.4,0.5) (10.7,0.75) (11,1)};
\end{axis}
\end{tikzpicture}
}
\end{minipage}}
\usebox{\measurebox}
\begin{minipage}[b][\ht\measurebox][s]{0.45\columnwidth}
\centering
\subfloat[]
{
\begin{tikzpicture}[baseline]
\begin{axis}[
width=0.5\textwidth,
]
\addplot[solid,smooth,mark=none,color={rgb,255:red,0; green,0; blue,255}]
coordinates {(-180,0) (-90,0.25)
(0,0.5) (90,0.75) (180,1)};
\end{axis}
\end{tikzpicture}
\label{fig:Ex02_FT_fields}
}
\vfill
\subfloat[]
{\includegraphics[width=0.5\textwidth,height=2cm]{{example-image-a}}\label{fig:figC}}
\end{minipage}
\caption{my caption. (a) is .... (b) is .... (c) is ....}
\label{fig:Test}
\end{figure}
\end{document}
答案1
我猜你想获得这样的东西:
上述结果是我通过以下 MWE(最小工作示例)获得的:
\documentclass[letterpaper,12pt,oneside,final]{book}
\usepackage[demo]{graphicx}
\usepackage{caption}
\usepackage{subfig}
\usepackage{amsmath}
\usepackage{pgfplots}
\pgfplotsset{compat = newest}
\usepackage{lipsum} % for dummy text
\begin{document}
\lipsum[1]
\begin{figure}[htb]
\begin{minipage}[b]{0.60\textwidth}
\subfloat[]
{
\begin{tikzpicture}
\begin{axis}[
width=\linewidth,
line width=1pt,
ymin=0, ymax=1,
xmin=9.8, xmax=11,
xlabel=Frquency (GHz),
ylabel=$\left|S_{64}\right|$,
]
\addplot[mark=none] coordinates {(9.8,0) (10.1,0.25)
(10.4,0.5) (10.7,0.75) (11,1)};
\end{axis}
\end{tikzpicture}
}
\end{minipage}\hfill%
\begin{minipage}[b]{0.35\columnwidth}
\centering
\subfloat[]
{
\begin{tikzpicture}
\begin{axis}[
width=\linewidth,
line width=1pt,
ymin=0, ymax=1,
xmin=-180, xmax=180,
xlabel=$\theta\,\left(\text{degree}\right)$,
ylabel=$\text{FT}\left( H_z\right)$,
]
\addplot[mark=none] coordinates {(-180,0) (-90,0.25)
(0,0.5) (90,0.75) (180,1)};
\end{axis}
\end{tikzpicture}
\label{fig:Ex02_FT_fields}
}
\subfloat[]
{
\includegraphics[width=\linewidth,height=2cm,keepaspectratio]{figures/temp_disp}
\label{fig:figC}
}
\end{minipage}
\caption{my caption. (a) is .... (b) is .... (c) is ....}
\label{fig:Test}
\end{figure}
\lipsum[2]
\end{document}
如您所见,我删除了所有与您的问题无关的包和定义。我必须承认,我不明白您在图中包含图像的方式。似乎使用是savingbox
您的问题的根源。删除它们并更正图像宽度的定义width=\textwidth
可以\linewidth
更好地完成工作。
我还没有弄清楚小页面的宽度比例。你可以根据需要进行更改。