Wie können andere Grafiken in Asymptote oder pgfplots eingefügt werden? Das Folgende ist ein MWE in pgfplots, das drei Abbildungen im Dokument erstellt. Die Hauptabbildung, in die ich Grafiken einfügen möchte, ist eine pgfplot-Grafik und die anderen beiden sind Vektor- oder Rastergrafiken.
\documentclass{article}
\usepackage{pgfplots}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{graphicx}
\pgfplotsset{compat=newest}
\begin{document}
Figure 1 is the main figure that will be used for the insertion of a vector or a raster graphics.
\begin{figure}
\begin{tikzpicture}
\begin{axis}[
colormap={bw}{gray(0cm)=(0); gray(1cm)=(1)}]
\addplot+[scatter,only marks,
domain=0:8,samples=100]
{exp(x)};
\end{axis}
\end{tikzpicture}
\caption{This is the main figure.}
\end{figure}
Figure 2 is a graphics which I want to be inside figure 1, which is a vector graphics. I want to place it in the upper left corner position.
\begin{figure}
\begin{tikzpicture}
\begin{axis}[colormap/bluered]
\addplot+[scatter,
scatter src=x,samples=50]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\caption{This figure needs to be inside figure 1.}
\end{figure}
Figure 3 is another graphics which I want to be placed inside figure 1 in the upper left corner.
\begin{figure}
\includegraphics[width=\linewidth]{piv.jpg}
\caption{This figure needs to be inside figure 1}.
\end{figure}
\end{document}
Dies ist Abbildung 1, eine pgfplots-Grafik.
Dies ist Abbildung 2, eine pgfplots-Grafik.
Dies ist Abbildung 3, ein JPG-Bild.
Dies ist eine Kombination aus Abbildung 1 und Abbildung 2. Abbildung 2 ist in Abbildung 1 in der oberen linken Ecke platziert. Ich möchte, dass diese Abbildung eine Vektorgrafik ist
Dies ist eine Kombination aus Abbildung 1 und Abbildung 3. Abbildung 3 ist in Abbildung 1 in der oberen linken Ecke platziert. Abbildung 1 soll weiterhin eine Vektorgrafik sein.
Ich wäre dankbar, wenn mir jemand helfen könnte, wie ich andere Vektorgrafiken sowie Rastergrafiken in Asymptote und pgfplots einfügen kann.
Antwort1
Für das pgfplots
Innere pgfplots
können Sie die beiden Diagramme im Code kombinieren, wie inWie kann das Diagramm in \groupplot horizontal und vertikal verschoben werden?
Fügen Sie für das Bild Folgendes in die axis
Umgebung von Abbildung 1 ein:
\node [above right] at (rel axis cs:0.2,0.4) {\includegraphics[width=2.5cm]{piv}};
Die genauen Koordinaten, die die Lage der linken unteren Ecke des Bildes sowie die Breite angeben, müssen möglicherweise geändert werden. rel axis cs
ist ein Koordinatensystem, das (0,0)
in der linken unteren Ecke des Bildes axis
und (1,1)
in der rechten oberen Ecke hat.
Beachten Sie, dass, wenn Sie beispielsweise den pgfplots
Plot als vektorisiertes PDF haben, diese Einbindung auf diese Weise nicht zu einer Rasterung führt, Sie können diese Methode also für beides verwenden.
\documentclass{article}
\usepackage{pgfplots}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{graphicx}
\pgfplotsset{compat=newest}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap={bw}{gray(0cm)=(0); gray(1cm)=(1)}]
\addplot+[scatter,only marks,
domain=0:8,samples=100]
{exp(x)};
\coordinate (otheraxis) at (rel axis cs:0.2,0.4);
\end{axis}
\begin{axis}[colormap/bluered,at={(otheraxis)},width=5cm]
\addplot+[scatter,
scatter src=x,samples=50]
{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\caption{This is the main figure.}
\end{figure}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap={bw}{gray(0cm)=(0); gray(1cm)=(1)}]
\addplot+[scatter,only marks,
domain=0:8,samples=100]
{exp(x)};
\node [above right] at (rel axis cs:0.1,0.25) {\includegraphics[width=3cm]{piv}};
\end{axis}
\end{tikzpicture}
\caption{This is the main figure.}
\end{figure}
\end{document}
Antwort2
Wie bei Asymptote können Sie den label
Befehl verwenden, um externe EPS-Grafiken einzubinden, wie indas Handbuch(Version 2.24, S. 19):
Die Funktion
string graphic(string name, string options="")
gibt einen String zurück, der zum Einbinden einer gekapselten PostScript-Datei (EPS) verwendet werden kann. Dabei ist Name der Name der einzubindenden Datei und Optionen ist ein String, der eine durch Kommas getrennte Liste optionaler Parameter für Begrenzungsrahmen (bb=llx lly urx ury
), Breite (width=value
), Höhe (height=value
), Drehung (angle=value
), Skalierung (scale=factor
), Ausschnitt (clip=bool
) und Entwurfsmodus (draft=bool
) enthält. Dielayer()
Funktion kann verwendet werden, um zu erzwingen, dass zukünftige Objekte über dem eingebundenen Bild gezeichnet werden:
label(graphic("file.eps","width=1cm"),(0,0),NE);
layer();
Antwort3
Asymptote unterstützt den direkten Import des externen Bildes. Sie können den Beispielcode im GitHub-Quellrepo sehen.orthocenter.asy, die PNG-Datei befindet sich hierpiicon.pngals Referenz.
import geometry;
import math;
size(7cm,0);
if(!settings.xasy && settings.outformat != "svg") settings.tex="pdflatex";
real theta=degrees(asin(0.5/sqrt(7)));
pair B=(0,sqrt(7));
pair A=B+2sqrt(3)*dir(270-theta);
pair C=A+sqrt(21);
pair O=0;
pair Ap=extension(A,O,B,C);
pair Bp=extension(B,O,C,A);
pair Cp=extension(C,O,A,B);
perpendicular(Ap,NE,Ap--O,blue);
perpendicular(Bp,NE,Bp--C,blue);
perpendicular(Cp,NE,Cp--O,blue);
draw(A--B--C--cycle);
draw("1",A--O,-0.25*I*dir(A--O));
draw(O--Ap);
draw("$\sqrt{7}$",B--O,LeftSide);
draw(O--Bp);
draw("4",C--O);
draw(O--Cp);
dot("$O$",O,dir(B--Bp,Cp--C),red);
dot("$A$",A,dir(C--A,B--A),red);
dot("$B$",B,NW,red);
dot("$C$",C,dir(A--C,B--C),red);
dot("$A'$",Ap,dir(A--Ap),red);
dot("$B'$",Bp,dir(B--Bp),red);
dot("$C'$",Cp,dir(C--Cp),red);
label(graphic("piicon.png","width=2.5cm, bb=0 0 147 144"),Ap,5ENE);
Beachten Sie die letzte Anweisung des Codes. Hier ist der Ergebnis-Screenshot des PDFs.