楕円内のテキストを中央に配置し、円のノードを描画するにはどうすればよいですか?

楕円内のテキストを中央に配置し、円のノードを描画するにはどうすればよいですか?

私もこの図に多くの時間を費やし、さまざまな種類の tikz、pstricks、multido 使用パッケージを試しました。次のような図を作成したいと思います。

ここに画像の説明を入力してください

私は次のように書きました:

\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

OPの最初のバージョンで尋ねられた解決策1:

微調整はあなたにお任せします。楕円の高さと幅を調整して、\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}

ここに画像の説明を入力してください


OPのバージョン3で尋ねられた解決策2:

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

ここに画像の説明を入力してください

アップデート:

nodesshapes.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}

ここに画像の説明を入力してください

関連情報