Autor Tema: Gráficos en LaTeX

0 Usuarios y 1 Visitante están viendo este tema.

11 Diciembre, 2017, 01:29 am
Leído 4752 veces

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola a todos! Me encuentro haciendo la guía de ejercicios.

Tengo una consulta: vi que en este artículo (¿artículo?) de Fernando realiza un gráfico que es un diagrama de Hasse. Mi pregunta es, ante tan "sencillo" gráfico, ¿cómo hago para obtenerlo? ¿Directamente se puede dibujar un gráfico como ese desde TeXnicCenter?

Lo que yo hice con otros gráficos fue dibujarlo en Microsoft Visio, guardarlo como Dibujo de Microsoft Visio (.vsdx) y luego convertirlo a formato EPS, para así insertarlo con el paquete graphicx. No queda mal, pero quería saber si hay otra forma más rápido de hacerlo. Sino lo haré como hice con los otros gráficos.

Gracias!

Saludos

11 Diciembre, 2017, 02:55 am
Respuesta #1

ingmarov

  • Moderador Global
  • Mensajes: 4,799
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola a todos! Me encuentro haciendo la guía de ejercicios.

Tengo una consulta: vi que en este artículo (¿artículo?) de Fernando realiza un gráfico que es un diagrama de Hasse. Mi pregunta es, ante tan "sencillo" gráfico, ¿cómo hago para obtenerlo? ¿Directamente se puede dibujar un gráfico como ese desde TeXnicCenter?

Lo que yo hice con otros gráficos fue dibujarlo en Microsoft Visio, guardarlo como Dibujo de Microsoft Visio (.vsdx) y luego convertirlo a formato EPS, para así insertarlo con el paquete graphicx. No queda mal, pero quería saber si hay otra forma más rápido de hacerlo. Sino lo haré como hice con los otros gráficos.

Gracias!

Saludos

Hola manooooh

Mira con el paquete Tikz



El código que utilicé fue

Código: [Seleccionar]
\begin{tikzpicture}[scale=3]
\node(A)at(0,0){\LARGE a};
\node(B)at(2,0){\LARGE b};
\node(C)at(-1,1){\LARGE c};
\node(D)at(1,1){\LARGE d};
\node(E)at(3,1){\LARGE e};
\node(F)at(0,2){\LARGE f};
\node(G)at(2,2){\LARGE g};
\node(H)at(1,3){\LARGE h};
\path(D)edge(F)edge(G)edge(A)edge(B);
\path(F)edge(C)edge(H);
\path(G)edge(E)edge(H);
\path (A)edge(C);
\path(B)edge(E);
\end{tikzpicture}


La ventaja de utilizar paquetes de Latex es que la fuente (texto) se mantiene uniforme en todo el documento.
Aunque nos es fácil dibujar con código puro es altamente satisfactorio.



Saludos
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

11 Diciembre, 2017, 11:41 am
Respuesta #2

Luis Fuentes

  • el_manco
  • Administrador
  • Mensajes: 47,047
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Hola

Tengo una consulta: vi que en este artículo (¿artículo?) de Fernando realiza un gráfico que es un diagrama de Hasse. Mi pregunta es, ante tan "sencillo" gráfico, ¿cómo hago para obtenerlo? ¿Directamente se puede dibujar un gráfico como ese desde TeXnicCenter?

Lo que yo hice con otros gráficos fue dibujarlo en Microsoft Visio, guardarlo como Dibujo de Microsoft Visio (.vsdx) y luego convertirlo a formato EPS, para así insertarlo con el paquete graphicx. No queda mal, pero quería saber si hay otra forma más rápido de hacerlo. Sino lo haré como hice con los otros gráficos.

 Puedes hacerlo también con el paquete XY-PIC que funciona aquí también en el foro. Por ejemplo:

[tex] \xymatrix{
&&h\ar@{-}[rd]\ar@{-}[ld]&&\\
&f\ar@{-}[rd]\ar@{-}[ld]&&g\ar@{-}[rd]\ar@{-}[ld]&\\
c\ar@{-}[rd]&&d\ar@{-}[rd]\ar@{-}[ld]&&e\ar@{-}[ld]\\
&a&&b&\\}[/tex]

Para obtener:

\(  \xymatrix{
&&h\ar@{-}[rd]\ar@{-}[ld]&&\\
&f\ar@{-}[rd]\ar@{-}[ld]&&g\ar@{-}[rd]\ar@{-}[ld]&\\
c\ar@{-}[rd]&&d\ar@{-}[rd]\ar@{-}[ld]&&e\ar@{-}[ld]\\
&a&&b&\\} \)

Saludos.

11 Diciembre, 2017, 05:31 pm
Respuesta #3

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola ingmarov y Luis, los voy a tener en cuenta. Al parecer son unos de los mejores y más completos paquetes para realizar gráficos. De a poco voy a aprender a usar ambos.

Gracias!

Saludos

17 Diciembre, 2017, 05:58 pm
Respuesta #4

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola a todos! Les dejo mi forma de hacer un sencillo esquema como son dos diagramas, uno al lado del otro, y con numeración (usando el entorno figure):

\begin{ figure}[h]
   \hfil
   \begin{subfigure}{0.27\textwidth}
      \begin{tikzpicture}[-,>=stealth',thick]
         \node at (0,0) (i) {$i$};
         \node at (-1,1) (g) {$g$};
         \node at (1,1) (h) {$h$};
         \node at (-2,2) (a) {$a$};
         \node at (0,2) (f) {$f$};
         \node at (2,2) (e) {$e$};
         \node at (-1,3) (b) {$b$};
         \node at (1,3) (d) {$d$};
         \node at (0,4) (c) {$c$};
         
         \draw (i) to (g) to (a) to (b) to (c) to (d) to (e) to (h) to (i);
         \draw (b) to (f) to (h);
         \draw (d) to (f) to (g);
      \end{tikzpicture}
      \caption*{i)}
   \end{subfigure}
   \hfil
   \begin{subfigure}{0.26\textwidth}
      \begin{tikzpicture}[-,>=stealth',thick]
         \node at (0,0) (d) {$d$};
         \node at (-2,2) (e) {$e$};
         \node at (1.6,2) (c) {$c$};
         \node at (-1.4,3.5) (f) {$f$};
         \node at (0,3.3) (b) {$b$};
         \node at (0,4.4) (a) {$a$};
         
         \draw (b) to (c) to (d) to (e) to (b) to (a) to (f) to (e);
         \draw (f) to (c);
      \end{tikzpicture}
      \caption*{ii)}
   \end{subfigure}
\end{figure}





Y otro pero con curvas:

\begin{ figure}[h]
   \centering
   \begin{tikzpicture}[->,>=stealth',thick]
      \node at (3,2) (a) {$a$};
      \node at (4,1.25) (b) {$b$};
      \node at (3,0.4) (c) {$c$};
      \node at (1,0.4) (d) {$d$};
      \node at (0,1) (e) {$e$};
      
      \draw (e) edge [bend right=30] (d);
      \draw (d) edge [bend right=30] (e);
      \draw (a) edge [bend right=30] (d);
      \draw (a) edge [bend right=-30] (b);
      \draw (a) edge [bend right=30] (c);
      \draw (c) edge [bend right=-30] (b);
      \draw (c) edge [loop below] (c);
      \draw (b) edge [loop below] (b);
   \end{tikzpicture}
\end{figure}




Gracias por enseñarme el paquete y saludos

17 Diciembre, 2017, 08:16 pm
Respuesta #5

ingmarov

  • Moderador Global
  • Mensajes: 4,799
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Spoiler
...

Jajajaja. Todo sea bienvenido mientras sea provechoso! De paso, comento que estoy haciendo la guía de ejercicios y Tikz me ayuda un montón! Si bien los gráficos no son de una complejidad abismal, lo mínimo: \draw... etc... :P.

Es un estupendo gráfico ingmarov!

Saludos

Te dejo el código utilizado


\begin{tikzpicture}[scale=2,ultra thick]
\fill[yellow!20](-0.5,-3.7)rectangle(6.5,2.2);
\node(A) at(0,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 11};
\node(B) at(2,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 0};
\node(C) at(4,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 2};
\node(D) at(6,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 7};
\node(E) at(1,1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 1};
\node(F) at(3,1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 14};
\node(G) at(5,1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 5};
\node(H) at(1,-1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 6};
\node(I) at(3,-1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 10};
\node(J) at(5,-1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 4};
\node(K) at(2,-3.2)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 3};
\node(L) at(4,-3.2)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 9};
\path(I)edge(B)edge(C)edge(H)edge(K)edge(L)edge(J);
\path(B)edge(A)edge(H)edge(C)edge(E)edge(F);
\path(C)edge(D)edge(F)edge(G)edge(J);
\path(A)edge(H)edge(E);
\path(F)edge(E)edge(G);
\path(D)edge(G)edge(J);
\path(K)edge(H)edge(L);
\path(L)edge(J);
\draw (2,0.3)node{\bf\Large a}(4,0.3)node{\bf\Large b}(3,-1.3)node{\bf\Large c};
\end{tikzpicture}



Saludos  ;D
[cerrar]

Qué lindo se ve! No sabía que se podía agregar color al fondo del dibujo... todos los días aprendo algo nuevo de ustedes :aplauso:.


Por si a alguien también le interesa, les dejo mi forma de hacer un sencillo esquema como son dos diagramas, uno al lado del otro, y con numeración (usando el entorno figure):

Spoiler
\begin{ figure}[h]
   \hfil
   \begin{subfigure}{0.27\textwidth}
      \begin{tikzpicture}[-,>=stealth',thick]
         \node at (0,0) (i) {$i$};
         \node at (-1,1) (g) {$g$};
         \node at (1,1) (h) {$h$};
         \node at (-2,2) (a) {$a$};
         \node at (0,2) (f) {$f$};
         \node at (2,2) (e) {$e$};
         \node at (-1,3) (b) {$b$};
         \node at (1,3) (d) {$d$};
         \node at (0,4) (c) {$c$};
         
         \draw (i) to (g) to (a) to (b) to (c) to (d) to (e) to (h) to (i);
         \draw (b) to (f) to (h);
         \draw (d) to (f) to (g);
      \end{tikzpicture}
      \caption*{i)}
   \end{subfigure}
   \hfil
   \begin{subfigure}{0.26\textwidth}
      \begin{tikzpicture}[-,>=stealth',thick]
         \node at (0,0) (d) {$d$};
         \node at (-2,2) (e) {$e$};
         \node at (1.6,2) (c) {$c$};
         \node at (-1.4,3.5) (f) {$f$};
         \node at (0,3.3) (b) {$b$};
         \node at (0,4.4) (a) {$a$};
         
         \draw (b) to (c) to (d) to (e) to (b) to (a) to (f) to (e);
         \draw (f) to (c);
      \end{tikzpicture}
      \caption*{ii)}
   \end{subfigure}
\end{figure}





Y otro pero con curvas:

\begin{ figure}[h]
   \centering
   \begin{tikzpicture}[->,>=stealth',thick]
      \node at (3,2) (a) {$a$};
      \node at (4,1.25) (b) {$b$};
      \node at (3,0.4) (c) {$c$};
      \node at (1,0.4) (d) {$d$};
      \node at (0,1) (e) {$e$};
      
      \draw (e) edge [bend right=30] (d);
      \draw (d) edge [bend right=30] (e);
      \draw (a) edge [bend right=30] (d);
      \draw (a) edge [bend right=-30] (b);
      \draw (a) edge [bend right=30] (c);
      \draw (c) edge [bend right=-30] (b);
      \draw (c) edge [loop below] (c);
      \draw (b) edge [loop below] (b);
   \end{tikzpicture}
\end{figure}


[cerrar]

Saludos!

He puesto dentro de spoilers los códigos que publicamos en el hilo de números en círculos, para que ocupen menos espacio visual en el hilo.

Si ves el código que compartí el fondo no es más que un rectángulo coloreado, lo que a mi si me parece un poco especial es que le pude dar color a los nodos y por eso se ve el rectángulo como fondo.


prueba este, dos en uno

Spoiler
     
Código: [Seleccionar]
\begin{tikzpicture}[thick]
         \node at (0,0) (i) {$i$};
         \node at (-1,1) (g) {$g$};
         \node at (1,1) (h) {$h$};
         \node at (-2,2) (a) {$a$};
         \node at (0,2) (f) {$f$};
         \node at (2,2) (e) {$e$};
         \node at (-1,3) (b) {$b$};
         \node at (1,3) (d) {$d$};
         \node at (0,4) (c) {$c$};       
         \draw (i) to (g) to (a) to (b) to (c) to (d) to (e) to (h) to (i);
         \draw (b) to (f) to (h);
         \draw (d) to (f) to (g);
\begin{scope}[shift={(7,0)}]
 \node at (0,0) (d) {$d$};
 \node at (-2,2) (e) {$e$};
 \node at (1.6,2) (c) {$c$};
 \node at (-1.4,3.5) (f) {$f$};
 \node at (0,3.3) (b) {$b$};
 \node at (0,4.4) (a) {$a$};         
 \draw (b) to (c) to (d) to (e) to (b) to (a) to (f) to (e);
  \draw (f) to (c);
\end{scope}
      \end{tikzpicture}
[cerrar]
Saludos
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

17 Diciembre, 2017, 09:17 pm
Respuesta #6

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola,

Spoiler
...

Jajajaja. Todo sea bienvenido mientras sea provechoso! De paso, comento que estoy haciendo la guía de ejercicios y Tikz me ayuda un montón! Si bien los gráficos no son de una complejidad abismal, lo mínimo: \draw... etc... :P.

Es un estupendo gráfico ingmarov!

Saludos

Te dejo el código utilizado


\begin{tikzpicture}[scale=2,ultra thick]
\fill[yellow!20](-0.5,-3.7)rectangle(6.5,2.2);
\node(A) at(0,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 11};
\node(B) at(2,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 0};
\node(C) at(4,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 2};
\node(D) at(6,0)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 7};
\node(E) at(1,1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 1};
\node(F) at(3,1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 14};
\node(G) at(5,1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 5};
\node(H) at(1,-1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 6};
\node(I) at(3,-1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 10};
\node(J) at(5,-1.6)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 4};
\node(K) at(2,-3.2)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 3};
\node(L) at(4,-3.2)[fill=white,shape=circle,minimum size=10mm,draw]{\bf 9};
\path(I)edge(B)edge(C)edge(H)edge(K)edge(L)edge(J);
\path(B)edge(A)edge(H)edge(C)edge(E)edge(F);
\path(C)edge(D)edge(F)edge(G)edge(J);
\path(A)edge(H)edge(E);
\path(F)edge(E)edge(G);
\path(D)edge(G)edge(J);
\path(K)edge(H)edge(L);
\path(L)edge(J);
\draw (2,0.3)node{\bf\Large a}(4,0.3)node{\bf\Large b}(3,-1.3)node{\bf\Large c};
\end{tikzpicture}



Saludos  ;D
[cerrar]

Qué lindo se ve! No sabía que se podía agregar color al fondo del dibujo... todos los días aprendo algo nuevo de ustedes :aplauso:.


Por si a alguien también le interesa, les dejo mi forma de hacer un sencillo esquema como son dos diagramas, uno al lado del otro, y con numeración (usando el entorno figure):

Spoiler
\begin{ figure}[h]
   \hfil
   \begin{subfigure}{0.27\textwidth}
      \begin{tikzpicture}[-,>=stealth',thick]
         \node at (0,0) (i) {$i$};
         \node at (-1,1) (g) {$g$};
         \node at (1,1) (h) {$h$};
         \node at (-2,2) (a) {$a$};
         \node at (0,2) (f) {$f$};
         \node at (2,2) (e) {$e$};
         \node at (-1,3) (b) {$b$};
         \node at (1,3) (d) {$d$};
         \node at (0,4) (c) {$c$};
         
         \draw (i) to (g) to (a) to (b) to (c) to (d) to (e) to (h) to (i);
         \draw (b) to (f) to (h);
         \draw (d) to (f) to (g);
      \end{tikzpicture}
      \caption*{i)}
   \end{subfigure}
   \hfil
   \begin{subfigure}{0.26\textwidth}
      \begin{tikzpicture}[-,>=stealth',thick]
         \node at (0,0) (d) {$d$};
         \node at (-2,2) (e) {$e$};
         \node at (1.6,2) (c) {$c$};
         \node at (-1.4,3.5) (f) {$f$};
         \node at (0,3.3) (b) {$b$};
         \node at (0,4.4) (a) {$a$};
         
         \draw (b) to (c) to (d) to (e) to (b) to (a) to (f) to (e);
         \draw (f) to (c);
      \end{tikzpicture}
      \caption*{ii)}
   \end{subfigure}
\end{figure}





Y otro pero con curvas:

\begin{ figure}[h]
   \centering
   \begin{tikzpicture}[->,>=stealth',thick]
      \node at (3,2) (a) {$a$};
      \node at (4,1.25) (b) {$b$};
      \node at (3,0.4) (c) {$c$};
      \node at (1,0.4) (d) {$d$};
      \node at (0,1) (e) {$e$};
      
      \draw (e) edge [bend right=30] (d);
      \draw (d) edge [bend right=30] (e);
      \draw (a) edge [bend right=30] (d);
      \draw (a) edge [bend right=-30] (b);
      \draw (a) edge [bend right=30] (c);
      \draw (c) edge [bend right=-30] (b);
      \draw (c) edge [loop below] (c);
      \draw (b) edge [loop below] (b);
   \end{tikzpicture}
\end{figure}


[cerrar]

Saludos!

He puesto dentro de spoilers los códigos que publicamos en el hilo de números en círculos, para que ocupen menos espacio visual en el hilo.

Ok.

Si ves el código que compartí el fondo no es más que un rectángulo coloreado, lo que a mi si me parece un poco especial es que le pude dar color a los nodos y por eso se ve el rectángulo como fondo.

Claro, con o sin rectángulo me parece fantástico! Lo tendré en cuenta por si quiero profundizar un poco más :P.

prueba este, dos en uno

Spoiler
     
Código: [Seleccionar]
\begin{tikzpicture}[thick]
         \node at (0,0) (i) {$i$};
         \node at (-1,1) (g) {$g$};
         \node at (1,1) (h) {$h$};
         \node at (-2,2) (a) {$a$};
         \node at (0,2) (f) {$f$};
         \node at (2,2) (e) {$e$};
         \node at (-1,3) (b) {$b$};
         \node at (1,3) (d) {$d$};
         \node at (0,4) (c) {$c$};       
         \draw (i) to (g) to (a) to (b) to (c) to (d) to (e) to (h) to (i);
         \draw (b) to (f) to (h);
         \draw (d) to (f) to (g);
\begin{scope}[shift={(7,0)}]
 \node at (0,0) (d) {$d$};
 \node at (-2,2) (e) {$e$};
 \node at (1.6,2) (c) {$c$};
 \node at (-1.4,3.5) (f) {$f$};
 \node at (0,3.3) (b) {$b$};
 \node at (0,4.4) (a) {$a$};         
 \draw (b) to (c) to (d) to (e) to (b) to (a) to (f) to (e);
  \draw (f) to (c);
\end{scope}
      \end{tikzpicture}
[cerrar]

Me gusta que puedas posicionar el otro gráfico donde sea que quieras, usando la funiconalidad scope. No sabía que estaba.
Lo que no me gusta es no poder incorporar las funciones figure y subfigure para ponerle un caption, o sea un texto debajo del gráfico :(. Quizás haya alguna manera de ponérselo abajo sin usarlas... ::), pero es mucho más simple el que compartís!!


Ahora estoy aprendiendo a poner compuertas lógicas en el documento!! Tiene de todo Tikz. Comparto el link donde lo estoy "estudiando": Cómo dibujar compuertas lógicas con Tikz en \( \LaTeX \).

Saludos

18 Diciembre, 2017, 07:07 am
Respuesta #7

ingmarov

  • Moderador Global
  • Mensajes: 4,799
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
...
Ahora estoy aprendiendo a poner compuertas lógicas en el documento!! Tiene de todo Tikz. Comparto el link donde lo estoy "estudiando": Cómo dibujar compuertas lógicas con Tikz en \( \LaTeX \).

Saludos

Esta librería no la conocía, es interesante.
Yo utilizo un paquete llamado "circuitikz", este también maneja compuertas lógicas y demás elemento eléctricos y electrónicos.

Saludos manooooh.
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

24 Diciembre, 2017, 05:20 am
Respuesta #8

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola a todos!

Sigo trabajando en la guía. Esta vez les quiero compartir un código para graficar diagramas de transiciones de autómatas finitos. Es increíble el potencial de Tikz. Acá les dejo de donde saqué la info mayoritaria: Cómo dibujar máquinas de estado finito en \( \LaTeX \).

Para realizar dichos diagramas utilicé las bibliotecas de Tikz llamadas arrows, automata y positioning. Si no escriben esto en el preámbulo:

\usetikzlibrary{arrows, automata, positioning}

no funciona.

Este el código para un diagrama de transición:

Spoiler
\begin{ figure}[h]
   \centering
   \begin{tikzpicture}[>=stealth',thick, node distance=3cm]
   \node[state, initial] (q0) {$q_0$};
   \node[state, accepting, right of=q0] (q1) {$q_1$};
   
   \draw (q1) edge[loop above] node{$1$} (q1);
   \draw [->] (q0) edge[bend left,above] node{$0$} (q1);
   \draw [->] (q1) edge[bend left, below] node{$1$} (q0);
   \end{tikzpicture}
\end{figure}
[cerrar]





Otro:

Spoiler
\begin{ figure}[h]
   \centering
   \begin{tikzpicture}[>=stealth',thick, node distance=3cm]
   \node[state, initial] (q0) {$q_0$};
   \node[state, right of=q0] (q1) {$q_1$};
   \node[state, accepting, right of=q1] (q2) {$q_2$};
   
   \draw (q0) edge[loop above] node{$0$} (q0);
   \draw (q2) edge[loop above] node{$0$} (q2);
   \draw [->] (q0) edge[above] node{$1$} (q1);
   \draw [->] (q1) edge[above] node{$1$} (q2);
\end{tikzpicture}
[cerrar]





Para que no aparezca "start" como el inicio debemos poner en cualquier lugar del documento (incluso no sé si en el preámbulo para que aplique a todo el documento, no lo probé esto) lo siguiente:

Spoiler
\tikzset{
   initial text=$\ast$,
}
[cerrar]

Ahí le indico que tiene que empezar con un asterisco, quedando:



y



Ustedes pueden dejarlo como viene o poner cualquier otro símbolo / texto :).



Espero que les haya servido! ;)

Saludos

Spoiler
Si alguien sabe cómo hacer para que en la segunda imagen, la que tiene las líneas curvas, sean rectas pero que a su vez estén en el mismo estado (o sea que la línea que va desde \( q_0 \) a \( q_1 \) sea recta y esté por encima de la línea que va desde \( q_1 \) a \( q_0 \) y que también sea recta) se lo agradecería mucho! Es decir, en vez que sean curvas, sean rectas. Es por una cuestión visual nada más.
[cerrar]

29 Diciembre, 2017, 06:33 am
Respuesta #9

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola a todos!

Estoy usando el paquete tasks para enumerar en una misma línea. Mi duda es si puedo insertar un task dentro de otro task. Traté de hacer esto:

Spoiler
\begin{ tasks}(1)            % (1) indica que habrá 1 columa.
   \task Task principal 1
   \begin{tasks}(2)         % (2) indica que habrá 2 columnas.
      \task Task secundario 1
      \task Task secundario 2
      \task Task secundario 3
      \task Task secundario 4
   \end{tasks}
   \task Task principal 2
\end{tasks}
[cerrar]

Pero me saltan 7 errores :(.

Con enumerate sí puedo hacerlo, pero no le encuentro la vuelta para el paquete tasks, ya que me permite escribir en una misma línea, como ya comenté antes.

También, en lo posible, quisiera que el task que está "más afuera" (el principal) tuviera el formato a), b), ... (establecido por default, acá no hay que modificar nada), pero el que está "más adentro" (el secundario) tuviera el formato a1), a2), ... (acá sí habría que cambiar algo pero tampoco sé cómo).

¿Alguien sabe si es posible?

Gracias!!

Saludos

17 Enero, 2018, 02:19 am
Respuesta #10

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Algunos gráficos con PGFPlots en \( \LaTeX \)

Antes que nada voy a pasar a explicar por qué utilizo el preámbulo que aparece en estos gráficos que realicé para esta guía:

Spoiler
Primero que nada, como siempre declaramos el tipo de documento y el tamaño de la letra para todo el cuerpo del mismo:

\documentclass[11pt]{article}

Utilizaremos el paquete pgfplots para crear nuestros gráficos:

\usepackage{pgfplots}

y agregaremos ciertos parámetros:

  • axis lines=center: Centra los ejes cartesianos en el gráfico, sea cual sea;
  • soldot/.style={color=black,only marks,mark=*}: Tendremos un puntito negro;
  • holdot/.style={color=black,fill=white,only marks,mark=*}: Tendremos un puntito blanco, y;
  • compat=1.15: Versión del paquete con la que trabajaremos. Es muy importante agregar este parámetro.

Quedando de la siguiente manera:

\pgfplotsset{axis lines=center,soldot/.style={color=black,only marks,mark=*},holdot/.style={color=black,fill=white,only marks,mark=*},compat=1.15}

No pondremos el paquete TikZ porque ya viene incorporado con el paquete PGFPlots. Son "amigos" :D.
[cerrar]



Ahora sí, comparto 9 gráficos y sus respectivos códigos:

Gráfico 1
\begin{ tikzpicture}
   \begin{axis}[xmin=-1,xmax=6.5,ymin=-0.7,ymax=3]
      \pgfplotsset{ticks=none}
      \addplot [domain=1:6,fill=gray!60] (\x,{sin((\x-1) r)+1.5})\closedcycle;
      \draw (axis cs:6,2) -- (axis cs:0,2) node
{$f(c)$};
      \draw (axis cs:3.606,2) -- (axis cs:3.606,0) node[below] {$c$};
      \draw (axis cs:1,2) -- (axis cs:1,0) node[below] {$a$};
      \draw (axis cs:6,2) -- (axis cs:6,0) node[below] {$b$};
   \end{axis}
\end{tikzpicture}


[cerrar]
Gráfico 2
\begin{ tikzpicture}
   \draw[fill=gray!50,gray!50] (0,0) rectangle (5.5,0.25);
   \draw[fill=gray!50,gray!50] (5.5,0) rectangle (6.1,3.9);
   \draw (5.5,1) -- (0.4,1) node
{$\Theta$};
   \draw (0.4,1) -- (5.5,1.6);
   \draw (0.4,1) -- (5.5,3.6);
   \draw (5.5,3.6) -- (5.5,1);
   \draw (5.5,0.65) -- (0.4,0.65);
   \draw (0.4,0.55) -- (0.4,0.75);
   \draw (5.5,0.55) -- (5.5,0.75);
   \draw (5.65,3.6) -- (5.65,1);
   \draw (5.55,3.6) -- (5.75,3.6);
   \draw (5.55,1) -- (5.75,1);
   \draw (5.55,1.6) -- (5.75,1.6);
   \draw[gray!50,very thick] (2,1.81) to [out=-60,in=60] (2,1.18);
   \node at (2.3,1.6) {$\theta$};
   
   \draw[gray!50,very thick] (4,2.81) to [out=-60,in=60] (4,1);
   \node at (4.6,1.9) {$\theta_1$};
   
   \draw[gray!50,very thick] (3,1.3) to [out=-60,in=60] (3,1);
   \node at (3.35,1.16) {$\theta_2$};
   
   \node at (2.95,0.45) {$x$};
   \node at (5.85,2.6) {$h$};
   \node at (5.85,1.3) {$d$};
\end{tikzpicture}


[cerrar]
Gráfico 3
\begin{ tikzpicture}
   \begin{axis}[ymax=1.3,ymin=-0.5,ytick={0,0.5,1}]
      \addplot [black, domain=-1:1] {x*x};
      \addplot[soldot] coordinates{(-1,1)} node[above right] {$A(-1,1)$};
      \addplot[soldot] coordinates{(1,1)} node[above left] {$B(1,1)$};
      \addplot[soldot] coordinates{(0.5,0.25)} node[below right] {$P(x,y)$};
      \draw (axis cs:-1,1) -- (axis cs:0.5,0.25) -- (axis cs:1,1);
   \end{axis}
\end{tikzpicture}


[cerrar]

Gráfico 4
\begin{ tikzpicture}
   \begin{axis}
      \addplot[domain=-1:1,black,samples=500] {sin((1/x)r)};
   \end{axis}
\end{tikzpicture}


[cerrar]

17 Enero, 2018, 02:20 am
Respuesta #11

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Gráfico 5
\begin{ tikzpicture}
   \begin{axis}
      \pgfplotsset{ticks=none}
      \addplot[domain=-1.5:1,black] {sin((x)r)};
      \addplot[domain=1:1.6,black] {log10(x^4-1)-0.2};
      
      \addplot[holdot] coordinates{(1,0.841)};
      \addplot[soldot] coordinates{(1,0.35)};
      \addplot[holdot] coordinates{(1,-1.2)};
      \draw[dotted] (axis cs:1,0.8) -- (axis cs:1,0);
      \draw[dotted] (axis cs:1,-1.2) -- (axis cs:1,0) node[below right] {$a$};
   \end{axis}
\end{tikzpicture}


[cerrar]

Gráfico 6
\begin{ tikzpicture}
   \begin{axis}
      \addplot[black, samples=500, domain=-20:14] ({2.0*(\x - sin(\x r))}, {2.0*(1.0 - cos(\x r))});
   \end{axis}
\end{tikzpicture}


[cerrar]

Gráfico 7
\begin{ tikzpicture}
   \begin{axis}[xmin=-2]
      \addplot[black, samples=100, domain=0:2.0*pi] ({2.0*cos(\x r)}, {3.0*sin(\x r)});
   \end{axis}
\end{tikzpicture}


[cerrar]

Gráfico 8
\begin{ tikzpicture}
   \begin{axis}
      \addplot[black, samples=500, domain=0:2.0*pi] ({cos(\x r) * cos(\x r) * cos(\x r)}, {sin(\x r) * sin(\x r) * sin(\x r)});
   \end{axis}
\end{tikzpicture}


[cerrar]

17 Enero, 2018, 02:21 am
Respuesta #12

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Gráfico 9
\begin{ tikzpicture}
   \begin{axis}[ymax=12,xmax=4]
      \addplot[black, samples=100, domain=-4.0:4.0] ({2.0 + \x}, {3.0*\x * \x });
   \end{axis}
\end{tikzpicture}


[cerrar]



El código completo:

Código completo
\documentclass[11pt]{article}
\usepackage{pgfplots}
\pgfplotsset{axis lines=center,soldot/.style={color=black,only marks,mark=*},holdot/.style={color=black,fill=white,only marks,mark=*},compat=1.15}

\begin{document}

Gr\'afico 1

\begin{ tikzpicture}
   \begin{axis}[xmin=-1,xmax=6.5,ymin=-0.7,ymax=3]
      \pgfplotsset{ticks=none}
      \addplot [domain=1:6,fill=gray!60] (\x,{sin((\x-1) r)+1.5})\closedcycle;
      \draw (axis cs:6,2) -- (axis cs:0,2) node
{$f(c)$};
      \draw (axis cs:3.606,2) -- (axis cs:3.606,0) node[below] {$c$};
      \draw (axis cs:1,2) -- (axis cs:1,0) node[below] {$a$};
      \draw (axis cs:6,2) -- (axis cs:6,0) node[below] {$b$};
   \end{axis}
\end{tikzpicture}

Gr\'afico 2

\begin{ tikzpicture}
   \draw[fill=gray!50,gray!50] (0,0) rectangle (5.5,0.25);
   \draw[fill=gray!50,gray!50] (5.5,0) rectangle (6.1,3.9);
   \draw (5.5,1) -- (0.4,1) node
{$\Theta$};
   \draw (0.4,1) -- (5.5,1.6);
   \draw (0.4,1) -- (5.5,3.6);
   \draw (5.5,3.6) -- (5.5,1);
   \draw (5.5,0.65) -- (0.4,0.65);
   \draw (0.4,0.55) -- (0.4,0.75);
   \draw (5.5,0.55) -- (5.5,0.75);
   \draw (5.65,3.6) -- (5.65,1);
   \draw (5.55,3.6) -- (5.75,3.6);
   \draw (5.55,1) -- (5.75,1);
   \draw (5.55,1.6) -- (5.75,1.6);
   \draw[gray!50,very thick] (2,1.81) to [out=-60,in=60] (2,1.18);
   \node at (2.3,1.6) {$\theta$};
   
   \draw[gray!50,very thick] (4,2.81) to [out=-60,in=60] (4,1);
   \node at (4.6,1.9) {$\theta_1$};
   
   \draw[gray!50,very thick] (3,1.3) to [out=-60,in=60] (3,1);
   \node at (3.35,1.16) {$\theta_2$};
   
   \node at (2.95,0.45) {$x$};
   \node at (5.85,2.6) {$h$};
   \node at (5.85,1.3) {$d$};
\end{tikzpicture}

Gr\'afico 3

\begin{ tikzpicture}
   \begin{axis}[ymax=1.3,ymin=-0.5,ytick={0,0.5,1}]
      \addplot [black, domain=-1:1] {x*x};
      \addplot[soldot] coordinates{(-1,1)} node[above right] {$A(-1,1)$};
      \addplot[soldot] coordinates{(1,1)} node[above left] {$B(1,1)$};
      \addplot[soldot] coordinates{(0.5,0.25)} node[below right] {$P(x,y)$};
      \draw (axis cs:-1,1) -- (axis cs:0.5,0.25) -- (axis cs:1,1);
   \end{axis}
\end{tikzpicture}

Gr\'afico 4

\begin{ tikzpicture}
   \begin{axis}
      \addplot[domain=-1:1,black,samples=500] {sin((1/x)r)};
   \end{axis}
\end{tikzpicture}

Gr\'afico 5

\begin{ tikzpicture}
   \begin{axis}
      \pgfplotsset{ticks=none}
      \addplot[domain=-1.5:1,black] {sin((x)r)};
      \addplot[domain=1:1.6,black] {log10(x^4-1)-0.2};
      
      \addplot[holdot] coordinates{(1,0.841)};
      \addplot[soldot] coordinates{(1,0.35)};
      \addplot[holdot] coordinates{(1,-1.2)};
      \draw[dotted] (axis cs:1,0.8) -- (axis cs:1,0);
      \draw[dotted] (axis cs:1,-1.2) -- (axis cs:1,0) node[below right] {$a$};
   \end{axis}
\end{tikzpicture}

Gr\'afico 6

\begin{ tikzpicture}
   \begin{axis}
      \addplot[black, samples=500, domain=-20:14] ({2.0*(\x - sin(\x r))}, {2.0*(1.0 - cos(\x r))});
   \end{axis}
\end{tikzpicture}

Gr\'afico 7

\begin{ tikzpicture}
   \begin{axis}[xmin=-2]
      \addplot[black, samples=100, domain=0:2.0*pi] ({2.0*cos(\x r)}, {3.0*sin(\x r)});
   \end{axis}
\end{tikzpicture}

Gr\'afico 8

\begin{ tikzpicture}
   \begin{axis}
      \addplot[black, samples=500, domain=0:2.0*pi] ({cos(\x r) * cos(\x r) * cos(\x r)}, {sin(\x r) * sin(\x r) * sin(\x r)});
   \end{axis}
\end{tikzpicture}

Gr\'afico 9

\begin{ tikzpicture}
   \begin{axis}[ymax=12,xmax=4]
      \addplot[black, samples=100, domain=-4.0:4.0] ({2.0 + \x}, {3.0*\x * \x });
   \end{axis}
\end{tikzpicture}

\end{document}
[cerrar]


NOTA: Los gráficos 1, 6, 7, 8 y 9 están hechos en forma paramétrica (para aportar más variedad al asunto ::)). El resto no.

Saludos!

17 Enero, 2018, 08:08 pm
Respuesta #13

ingmarov

  • Moderador Global
  • Mensajes: 4,799
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola Manooooh

Están buenos los gráficos, no he usado ese paquete pgfplots y me parece genial.

Creo que (después de...) sería mejor cambiar el título del hilo a "Gráficos en Latex" o "Gráficos con Tikz y Pgfplots".



Saludos
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

17 Enero, 2018, 08:38 pm
Respuesta #14

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Hola ingmarov :D,

Están buenos los gráficos, no he usado ese paquete pgfplots y me parece genial.

Crea muy buenos gráficos de altísima calidad. Y lo mejor de todo es que son "sencillos" de hacer.

Creo que (después de...) sería mejor cambiar el título del hilo a "Gráficos en Latex" o "Gráficos con Tikz y Pgfplots".

Sí, me parece! Pero, ¿qué hacemos con los primeros mensajes (mis consultas)? No creo que sea grato que cuando el lector entre se encuentre con preguntas y luego halle más abajo estos gráficos :-\.
Si es por mí, por este motivo que acabo de señalar, no encuentro problemas en modificar dichos mensajes proponiendo el código a las preguntas que yo mismo formulé (pero también hay otro problema, y es qué hacemos con los mensajes que sí me respondieron, ya que quedarían mensajes sin sentido). Solucionado esto creo que podríamos modificar dicho título (desde ya que sólo es una sugerencia y no cuestiono en absoluto su idoneidad para modificar o no mensajes).

Saludos

17 Enero, 2018, 09:25 pm
Respuesta #15

ingmarov

  • Moderador Global
  • Mensajes: 4,799
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
...
Sí, me parece! Pero, ¿qué hacemos con los primeros mensajes (mis consultas)? No creo que sea grato que cuando el lector entre se encuentre con preguntas y luego halle más abajo estos gráficos :-\.
Si es por mí, por este motivo que acabo de señalar, no encuentro problemas en modificar dichos mensajes proponiendo el código a las preguntas que yo mismo formulé (pero también hay otro problema, y es qué hacemos con los mensajes que sí me respondieron, ya que quedarían mensajes sin sentido). Solucionado esto creo que podríamos modificar dicho título (desde ya que sólo es una sugerencia y no cuestiono en absoluto su idoneidad para modificar o no mensajes).

Saludos

Deja me te lo arreglo. Separaré parte de los mensajes con gráficos en un hilo independiente.

Eh... ¿Hay algun paquete para graficación en 3d?  ::) ::)
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

17 Enero, 2018, 09:47 pm
Respuesta #16

manooooh

  • Matemático
  • Mensajes: 2,989
  • País: ar
  • Karma: +1/-0
  • Sexo: Masculino
Deja me te lo arreglo. Separaré parte de los mensajes con gráficos en un hilo independiente.

Bueno bueno... ¡¡muchas gracias!! Va a quedar bonito :D.

Eh... ¿Hay algun paquete para graficación en 3d?  ::) ::)

A que no sabés qué... ¡PGFPlots soporta gráficos en 3D! ::)

Como todavía no cursé Cálculo II (esa materia donde se tratan funciones de dos o más variables) sólo me limité a hacer un par de gráficos en el plano, por lo que estoy en 0 para ayudar con gráficos en el espacio :-[. De todas maneras podés empezar a investigar googleando "pgfplots 3d" y te salen muchos ejemplos. Creo que es sencillo también, como por ejemplo este gráfico que lo extraje de acá:

Gráfico en 3D
\documentclass[border=10pt]{standalone}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.8}
\begin{ document}
\begin{tikzpicture}
  \begin{axis}[
    domain=-2:2,
    domain y=0:2*pi,
  ]

    \newcommand\expr[2]{exp(-#1^2) * sin(deg(#2))}

    \addplot3[
        contour gnuplot={
            % cdata should not be affected by z filter:
            output point meta=rawz,
            number=10,
            labels=false,
        },
        samples=41,
        z filter/.code=\def\pgfmathresult{-1.6},
    ]
        {\expr{x}{y}};

    \addplot3[
        samples=41,
        samples y=10,
        domain=0:2*pi,
        domain y=-2:2,
        % we want 1d (!) individually colored mesh segments:
        mesh, patch type=line,
        x filter/.code=\def\pgfmathresult{-2.5},
    ]
        (y,x,{\expr{y}{x}});

    \addplot3[
        samples=41,
        samples y=10,
        % we want 1d (!) individually colored mesh segments:
        mesh, patch type=line,
        y filter/.code=\def\pgfmathresult{8},
    ]
        {\expr{x}{y}};

    \addplot3[surf,samples=25]
        {\expr{x}{y}};

\end{axis}
\end{tikzpicture}
\end{document}



Fijate que en vez de utilizar la sentencia \addplot ... se usa \addplot3 ... para indicar que se trata de un gráfico en 3D.
También intuyo que no sólo se pueden hacer funciones, sino cualquier objeto (con distintos comandos, como dibujar un cubo, una esfera, etc.). En 2D esto es posible, como por ejemplo el gráfico 2 de la respuesta #10, donde se utilizan un rectángulo y varias líneas para graficar.
[cerrar]

Saludos!

17 Enero, 2018, 09:54 pm
Respuesta #17

sugata

  • Matemático
  • Mensajes: 2,619
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Bufffff......
¡¡¡¡Que maravilla!!!!

17 Enero, 2018, 10:00 pm
Respuesta #18

ingmarov

  • Moderador Global
  • Mensajes: 4,799
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...