¿Cómo se pueden insertar otros gráficos en asíntotas o pgfplots? El siguiente es un MWE en pgfplots que crea tres figuras en el documento. La figura principal en la que quiero insertar gráficos es un gráfico pgfplot y las otras dos son gráficos vectoriales o rasterizados.
\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}
Esta es la figura 1, que es un gráfico de pgfplots.
Esta es la figura 2, que es un gráfico de pgfplots.
Esta es la figura 3, que es una imagen jpg.
Esto es una combinación de la figura 1 y la figura 2. La figura 2 se coloca dentro de la figura 1 en la esquina superior izquierda. Me gustaría que esta figura fuera un gráfico vectorial.
Esto es una combinación de la figura 1 y la figura 3. La figura 3 se coloca dentro de la figura 1 en la esquina superior izquierda. Me gustaría que la figura 1 siguiera siendo un gráfico vectorial.
Estaría agradecido si alguien pudiera ayudarme a insertar otros gráficos vectoriales, así como gráficos rasterizados, en asíntotas y pgfplots.
Respuesta1
Para el pgfplots
interiorpgfplots
puede combinar los dos gráficos en el código, como se ve en¿Cómo se podría mover horizontal y verticalmente la trama en \groupplot?
Para la imagen, agregue lo siguiente dentro del axis
entorno de la figura 1:
\node [above right] at (rel axis cs:0.2,0.4) {\includegraphics[width=2.5cm]{piv}};
Las coordenadas exactas, que especifican la ubicación de la esquina inferior izquierda de la imagen, y el ancho probablemente deberían modificarse. rel axis cs
es un sistema de coordenadas que tiene (0,0)
en la esquina inferior izquierda de la axis
y (1,1)
en la superior derecha.
Tenga en cuenta que si tiene, por ejemplo, el pgfplots
gráfico como un PDF vectorizado, incluirlo de esta manera no lo rasterizará, por lo que puede utilizar este método para ambos.
\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}
Respuesta2
En cuanto a la asíntota, puedes usar lalabel
comando para incluir gráficos EPS externos, como se explica enel manual(versión 2.24, pág. 19):
La función
string graphic(string name, string options="")
devuelve una cadena que se puede utilizar para incluir un archivo PostScript encapsulado (EPS). Aquí, nombre es el nombre del archivo a incluir y opciones es una cadena que contiene una lista separada por comas de cuadros delimitadores opcionales (bb=llx lly urx ury
), ancho (width=value
), alto (height=value
), rotación (angle=value
), escala (scale=factor
), recorte (clip=bool
) ydraft=bool
Parámetros del modo borrador ( ). Lalayer()
función se puede utilizar para forzar que se dibujen objetos futuros encima de la imagen incluida:
label(graphic("file.eps","width=1cm"),(0,0),NE);
layer();
Respuesta3
Asymptote admite la importación directa de la imagen externa; puede ver su código de muestra en su repositorio fuente de GitHub.ortocentro.asy, el archivo png se encuentra aquípiicon.pngpara una referencia.
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);
Tenga en cuenta la última declaración del código. Aquí está la captura de pantalla del resultado del pdf.