Como outros gráficos podem ser inseridos em Asymptote ou pgfplots? A seguir está um MWE em pgfplots que cria três figuras no documento. A figura principal na qual desejo inserir gráficos é um gráfico pgfplot e as outras duas são gráficos vetoriais ou raster.
\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 é a figura 1, que é um gráfico pgfplots.
Esta é a figura 2, que é um gráfico pgfplots.
Esta é a figura 3, que é uma imagem jpg.
Isso é combinado com a figura 1 e a figura 2. A figura 2 é colocada dentro da figura 1 no canto superior esquerdo. Eu gostaria que esta figura fosse um gráfico vetorial
Isso é combinado com a figura 1 e a figura 3. A figura 3 é colocada dentro da figura 1 no canto superior esquerdo. Eu gostaria que a figura 1 ainda fosse um gráfico vetorial.
Eu ficaria grato se alguém pudesse me ajudar como posso inserir outros gráficos vetoriais, bem como gráficos raster em Asymptote e pgfplots.
Responder1
Para o pgfplots
interior pgfplots
você poderia combinar os dois gráficos no código, como visto emComo o gráfico em \groupplot poderia ser movido horizontal e verticalmente?
Para a imagem, adicione o seguinte dentro do axis
ambiente da figura 1:
\node [above right] at (rel axis cs:0.2,0.4) {\includegraphics[width=2.5cm]{piv}};
As coordenadas exatas, que especificam a localização do canto inferior esquerdo da imagem, e a largura provavelmente deverão ser modificadas. rel axis cs
é um sistema de coordenadas que possui (0,0)
no canto inferior esquerdo do axis
e (1,1)
no canto superior direito.
Observe que se você tiver, por exemplo, o pgfplots
gráfico como um PDF vetorizado, incluí-lo dessa forma não irá rasterizá-lo, portanto você pode usar 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}
Responder2
Quanto ao Assíntota, você pode usar o label
comando para incluir gráficos EPS externos, conforme explicado emo manual(versão 2.24, pág. 19):
A função
string graphic(string name, string options="")
retorna uma string que pode ser usada para incluir um arquivo PostScript encapsulado (EPS). Aqui, nome é o nome do arquivo a ser incluído e opções é uma string contendo uma lista separada por vírgula de caixa delimitadora opcional (bb=llx lly urx ury
), largura (width=value
), altura (height=value
), rotação (angle=value
), escala (scale=factor
), recorte (clip=bool
) e parâmetros do modo rascunho (draft=bool
). Alayer()
função pode ser usada para forçar o desenho de objetos futuros sobre a imagem incluída:
label(graphic("file.eps","width=1cm"),(0,0),NE);
layer();
Responder3
Asymptote suporta a importação direta da imagem externa, você pode ver seu código de amostra em seu repositório de origem GitHubortocentro.asy, o arquivo png está localizado aquipiicon.pngpara uma referência.
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);
Observe a última instrução do código. Aqui está a captura de tela do resultado do pdf.