Ich möchte ein Diagramm mit äußeren Legenden zentrieren, aber die gesamte Abbildung wird zentriert (Diagramm mit Legenden). Die Position des Diagramms sollte so sein, als ob die äußere Legende nicht vorhanden wäre.
\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}
Es sollte aber so aussehen (natürlich mit der hinzugefügten äußeren Legende):
Antwort1
Ich denke, der einfachste Weg, Ihr Ziel zu erreichen, besteht darin, einfach overlay
die legend style
Optionen zu erweitern. Dadurch wird verhindert, dass die Legende bei der Bestimmung des Begrenzungsrahmens berücksichtigt wird.
% 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}
Antwort2
Suchen Sie nach Folgendem?
(rote Linien kennzeichnen Textränder)
Hierzu müssen Sie lediglich tikzpicture
der Option hinzufügen 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}