Insertar gráficos en asíntotas o diagramas de pgf

Insertar gráficos en asíntotas o diagramas de pgf

¿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 1

Esta es la figura 2, que es un gráfico de pgfplots. esta es la figura 2

Esta es la figura 3, que es una imagen jpg.

Esta es la figura 3

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 2.

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. Esto es una combinación de la figura 1 y la figura 3.

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 pgfplotsinteriorpgfplots 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 axisentorno 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 cses un sistema de coordenadas que tiene (0,0)en la esquina inferior izquierda de la axisy (1,1)en la superior derecha.

Tenga en cuenta que si tiene, por ejemplo, el pgfplotsgráfico como un PDF vectorizado, incluirlo de esta manera no lo rasterizará, por lo que puede utilizar este método para ambos.

ingrese la descripción de la imagen aquí

\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) y draft=boolParámetros del modo borrador ( ). La layer()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. captura de pantalla del pdf generado

información relacionada