Desenhando o modelo Kano

Desenhando o modelo Kano

Gostaria de saber se alguém pode me indicar a maneira mais fácil de esboçar a imagem a seguir. Comecei a usar o ambiente axis do pacote pgfplots como você pode ver no meu código abaixo, mas fiquei preso.

Eu agradeço antecipadamente!

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}

\begin{axis}[axis lines=middle,axis equal,grid=both]
    \addplot coordinates{(0,0) (5,5) };
\end{axis}

\end{tikzpicture}
\end{document}

Modelo Kano

Responder1

Não creio que seja necessário usar pgfplots. Acho que você pode obter o efeito desejado (e um pouco mais fácil) usando apenas tikz.

\documentclass[border=5pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{arrows.meta}
\begin{document}

\begin{tikzpicture}
  \coordinate (Q) at (0,0);

  %% put this first even though you can use opacity. 
  \coordinate (indifferent/nw) at (-0.5in,0.5in);
  \fill[gray,opacity=0.20] (indifferent/nw) rectangle ++ (1in,-1in);
  \path (indifferent/nw) ++ (-0.5cm,0.5cm) node[anchor=south east] (indifferent/label) {indifference};
  \draw (indifferent/nw) -- (indifferent/label.base east);

  \draw[arrows=-Stealth,purple]
       (Q) ++ (-2in,0) node [anchor=east,align=center,text width=0.75in]
                            {Need not~fulfilled}
           -- 
           ++ (4in,0)  node [anchor=west,align=center,text width=0.75in]
                            {Need well~fulfilled};
  \draw[arrows=-Stealth,purple]
       (Q) ++ (0,-2in) node [anchor=north,align=center,text width=0.75in]
                            {dissatisfied}
           -- 
           ++ (0,4in)  node [anchor=south,align=center,text width=0.75in]
                            {satisfied};

  \draw[blue,text=blue] 
              (Q) ++ (-2in,-2in) 
                  -- 
                  ++ (4in,4in) node[pos=0.75,anchor=north west] {Performance};


  \draw[red,text=red] 
             (Q) ++ (-2in,0.25cm) .. controls (-0.5cm,0.25cm) and
                                              ( 0.5cm,1.00cm)
                                  ..            
                    (1.25in,2in)
                    node[pos=0.95,anchor=south east] {Excitement};


 \draw[red,text=red]
            (Q) ++ (-1.25in,-2in) .. controls (-0.5cm,-1.00cm) and
                                              ( 0.5cm,-0.45cm)
                                  ..
                   (2in,-0.5cm)
                   node[pos=0.80,anchor=north west] {Basic};


\end{tikzpicture}

\end{document}

insira a descrição da imagem aqui

A ideia básica aqui é que \drawos comandos são realmente uma espécie de caminho e nodepodem ser definidos ao longo desses caminhos. Em particular, podemos especificar a posição de um nó usando pos=<val>o argumento opcional para o nó. A ancoragem ajuda a posicionar o texto em relação ao local onde o desejamos. text widthem combinação com alignajuda a fazer com que os rótulos ao longo do xeixo - se envolvam e centralizem (eu costumava ~juntar welle fulfilledcolar). Finalmente, a cor do texto também pode ser especificada usando text=<color>argumentos opcionais. Por fim, usei .. controls (<coordinate>) and (<coordinate>) ..para construir as curvas. Ocorre-me agora que eu deveria ter tentado torná-los um pouco mais assintóticosdesempenho, mas eu deixei você ajustar isso.

Responder2

Para este tipo de esboço semitécnico você pode considerarMetapostcomo uma ferramenta alternativa. Aqui segui minha sequência preferida para manter tudo bem organizado: definir os caminhos (em relação uns aos outros, na medida do possível); desenhe-os; em seguida, adicione os rótulos.

insira a descrição da imagem aqui

prologues := 3;
outputtemplate := "%j%c.eps";

beginfig(1);
% set a unit scale
u := 1cm;

% define the various paths 
path fulfillment, satisfaction, indifference, performance, excitement, basic;
indifference = unitsquare shifted -(1/2,1/2) scaled 2u;
fulfillment  = (left--right) scaled 3u;
satisfaction = fulfillment rotated 90;
performance  = (xpart point 0 of fulfillment, ypart point 0 of satisfaction) 
            -- (xpart point 1 of fulfillment, ypart point 1 of satisfaction);

excitement = point 0 of fulfillment shifted (0,1/3u) 
             {direction 0 of fulfillment} ..
             {direction 1 of performance}
             point 1 of performance shifted (-1/3u,0);

basic = excitement rotated 180;

% draw the paths
fill      indifference withcolor .9 white;
drawarrow fulfillment  withcolor .5 white;
drawarrow satisfaction withcolor .5 white;
draw      performance  withcolor .67 blue;
draw      excitement   withcolor .67 red;
draw      basic        withcolor .67 green;

% do the labels
verbatimtex
\font\ss=phvr8r\ss
\def\s#1{$\vcenter{\halign{\hfil{##}\hfil\cr#1\crcr}}$}\let\\\cr
etex

label(btex \s{satisfied} etex, point 1 of satisfaction shifted 10 up);
label(btex \s{dissatisfied} etex, point 0 of satisfaction shifted 10 down);

label(btex \s{needs not\\fulfilled}  etex, point 0 of fulfillment shifted 28 left);
label(btex \s{needs well\\fulfilled} etex, point 1 of fulfillment shifted 28 right);

z1 = point 3 of indifference shifted (-u/2,u/2); draw point 3 of indifference -- z1 withcolor .9 white;
label.lft(btex \s{indifference} etex, z1 + 3 up) withcolor .7 white;

label.ulft(btex \s{excitement}  etex, point .9 of excitement)  withcolor .67 red;
label.lrt (btex \s{performance} etex, point .8 of performance) withcolor .67 blue;
label.lrt (btex \s{basic}       etex, point .2 of basic)       withcolor .67 green;

endfig;
end.

Notas

  • O link acima mostra várias abordagens para integrar o MP ao seu fluxo de trabalho e contém links para os manuais.

  • Usei nomes bastante longos para todos os caminhos para que você pudesse acompanhar o que estava sendo feito com mais facilidade

  • Você pode alterar a escala do desenho ajustando o valor una parte superior.

  • Caminhos retos têm apenas um segmento, assim como point 0o começo e point 1o fim.

  • Eu defini satisfactioncomo uma cópia fulfillmentgirada 90 graus no sentido horário e basiccomo uma cópia excitementgirada 180. Isso torna o diagrama bonito e simétrico.

  • Eu defini alguns comandos TeX simples e muito simples para me permitir definir os rótulos de maneira organizada. Você também pode usar o LaTeX, conforme explicado no manual. Na verdade, com o gmppacote, ou com luatexou contextvocê pode incluir o código MP como parte do seu arquivo fonte LaTeX, como o TikZ.

informação relacionada