
tikzダイアグラムの他のノードとエッジの上に囲む四角形を追加するにはどうすればいいですか? コマンドを使用すると、\draw (0,0) rectangle (10,40)
他のすべてのコンポーネントはこの点の下から始まります。私が欲しいのは、このダイアグラム内の何かです
私の tikz コードは次のとおりです:
\documentclass{article}
\pagestyle{empty}
\usepackage{tikz}
\tikzstyle{vertex} = [fill,shape=circle,node distance=80pt]
\tikzstyle{edge} = [fill,opacity=.2,fill opacity=.5,line cap=round, line join=round, line width=50pt]
\tikzstyle{elabel} = [fill,shape=circle,node distance=30pt, opacity = .2]
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\begin{document}
\begin{tikzpicture}
\begin{pgfonlayer}{background}
\node[vertex,label={[font = \Large]above:\(C_{11}, \$30\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v1) {};
\node[vertex,right of=v1,label={[font = \Large]above:\(C_{21}\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v2) {};
\node[vertex,right of=v2,label={[font = \Large]above:\(C_{31}\)}, label={[font = \Large]below:\(F_{6}\)}] (v3) {};
\node[vertex,below of=v1,label={[font = \Large]above:\(C_{12},\$40\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v4) {};
\node[vertex,right of=v4,label={[font = \Large]above:\(C_{22},\$20\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v5) {};
\node[vertex,right of=v5,label={[font = \Large]above:\(C_{32},\$20\)}, label={[font = \Large]below:\(F_{6}\)}] (v6) {};
\node[vertex,below of=v4,label={[font = \Large]above:\(C_{31},\$45\)}, label={[font = \Large]below:\(F_{1}\)}] (v7) {};
\node[vertex,below of=v5,label={[font = \Large]above:\(C_{32},\$50\)}, label={[font = \Large]below:\(F_{4}, F_{5}\)}] (v8) {};
\node[vertex,below of=v6,label={[font = \Large]above:\(C_{33},\$40\)}, label={[font = \Large]below:\(F_{4}, F_{5}\)}] (v9) {};
\node[vertex,below of=v7,label={[font = \Large]above:\(C_{41}, \$30\)}, label={[font = \Large]below:\(F_{1}\)}] (v10) {};
\node[vertex,below of=v8,label={[font = \Large]above:\(C_{42}, \$70\)}, label={[font = \Large]below:\(F_{4}, F_{5}\)}] (v11) {};
\draw[edge,color=yellow,line width=65pt] (v2) -- (v3);
\draw[edge,color=red,line width=65pt] (v1) -- (v5);
\draw[edge,color=blue,line width=65pt] (v10) -- (v8) -- (v6);
\draw[edge,color=green, line width=65pt] (v10) -- (v11) -- (v6);
\end{pgfonlayer}
\node[elabel,color=yellow,label=right:\(\$25\)] (e1) at (7,0) {};
\node[elabel,below of=e1,color=red,label=right:\(\$30\)] (e2) {};
\node[elabel,below of=e2,color=blue,label=right:\(\$70\)] (e3) {};
\node[elabel,below of=e3,color=green,label=right:\(\$90\)] (e4) {};
%Task nodes
\node[above of=v1,label={[font = \Large]above:\(Task \ T_1\)}] (t1) {};
\node[above of=v2,label={[font = \Large]above:\(Task \ T_2\)}] (t2) {};
\node[above of=v3,label={[font = \Large]above:\(Task \ T_3\)}] (t3) {};
\end{tikzpicture}
\end{document}
答え1
ノードの座標、つまり相対位置を指定しない場合は、ノードは (0,0) に配置されます。つまり、C_11 ノードは (0,0) にあります。他のすべてのノードはこの右または下にあります。したがって、\draw (0,0) rectangle (10,40);
y 軸の正の方向は上向きであるため、当然、最初の列の周りには収まりません。また、デフォルトの単位ベクトルの長さは 1cm であるため、10cm × 40cm の長方形が作成されますが、これは大きすぎます。
もちろん、rectangle
パスに他の座標を使用しても機能します。たとえば、
\draw (-1,1.2) rectangle (1,-9.8);
ライブラリを使用することもできますfit
。\usetikzlibrary{fit}
前文に追加して、
\node [draw, fit=(v1)(v10), inner sep=30pt] {};
v1
図の と ノードの周囲に収まるノードが作成されますv10
。 は、スタイルで使用される のinner sep
半分強です。line width
edge
無関係なコメント:\tikzstyle{foo}=[..]
は一般に非推奨とみなされ、 が推奨されます\tikzset{foo/.style={...}}
。また、上部のラベルでは、Task
数式の一部にしないでください。Task \( T_1 \)
代わりに eg と記述してください。
\documentclass{article}
\pagestyle{empty}
\usepackage{tikz}
\usetikzlibrary{fit}
\tikzset{
vertex/.style={
fill,
shape=circle,
node distance=80pt},
edge/.style={
fill,
opacity=.2,
fill opacity=.5,
line cap=round,
line join=round,
line width=50pt},
elabel/.style={
fill,
shape=circle,
node distance=30pt,
opacity = .2}
}
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\begin{document}
\begin{tikzpicture}
\begin{pgfonlayer}{background}
\node[vertex,label={[font = \Large]above:\(C_{11}, \$30\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v1) {};
\node[vertex,right of=v1,label={[font = \Large]above:\(C_{21}\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v2) {};
\node[vertex,right of=v2,label={[font = \Large]above:\(C_{31}\)}, label={[font = \Large]below:\(F_{6}\)}] (v3) {};
\node[vertex,below of=v1,label={[font = \Large]above:\(C_{12},\$40\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v4) {};
\node[vertex,right of=v4,label={[font = \Large]above:\(C_{22},\$20\)}, label={[font = \Large]below:\(F_{1}, F_{2}\)}] (v5) {};
\node[vertex,right of=v5,label={[font = \Large]above:\(C_{32},\$20\)}, label={[font = \Large]below:\(F_{6}\)}] (v6) {};
\node[vertex,below of=v4,label={[font = \Large]above:\(C_{31},\$45\)}, label={[font = \Large]below:\(F_{1}\)}] (v7) {};
\node[vertex,below of=v5,label={[font = \Large]above:\(C_{32},\$50\)}, label={[font = \Large]below:\(F_{4}, F_{5}\)}] (v8) {};
\node[vertex,below of=v6,label={[font = \Large]above:\(C_{33},\$40\)}, label={[font = \Large]below:\(F_{4}, F_{5}\)}] (v9) {};
\node[vertex,below of=v7,label={[font = \Large]above:\(C_{41}, \$30\)}, label={[font = \Large]below:\(F_{1}\)}] (v10) {};
\node[vertex,below of=v8,label={[font = \Large]above:\(C_{42}, \$70\)}, label={[font = \Large]below:\(F_{4}, F_{5}\)}] (v11) {};
\draw[edge,color=yellow,line width=65pt] (v2) -- (v3);
\draw[edge,color=red,line width=65pt] (v1) -- (v5);
\draw[edge,color=blue,line width=65pt] (v10) -- (v8) -- (v6);
\draw[edge,color=green, line width=65pt] (v10) -- (v11) -- (v6);
\end{pgfonlayer}
\node[elabel,color=yellow,label=right:\(\$25\)] (e1) at (7,0) {};
\node[elabel,below of=e1,color=red,label=right:\(\$30\)] (e2) {};
\node[elabel,below of=e2,color=blue,label=right:\(\$70\)] (e3) {};
\node[elabel,below of=e3,color=green,label=right:\(\$90\)] (e4) {};
%Task nodes
\node[above of=v1,label={[font = \Large]above:Task \( T_1\)}] (t1) {};
\node[above of=v2,label={[font = \Large]above:Task \(T_2\)}] (t2) {};
\node[above of=v3,label={[font = \Large]above:Task \(T_3\)}] (t3) {};
%\draw (-1,1.2) rectangle (1,-9.8);
\node [draw, fit=(v1)(v10), inner sep=30pt] {};
\end{tikzpicture}
\end{document}