Как расположить текст по центру эллипса и нарисовать узлы окружности?

Как расположить текст по центру эллипса и нарисовать узлы окружности?

Я тоже потратил много времени на эту фигурку и пробовал разные типы пакетов tikz, pstricks и multido use. Я хотел бы создать фигурку, которая выглядит так:

введите описание изображения здесь

Я написал следующее:

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

Выглядит это так: введите описание изображения здесь

Мне нужно поместить текст в центре многоточий и линий к каждому из них. Может кто-нибудь подскажет, как это сделать?

Огромное спасибо!

решение1

Решение 1, как было предложено в первой версии OP:

Я оставляю тонкую настройку вам. Просто адаптируйте высоту и ширину эллипсов и установите \begin{tikzcd}[column sep=xxx, row sep=xxx]...по своему усмотрению. Если вы хотите изменить наконечники стрелок, вам нужно будет поискать на этом сайте здесь. Повсюду дается много помощи.

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

введите описание изображения здесь


Решение 2, как указано в версии 3 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}

введите описание изображения здесь

решение2

Предлагаемое решение исходного вопроса:

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

введите описание изображения здесь

Обновлять:

nodesмогут быть эллипсы, загружающие библиотеку shapes.geometric. Если minimum widthи minimum heightдостаточно велики, чтобы вместить самое большое содержимое, все узлы будут иметь одинаковый размер. Если alignопция определена, \\может использоваться внутри содержимого узла для разрыва строк. Другим вариантом может быть определение определенного, text widthкоторый будет автоматически разрывать строки, хотя его все еще можно принудительно выполнить с помощью \\.

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

введите описание изображения здесь

Связанный контент