타원의 중앙에 텍스트를 배치하고 원 노드를 그리는 방법은 무엇입니까?

타원의 중앙에 텍스트를 배치하고 원 노드를 그리는 방법은 무엇입니까?

나는 이 그림에도 많은 시간을 쏟았고 다양한 유형의 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}

여기에 이미지 설명을 입력하세요

관련 정보