我有以下代码,我试图在其中绘制一个图形。我希望 P 和 M 节点是椭圆形(椭圆形),但它们只是圆形。我知道椭圆是圆的一个特例,但我不知道如何指定半径(例如,写椭圆(0.5 和 0.7)不起作用)。
\begin{tikzpicture}[node distance=2cm, minimum size = 1cm]
\node[rectangle,draw = black] (B) at (-1,4) {$B$};
\node[ellipse,draw = black] (M) at (-1,1) {$M$};
\node[ellipse,draw = black] (P) at (0.5,2.5) {$P$};
\node[diamond, draw = black] (U) at (1,5.5) {$U$};
\draw[->] (B) -- (M);
\draw[->] (B) -- (P);
\draw[->] (B) -- (U);
\draw[->] (M) -- (P);
\draw[->] (P) -- (U);
\end{tikzpicture}
答案1
圆是椭圆形,所以你的代码没有错。
不过,如果你想让你的节点呈椭圆形,你可以在其中插入较长的文本(如下例中的“Power”),或者让你的节点有一个minimum width
(如下面 M 节点)。
(不相关,但你没有提供最小工作示例,这是寻求答案的更好方法)
\documentclass[tikz,border=3.14159mm]{standalone}
\usetikzlibrary{shapes}
\begin{document}
\begin{tikzpicture}[node distance=2cm, minimum size = 1cm]
\node[rectangle,draw = black] (B) at (-1,4) {$B$};
\node[ellipse, minimum width=2cm,draw = black] (M) at (-1,1) {$M$};
\node[ellipse,draw = black] (P) at (0.5,2.5) {$Power$};
\node[diamond, draw = black] (U) at (1,5.5) {$U$};
\draw[->] (B) -- (M);
\draw[->] (B) -- (P);
\draw[->] (B) -- (U);
\draw[->] (M) -- (P);
\draw[->] (P) -- (U);
\end{tikzpicture}
\end{document}