\documentclass{standalone}
\usepackage{tkz-graph}
\usetikzlibrary{arrows.meta}
\tikzset{>={Latex[width=3mm,length=3mm]}}
\begin{document}
\begin{tikzpicture}
\GraphInit[vstyle=Dijkstra]
\SetGraphUnit{4}
\Vertices{square}{G,D,A,F}
\WE(F){H}
\EA(A){B}
\EA(D){C}
\NO(A){E}
\draw [->] (H) -- (F);
\Edge[label=$1$](H)(F)
\Edge[label=$4$](G)(F)
\Edge[label=$2$](H)(G)
\Edge[label=$2$](G)(D)
\Edge[label=$3$](D)(C)
\draw [->] (F) -- (E);
\Edge[label=$4$](F)(E)
\Edge[label=$3$](A)(D)
\Edge[label=$2$](A)(E)
\Edge[label=$1$](A)(B)
\Edge[label=$2$](A)(C)
\Edge[label=$2$](C)(B)
\draw [->] (E) -- (B);
\Edge[label=$3$](E)(B)
\SetUpEdge[lw=4pt,color=gray]
\Edges[style={opacity=.3}](H,F,E,B)
\end{tikzpicture}
\end{document}
对于上述内容,我试图让代码看起来像紫色图像,但是我想保持与我的代码相同的颜色编码,即箭头为灰色,其他部分为黑色,请你帮我调整代码,因为我调整的所有内容都会使它看起来更糟,例如我的箭头尝试的代码中已经显示的那样。更新:我让箭头概念发挥作用,现在我只是想让箭头变大,让圆圈等看起来像我图片中的图表。更新 #2:让箭头变大
我不知道我之前是否已经解释清楚了,但是我在调整节点使其看起来像图像时遇到了麻烦,每次我尝试这样做时,节点都会变得混乱并且看起来与图像完全不一样。
答案1
在我的安装中tkz-graph
不存在,但它是我的 TeXLive2019 安装的一部分。无论如何,我试图graphs
更好地理解这个库,即使我目前的理解水平很低,这个图表也很容易获得,但想必如果理解得更好,它会变得更容易、更精简。
\documentclass[tikz,border=3mm]{standalone}
\usetikzlibrary{arrows.meta,calc,decorations.pathreplacing,graphs,quotes}
\tikzset{growing arrow/.style={decorate,
decoration={show path construction,
moveto code={},
lineto code={
\draw[line width=1pt,-{Stealth[width=12pt,length=12pt]}]
(\tikzinputsegmentfirst) -- (\tikzinputsegmentlast);
\fill ($ (\tikzinputsegmentlast)!6pt!0:(\tikzinputsegmentfirst) $) coordinate (aux)
($ (\tikzinputsegmentfirst)!0.5pt!90:(\tikzinputsegmentlast) $)
-- ($ (aux)!2pt!-90:(\tikzinputsegmentfirst) $)
--($ (aux)!2pt!90:(\tikzinputsegmentfirst) $)
-- ($ (\tikzinputsegmentfirst)!0.5pt!-90:(\tikzinputsegmentlast) $) ;
},
curveto code={},
closepath code={},
}}}
%\definecolor{prp}{RGB}{99,51,156}
\begin{document}
\begin{tikzpicture}[x=2cm,y=pi*0.5cm,font=\sffamily]
\graph[nodes={circle,fill,text=white,minimum size=2em}]
{{
a[yshift=-1cm] -- {
b[xshift=2mm] --[growing arrow,"5"] d[yshift=3mm] ,
c [> "2"] -- e [> "10",xshift=3mm]} -- f
};
c -- b [> "1"];
c --["8"] d ;
e --["2"] d;
e --["5"] f;
d --["6"] f;
};
\draw[growing arrow] (a) to["4"] (b);
\end{tikzpicture}
\end{document}