Ich möchte ein Pgfplots-Diagramm neben mehrere andere PDF-Bilder einfügen, die ich in mein Dokument importiere, weiß aber nicht, wie ich die Pgfplots axis
im größeren Diagramm positionieren soll tikzpicture
:
\documentclass{article}
\usepackage{graphicx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{figure*}
\begin{center}
\begin{tikzpicture}
\node[anchor=south west] (img) at (0,0)
{\includegraphics[width=0.3\linewidth]{1.pdf}};
\node[anchor=south west]
at (0.01\linewidth,0.01\linewidth) {a};
\node[anchor=south west] (img) at (0.33\linewidth,0)
{\includegraphics[width=0.3\linewidth]{1.pdf}};
\node[anchor=south west]
at (0.34\linewidth,0.01\linewidth) {b};
\begin{axis}[width=0.45\linewidth, yticklabels={}]
\addplot [const plot, fill=red]
table [x index=0, y index=1]
{hist.txt}
\closedcycle;
\end{axis}
\end{tikzpicture}
\end{center}
\caption{\label{detdemo}An example of my output}
\end{figure*}
\end{document}
Hier ist die Beispielausgabe:
Das scheint mit dem des axis
zu beginnen .(0,0)
tikzpicture
Ich wollte sehen, wie ich diese Achse nach dem zweiten Bild positionieren kann. So, dass ihre untere linke Ecke auf ist (0.66\linewidth,0)
.
Antwort1
Die Koordinate für die linke untere Ecke des können Sie axis
mit der at
Taste festlegen.
at={(0.66\linewidth,0)}
Fügen Sie dies den axis
Optionen hinzu.
\documentclass{article}
\usepackage{graphicx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\begin{document}
\begin{figure*}
\begin{center}
\begin{tikzpicture}
\node[anchor=south west] (img) at (0,0)
{\includegraphics[width=0.3\linewidth]{example-image-a}};
\node[anchor=south west]
at (0.01\linewidth,0.01\linewidth) {a};
\node[anchor=south west] (img) at (0.33\linewidth,0)
{\includegraphics[width=0.3\linewidth]{example-image-b}};
\node[anchor=south west]
at (0.34\linewidth,0.01\linewidth) {b};
\begin{axis}[width=0.45\linewidth, yticklabels={},at={(0.66\linewidth,0)}]
\addplot [const plot, fill=red]
{x}
\closedcycle;
\end{axis}
\end{tikzpicture}
\end{center}
\caption{\label{detdemo}An example of my output}
\end{figure*}
\end{document}
Antwort2
Als schnellen Hack können Sie entweder ein scope
mit einem richtigen verwenden xshift
oder das axis
in ein anderes einfügen node
.
\documentclass{article}
\usepackage{graphicx}
\usepackage{pgfplots}
\pgfplotsset{compat=1.9}
\usetikzlibrary{positioning}
\begin{document}
\begin{figure*}
\begin{center}
\begin{tikzpicture}
\node[anchor=south west] (img1) at (0,0)
{\includegraphics[width=0.3\linewidth]{example-image-a}};
\node[anchor=south west]
at (0.01\linewidth,0.01\linewidth) {a};
\node[anchor=south west] (img2) at (0.33\linewidth,0)
{\includegraphics[width=0.3\linewidth]{example-image-b}};
\node[anchor=south west]
at (0.34\linewidth,0.01\linewidth) {b};
\begin{scope}[xshift=0.66\linewidth]
\begin{axis}[width=0.45\linewidth, yticklabels={}]
\addplot [const plot, fill=red]
{x} %% I changed this change it back
\closedcycle;
\end{axis}
\end{scope}
\end{tikzpicture}
\end{center}
\caption{\label{detdemo}An example of my output comes here}
\end{figure*}
\end{document}
Aber meiner Meinung nach ist es besser, wenn Sie eine andere tikzpicture
Umgebung verwenden.