このような図があり、2 つのサブ図があります。これを他のメイン ドキュメントに含めるにはどうすればよいですか? \input{figure_name} を使用すると、この図が親ドキュメントに表示されます。
\documentclass{article}
\usepackage{subcaption}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{adjustbox}
\begin{document}
\begin{figure}
\centering
\begin{subfigure}[b]{0.4\textwidth}
\begin{tikzpicture}
\begin{axis}[
trig format=rad, % <---
domain=0:1, % <---
samples=501, % <---
no marks] % <---
\addplot {sin(10*x};
\legend{$\sin(10x)$}
\end{axis}
\end{tikzpicture}
\end{subfigure}
\hfill
\begin{subfigure}[b]{0.4\textwidth}
\begin{tikzpicture}
\begin{axis}[
trig format=rad, % <---
domain=0:1, % <---
samples=501, % <---
no marks] % <---
\addplot {sin(100*x};
\legend{$\sin(100x)$}
\end{axis}
\end{tikzpicture}
\end{subfigure}
\caption{Increasing oscillatory function}
\end{figure}
\end{document}
答え1
このような:
両方の画像の設定は同じであると想定しているaxis
ため、ローカルで書き込むことができ\pgfplotsset
、これにより図のコードが少し短くなります。
\documentclass{article}
\usepackage{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{figure}
\centering
\pgfplotsset{% common settings for both images
width=\linewidth,
scale only axis,
trig format=rad, % <---
domain=0:pi/2, % <---
samples=501, % <---
no marks, % <---
% added,˛
every axis plot post/.append style={semithick},
legend style={font=\footnotesize,
cells={anchor=west}}
}
\begin{subfigure}[b]{0.45\textwidth}
\begin{tikzpicture}
\begin{axis}
\addplot {sin(10*x};
\addplot {sin(25*x)};
\addplot {sin(50*x)};
\legend{$\sin(10x)$,$\sin(25x)$,$\sin(50x)$}
\end{axis}
\end{tikzpicture}
\end{subfigure}
\hfil
\begin{subfigure}[b]{0.45\textwidth}
\begin{tikzpicture}
\begin{axis}
\addplot {sin(100*x)};
\addplot {sin(150*x))};
\addplot {sin(200*x))};
\legend{$\sin(100x)$,$\sin(150x)$,$\sin(200x)$}
\end{axis}
\end{tikzpicture}
\end{subfigure}
\caption{Increasing oscillatory function}
\label{fig:??}
\end{figure}
\end{document}
ご覧のとおり、画像を並列に配置すると、ページ レイアウトで画像の幅が狭くなり、結果として鮮明さが低下します。図の視認性を向上させるには、いくつかのオプションがあります。
- 拡大してページレイアウトを変更する
\textwidth
- ある画像を他の画像の上に置く
- 2番目の画像でドメインを縮小する
補遺:
- なぜサブフィギュアにキャプションがないのか不思議です
- 望ましくない場合は、
groupplot
代わりに使用することを検討してください。subfigures
- 以下の MWE では、次のことが考慮されています。
- 2番目の画像の縮小波領域
- パッケージ
\textwidth
の使用により増加geometry
- サブ図のキャプション内の数量には˙siunnitx`パッケージČが使用される
\documentclass{article}
\usepackage{geometry} % for setting page layout
\usepackage{siunitx}
\usepackage[font=small]{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{figure}
\pgfplotsset{% common settings for both images
width=0.8\linewidth,
scale only axis,
enlargelimits = 0.05,
trig format=rad,
samples=801,
no marks,
% added, for better diagram formating
x tick label style={/pgf/number format/.cd, zerofill, fixed},
every axis plot post/.append style={semithick},
legend style={font=\footnotesize,
cells={anchor=west}}
}
\begin{subfigure}[b]{0.48\textwidth}
\begin{tikzpicture}
\begin{axis}[
domain=0:1, % <---
]
\addplot {sin(10*x};
\addplot {sin(25*x)};
\addplot {sin(50*x)};
\legend{$\sin(10x)$,$\sin(25x)$,$\sin(50x)$}
\end{axis}
\end{tikzpicture}
\caption{Sinus waves on domain \qtyrange{0}{1}{\radian}.}
\end{subfigure}
\hfil
\begin{subfigure}[b]{0.48\textwidth}
\begin{tikzpicture}
\begin{axis}[
domain=0:0.25, % <---
]
\addplot {sin(100*x)};
\addplot {sin(150*x)};
\addplot {sin(200*x)};
\legend{$\sin(100x)$,$\sin(150x)$,$\sin(200x)$}
\end{axis}
\end{tikzpicture}
\caption{Sinus waves on domain \qtyrange{0}{0.25}{\radian}.}
\end{subfigure}
\caption{Increasing oscillatory function}
\label{fig:??}
\end{figure}
\end{document}
\documentclass{article}
\usepackage{geometry} % for setting page layout
\usepackage{siunitx}
\usepackage[font=small]{subcaption}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{figure}
\pgfplotsset{% common settings for both images
width=0.8\linewidth,
scale only axis,
enlargelimits = 0.05,
trig format=rad, % <---
samples=801, % <---
no marks, % <---
% added,
x tick label style={/pgf/number format/.cd, zerofill, fixed},
every axis plot post/.append style={semithick},
legend style={font=\footnotesize,
cells={anchor=west}}
}
\begin{subfigure}[b]{0.48\textwidth}
\begin{tikzpicture}
\begin{axis}[
domain=0:1, % <---
]
\addplot {sin(10*x};
\addplot {sin(25*x)};
\addplot {sin(50*x)};
\legend{$\sin(10x)$,$\sin(25x)$,$\sin(50x)$}
\end{axis}
\end{tikzpicture}
\caption{Sinus waves on domain \qtyrange{0}{1}{\radian}.}
\end{subfigure}
\hfil
\begin{subfigure}[b]{0.48\textwidth}
\begin{tikzpicture}
\begin{axis}[
domain=0:0.25, % <---
]
\addplot {sin(100*x)};
\addplot {sin(150*x)};
\addplot {sin(200*x)};
\legend{$\sin(100x)$,$\sin(150x)$,$\sin(200x)$}
\end{axis}
\end{tikzpicture}
\caption{Sinus waves on domain \qtyrange{0}{0.25}{\radian}.}
\end{subfigure}
\caption{Increasing oscillatory function}
\label{fig:??}
\end{figure}
\end{document}