He pasado horas creando esta figura, sin suerte.
He probado diferentes tipos de tikz
paquetes pstricks
de multido
uso.
Mi mayor problema es agregar texto, agregar una línea en zigzag más correcta y agregar las dos líneas discontinuas.
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:
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á.
\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 dashed
a las opciones de ruta, pero hay más:
\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 dashed
operador:
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 ( right
es un alias de dir 0
).
Tenga en cuenta que elhobby
El paquete for tikz
proporciona 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: