Я хотел бы центрировать сюжет с внешними легендами, но вся фигура центрируется (сюжет с легендами). Положение сюжета должно быть таким, как будто внешней легенды нет.
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usepackage{tikz}
\begin{document}
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{semilogxaxis}[
xmin=0.01,xmax=100,
ymin=0,ymax=5,
width=8cm,
legend style={at={(1.03,0.5)},anchor=west,draw=none},
legend cell align={left},
grid]
\addplot[red,domain=0.01:100,samples=400]{(2)/(1+x^2)};
\addplot[blue,domain=0.01:100,samples=400]{(1+x^2)/(1-x^2+x^4)};
\legend{$Q=0.5$,$Q=1$}
\end{semilogxaxis}
\end{tikzpicture}
\caption{Lorem Ipsum}
\end{figure}
\end{document}
Но выглядеть должно вот так (конечно, с добавлением внешней легенды):
решение1
Я думаю, что самый простой способ добиться желаемого — просто добавить overlay
опции legend style
. Это предотвращает учет легенды при определении ограничивающей рамки.
% used PGFPlots v1.16
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{semilogxaxis}[
xmin=0.01,xmax=100,
ymin=0,ymax=5,
width=8cm,
legend style={
overlay, % <-- added
at={(1.03,0.5)},
anchor=west,
draw=none,
},
legend cell align={left},
grid,
domain=0.01:100,samples=400,
]
\addplot [red] {(2)/(1+x^2)};
\addplot [blue] {(1+x^2)/(1-x^2+x^4)};
\legend{$Q=0.5$,$Q=1$}
\end{semilogxaxis}
\end{tikzpicture}
\caption{Lorem Ipsum}
\end{figure}
\end{document}
решение2
Вы ищете следующее?
(красные линии обозначают границы текста)
Для этого вам нужно всего лишь добавить к tikzpicture
опции trim axis left, trim axis right
:
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16}
%---------------- show page layout. don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\begin{document}
\begin{figure}[ht]
\centering
\begin{tikzpicture}[trim axis left, trim axis right] % <-------
\begin{semilogxaxis}[
xmin=0.01,xmax=100,
ymin=0,ymax=5,
width=8cm,
legend style={at={(1.03,0.5)},anchor=west,draw=none},
legend cell align={left},
grid]
\addplot[red,domain=0.01:100,samples=400]{(2)/(1+x^2)};
\addplot[blue,domain=0.01:100,samples=400]{(1+x^2)/(1-x^2+x^4)};
\legend{$Q=0.5{}$,$Q=1$}
\end{semilogxaxis}
\end{tikzpicture}
\caption{Lorem Ipsum}
\end{figure}
\end{document}