¿Cómo agregar texto y una línea en zigzag más correcta a una figura?

¿Cómo agregar texto y una línea en zigzag más correcta a una figura?

He pasado horas creando esta figura, sin suerte.

He probado diferentes tipos de tikzpaquetes pstricksde multidouso.

Mi mayor problema es agregar texto, agregar una línea en zigzag más correcta y agregar las dos líneas discontinuas.

ingrese la descripción de la imagen aquí

Mi código se ve así:

\documentclass{article}
\usepackage{MinionPro}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw[thick,-] (0,0) -- (4.5,0);
\draw[thick,-] (0,0) -- (0,4.5);
\draw[thick,-] (0,0) -- (-4.5,0);
\draw[thick,-] (0,0) -- (0,-4.5);
\draw (0,0) .. controls (0,2) and (2,2) .. (4,2);
\draw (-4,-3) .. controls (-2,-3) and (0,-2) .. (0,0);
\end{tikzpicture}
\end{document}

Me sale esta cifra: ingrese la descripción de la imagen aquí

Respuesta1

Aquí tienes una solución sencilla con Tikz. Podrías hacerlo con tramas pero creo que es más fácil hacerlo de esta manera.

La curva "trazar" es una arista simple dibujada con el comando
\draw (-4.5,-3) edge[out=0,in=180,looseness=1.5] (4.5,3);.

Como puede ver, el punto inicial y final son simétricos. Las opciones de control dentro del borde especifican dónde sale el borde (0 grados) y dónde entra (180 grados). La holgura controla la curvatura: 1 es el valor predeterminado, 0 es una línea recta y cuanto más aumenta el número, más acentuado se volverá.

Figura 1

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}

\tikzset{
    nodeax/.style={
        text centered,
        text width=2.5cm
    },
    every path/.style={
            thick
        }
}

\begin{document}    
\begin{tikzpicture}

%X and Y axis and relative nodes
\draw (-4.5,0) node[nodeax,left] {Expectations failed} -- (4.5,0)  node[nodeax,right] {Expectations exceeded}; % X Axis
\draw (0,-4.5) node[nodeax,below] {Dissatisfied} -- (0,4.5) node[nodeax,above] {Confirmation satisfied}; % Y Axis

% "plot"
\draw (-4.5,-3) edge[out=0,in=180,looseness=1.5] (4.5,3);

% dashed lines and relative nodes
\draw[dashed] (-1,-4.5) -- (-1,4.5) node[left, anchor=east, xshift=-1em] {Discomfirmation};
\draw[dashed] (1,-4.5) -- (1,4.5) 
    node[right, anchor=west, xshift=1em] {Affirmation} 
    node[nodeax,pos=0.3,left, xshift=-8em] {(Difference between perfomance and expectations)};
\end{tikzpicture}   
\end{document}

Por cierto, la línea discontinua se agrega dasheda las opciones de ruta, pero hay más:

figura de bordes

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}

\begin{document}        
\begin{tikzpicture}[
    y=.5cm,
    every node/.style=midway, above, font=\scriptsize
    ]

\draw[densely dashdotted] (0,9) -- (5,9) node {densely dashdotted};
\draw[densely dotted] (0,8) -- (5,8) node {densely dotted};
\draw[densely dashed] (0,7) -- (5,7) node {densely dashed};

\draw[loosely dashdotted] (0,6) -- (5,6) node {loosely dashdotted};
\draw[loosely dotted] (0,5) -- (5,5) node {loosely dotted};
\draw[loosely dashed] (0,4) -- (5,4) node {loosely dashed};

\draw[dashdotted] (0,3) -- (5,3) node {dashdotted};
\draw[dotted] (0,2) -- (5,2) node {dotted};
\draw[dashed] (0,1) -- (5,1) node {dashed};
\draw (0,0) -- (5,0) node {normal};

\end{tikzpicture}
\end{document}

Respuesta2

Hecho con MetaPost. Las líneas discontinuas se dibujan gracias al dashedoperador:

for k = u, -u: draw (k, ymin) -- (k, ymax) dashed evenly; endfor

Verel manual de MetaPost, pag. 37 para aprender a personalizar el patrón de guión a voluntad.

La curva se dibuja con la siguiente línea simple:

draw A{right} .. origin{dir 80} .. B{right};

Las instrucciones entre llaves indican la dirección de la tangente, especificada por un ángulo en grados ( rightes un alias de dir 0).

Tenga en cuenta que elhobbyEl paquete for tikzproporciona características similares a las de MetaPost para la construcción de curvas de Bézier.

input latexmp; setupLaTeXMP(mode=rerun, textextlabel=enable);
numeric u, xmin, xmax, ymin, ymax; 
u = cm; xmax = -xmin = ymax = -ymin = 4.5u;
pair A, B; A = (xmin, -3u); B = (xmax, 2u);
beginfig(1);
  draw (xmin, 0) -- (xmax, 0);
  draw (0, ymin) -- (0, ymax);
  for k = u, -u: draw (k, ymin) -- (k, ymax) dashed evenly; endfor
  draw A{right} .. origin{dir 80} .. B{right};
  label.lft("\begin{tabular}{c}Expectations\\ failed \end{tabular}", (xmin, 0));
  label.rt("\begin{tabular}{c}Expectations\\ exceeded \end{tabular}", (xmax, 0));
  label.bot("Dissatisfied", (0, ymin));
  label.top("\begin{tabular}{c}\textbf{Confirmation}\\Satisfied\end{tabular}", (0, ymax));
  label.top("\textbf{Disconfirmation}", (.4[xmin,-u], ymax));
  label.top("\textbf{Affirmation}", (.5[u,xmax], ymax));
  label.lft("\begin{tabular}{c}Difference between\\Performance and\\Expectations\end{tabular}", (.5[xmin, u], .3ymin));
endfig;
end.

Producción:

ingrese la descripción de la imagen aquí

información relacionada