无法将图形并排放置

无法将图形并排放置

我正在尝试将两个 TiKz 图片并排放置在一个双列文档 (IEEEtrans 样式) 中。我研究过各种解决方案,但每个声称将图形并排放置的解决方案都只能将图一个放在另一个上方:

在此处输入图片描述

目前我正在尝试使用以下subfigure环境:

\documentclass[letterpaper, 10 pt, conference]{ieeeconf} 

\IEEEoverridecommandlockouts                           
\overrideIEEEmargins 


\usepackage{graphicx} 
\usepackage{amssymb}
\usepackage{algorithm}
\usepackage{algorithmic}
\newcommand{\tsc}[1]{\textsuperscript{#1}}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{subcaption} 
\usepackage{pgfplots}
\usepackage{pgfplotstable}

\usepgfplotslibrary{groupplots}

\usetikzlibrary{calc,trees,positioning,arrows,chains,shapes.geometric,%
    decorations.pathreplacing,decorations.pathmorphing,shapes,%
    matrix,shapes.symbols}

\pgfplotsset{
tick label style={font=\tiny}, %axis numbers font size
label style={font=\small}, %axis labels font size
legend style={font=\tiny}
}


\begin{figure}
    \centering
    \begin{subfigure}[t]{0.48\textwidth}
        \centering
        %\input{figs/roc_curve.tikz}
        \resizebox{0.5\linewidth}{!}{\input{figs/roc.tikz}}  
        \caption{Caption A}
        \label{fig:A}
    \end{subfigure}
    \begin{subfigure}[b]{0.48\textwidth}
        \centering
        %\input{figs/roc_curve.tikz}
        \resizebox{0.5\linewidth}{!}{\input{figs/roc.tikz}}  
        \caption{Caption B}
        \label{fig:B}
    \end{subfigure}    
    \caption{ROC curve of failure detection;}
    \label{fig:roc_curve}
\end{figure}

(...)

\end{document}

究竟是什么原因导致这些图只能垂直对齐?

答案1

您必须使用\linewidth\columnwidth代替\textwidth

\begin{subfigure}[b]{0.48\textwidth}

两处均如此。\textwidth是包括两列在内的整个文本的宽度。有关\linewidth和的详细信息,\textwidth请参阅对此答案

\documentclass[letterpaper,10 pt,conference]{ieeeconf}

\usepackage{graphicx,subcaption}

\begin{document}
\begin{figure}
    \centering
    \begin{subfigure}[b]{0.48\linewidth}        %% or \columnwidth
        \centering
        \includegraphics[width=\linewidth]{example-image-a}
        \caption{Caption A}
        \label{fig:A}
    \end{subfigure}
    \begin{subfigure}[b]{0.48\linewidth}        %% or \columnwidth
        \centering
        \includegraphics[width=\linewidth]{example-image-b}
        \caption{Caption B}
        \label{fig:B}
    \end{subfigure}
    \caption{ROC curve of failure detection;}
    \label{fig:roc_curve}
\end{figure}

(...)

\end{document}

在此处输入图片描述

我已经使用[b]两个subfigures 来正确对齐它们。

答案2

如果您想将两个图形并排放置在一列上,Harish 的解决方案就是您所需要的。但是如果您想将两个图形都放置在两列上,则必须使用环境figure*。当您使用文档时twocolumnfiguretable环境与一列一样宽,而figure*table*使用两列。

下一个示例显示了这些差异。第一个示例取自 Harish 的答案,第二个示例使用figure*

\documentclass[letterpaper,10 pt,conference]{ieeeconf}

\usepackage{graphicx,subcaption}
\usepackage{lipsum}

\begin{document}
\begin{figure}
    \centering
    \begin{subfigure}[b]{0.48\linewidth}        %% or \columnwidth
        \centering
        \includegraphics[width=\linewidth]{example-image-a}
        \caption{Caption A}
        \label{fig:A}
    \end{subfigure}
    \begin{subfigure}[b]{0.48\linewidth}        %% or \columnwidth
        \centering
        \includegraphics[width=\linewidth]{example-image-b}
        \caption{Caption B}
        \label{fig:B}
    \end{subfigure}
    \caption{ROC curve of failure detection;}
    \label{fig:roc_curve}
\end{figure}

\lipsum

\begin{figure*}
    \centering
    \begin{subfigure}[b]{\columnwidth}        %% or \columnwidth
        \centering
        \includegraphics[width=\linewidth]{example-image-a}
        \caption{Caption A}
        \label{fig:A}
    \end{subfigure}
    \hfill
    \begin{subfigure}[b]{\columnwidth}        %% or \columnwidth
        \centering
        \includegraphics[width=\linewidth]{example-image-b}
        \caption{Caption B}
        \label{fig:B}
    \end{subfigure}
    \caption{ROC curve of failure detection;}
    \label{fig:roc_curve}
\end{figure*}

\lipsum
\end{document}

在此处输入图片描述

在此处输入图片描述

相关内容