Wie füge ich einer Figur Text und eine korrektere Zickzacklinie hinzu?

Wie füge ich einer Figur Text und eine korrektere Zickzacklinie hinzu?

Ich habe nun Stunden damit verbracht, diese Figur zu erstellen – ohne Erfolg.

Ich habe verschiedene Arten von tikzund pstricksUse -Paketen ausprobiert multido.

Mein größtes Problem besteht darin, Text hinzuzufügen, eine korrektere Zickzacklinie hinzuzufügen und die beiden gestrichelten Linien hinzuzufügen.

Bildbeschreibung hier eingeben

Mein Code sieht so aus:

\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}

Ich erhalte diese Zahl: Bildbeschreibung hier eingeben

Antwort1

Hier ist eine einfache Lösung mit Tikz. Sie könnten es mit Plots machen, aber ich denke, es ist einfacher, es auf diese Weise zu machen.

Die „Plot“-Kurve ist eine einfache Kante, die mit dem Befehl gezeichnet wird
\draw (-4.5,-3) edge[out=0,in=180,looseness=1.5] (4.5,3);.

Wie Sie sehen, sind Start- und Endpunkt symmetrisch. Die Kontrolloptionen innerhalb der Kante geben an, wo die Kante herauskommt (0 Grad) und wo sie hineingeht (180 Grad). Die Lockerheit steuert die Krümmung: 1 ist Standard, 0 ist eine gerade Linie und je höher Sie die Zahl erhöhen, desto ausgeprägter wird sie.

Abbildung 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}

Die gestrichelte Linie wurde übrigens dashedzu den Pfadoptionen hinzugefügt, es gibt jedoch noch weitere:

Kanten Figur

\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}

Antwort2

Fertig mit MetaPost. Die gestrichelten Linien werden dank des dashedOperators gezeichnet:

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

Sehendas MetaPost-Handbuch, S. 37, um zu erfahren, wie Sie das Strichmuster nach Belieben personalisieren können.

Die Kurve wird durch die folgende einfache Linie gezeichnet:

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

Die Anweisungen zwischen den Klammern geben die Richtung der Tangente an, angegeben durch einen Winkel in Grad ( rightist ein Alias ​​für dir 0).

Notiere dass derhobbyDas Paket tikzbietet ähnliche Funktionen wie MetaPost für die Konstruktion von Bézierkurven.

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.

Ausgabe:

Bildbeschreibung hier eingeben

verwandte Informationen