Também gastei muito tempo com essa figura e experimentei diferentes tipos de pacotes tikz, pstricks e multido use. Eu gostaria de criar uma figura parecida com esta:
Eu escrevi o seguinte:
\documentclass{article}
\usepackage{MinionPro}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
\draw (10,0) ellipse (1.7cm and 0.9cm);
\draw (5,0) ellipse (1.7cm and 0.9cm);
\draw (2,-3) ellipse (1.7cm and 0.9cm);
\draw (2,3) ellipse (1.7cm and 0.9cm);
\end{tikzpicture}
\end{document}
Se parece com isso:
Preciso colocar um texto centralizado nas reticências e linhas a cada uma. Alguém pode me dizer como fazer isso?
Um enorme obrigado!
Responder1
Solução 1 conforme solicitado na primeira versão do OP:
Deixo o ajuste fino para você. Basta adaptar a altura e largura das elipses e definir \begin{tikzcd}[column sep=xxx, row sep=xxx]...
como desejar. Se quiser alterar as pontas das setas, você fará algumas pesquisas neste site aqui. Muita ajuda é dada em todos os lugares.
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzcd}[cells={nodes={%
,ellipse
,minimum width=4cm
,minimum height=1cm
,draw
,align=center
}}]
Expectations
\arrow[<->, bend right,start anchor=190,end anchor=170]{dd}{D}
\arrow{dr}[swap]{A}
\arrow{drr}{F}
&[-2cm] & \\
& Disconfirmation \arrow{r}{C} & Satisfaction\\
Performance
\arrow{ur}{B}
\arrow{urr}[swap]{E}
& &
\end{tikzcd}
\end{document}
Solução 2 conforme solicitado na versão 3 do OP:
% arara: pdflatex
\documentclass{article}
\usepackage{tikz-cd}
\usetikzlibrary{shapes.geometric}
\begin{document}
\begin{tikzcd}[cells={nodes={%
,ellipse
,minimum width=4.5cm
,minimum height=1.5cm
,draw
,align=center
}}
,every arrow/.append style={-LaTeX, >=LaTeX}
,row sep=2cm
,column sep=2cm
]
Expectations
\arrow[<->, bend right=50,start anchor=185,end anchor=175]{dd}{D(+)}
\arrow{dr}[swap]{A(-)}
\arrow{drr}{F(\pm)}
&[-4cm] & \\
& (Dis)confirmation \arrow{r}{C(+)} & Satisfaction\\
\begin{tabular}{@{}c@{}}General\\ Performance\end{tabular}
\arrow{ur}{B(+)}
\arrow{urr}[swap]{E(+)}
& &
\end{tikzcd}
\end{document}
Responder2
Solução proposta para a questão original:
\documentclass[tikz,border=2mm]{standalone}
%\usepackage{MinionPro}
\usepackage{tikz}
\usetikzlibrary{positioning, shapes.geometric, arrows.meta}
\begin{document}
\begin{tikzpicture}[ball/.style={ellipse, minimum width=2cm, minimum height=1cm, draw}, >=LaTeX]
\node[ball] (dis) {Disconfirmation};
\node[ball, below left=2cm and 5mm of dis] (per) {Performance};
\node[ball, above left=2cm and 5mm of dis] (exp) {Expectations};
\node[ball, right=2cm of dis] (sat) {Satisfaction};
\draw[->] (exp) -- node [below] {A} (dis);
\draw[->] (exp) -- node [above] {F} (sat);
\draw[->] (per) -- node [above] {B} (dis);
\draw[->] (per) -- node [below] {E} (sat);
\draw[->] (dis) -- node [above] {C} (sat);
\draw[<->] (per) to [in=200,out=160] node [right] {A} (exp);
\end{tikzpicture}
\end{document}
Atualizar:
nodes
podem ser elipses carregando a biblioteca shape.geometric. Se minimum width
e minimum height
forem grandes o suficiente para acomodar o maior conteúdo, todos os nós terão tamanho semelhante. Se align
a opção estiver definida, \\
pode ser usada dentro do conteúdo do nó para quebrar linhas. Outra opção poderia ser definir alguns text width
que quebrarão automaticamente as linhas, embora ainda possam ser forçados com \\
.
\documentclass[tikz,border=2mm]{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning, shapes.geometric, arrows.meta}
\begin{document}
\begin{tikzpicture}[ball/.style={ellipse, minimum width=4.5cm,
minimum height=1cm, align=center, draw}, >=LaTeX]
\node[ball] (dis) {Disconfirmation(Dis)confirmation};
\node[ball, below left=2cm and 5mm of dis] (per) {General Performance};
\node[ball, above left=2cm and 5mm of dis] (exp) {Expectations};
\node[ball, right=2cm of dis] (sat) {Satisfaction};
\draw[->] (exp) -- node [below][below left] {A $(-)$} (dis);
\draw[->] (exp) -- node [above][above right] {F $(\pm)$} (sat);
\draw[->] (per) -- node [above][above left] {B $(+)$} (dis);
\draw[->] (per) -- node [below][below right] {E $(+)$} (sat);
\draw[->] (dis) -- node [above] {C $(+)$} (sat);
\draw[<->] (per) to [in=200,out=160] node [right] {AD $(+)$} (exp);
\end{tikzpicture}
\end{document}