使用 TikZ 创建这种圆形图的最佳方法是什么?
我在网上找到了几个类似的例子并尝试进行修改,但最终总是出现以下问题:
- 无法在文本节点中使用格式或添加换行符
- 文本节点周围没有边框
- 顺时针箭头不是圆形的
尝试了一些例子,但无济于事:
答案1
你可能希望自动执行此操作,因此调整Sigur 在评论中提供的此链接,你可以这样做:
\documentclass[tikz, border=3.14pt]{standalone}
\usetikzlibrary{arrows.meta, bending}
\begin{document}
\tikzset{mynode/.style={text width=2.5cm, align=center}}
\newcommand{\R}{4cm} % Circle radius
\newcommand{\texta}{\textbf{Title 1} \\ Description 1}
\newcommand{\textb}{\textbf{Title 2} \\ Description 2}
\newcommand{\textc}{\textbf{Title 3} \\ Description 3}
\newcommand{\textd}{\textbf{Title 4} \\ Description 4}
\newcommand{\texte}{\textbf{Title 5} \\ Description 5}
\begin{tikzpicture}[-{Stealth[bend]}]
\foreach \a/\t in {90/\texta,18/\textb,-54/\textc,-126/\textd,-198/\texte}
{
\ifnum\a=90
\node[mynode,yshift=-10pt] at (\a:\R) {{\t}};
\else
\node[mynode] at (\a:\R) {{\t}};
\fi
\draw (\a-15:\R) arc (\a-15:\a-55:\R);
}
\end{tikzpicture}
\end{document}
但你可能会发现位置有点奇怪。所以你需要手动操作。
放置节点(可以使用循环完成)然后通过尝试和错误绘制箭头。
\begin{tikzpicture}[-{Stealth[bend]}]
\foreach \a/\t in {90/\texta,18/\textb,-45/\textc,-135/\textd,-198/\texte}
\node[mynode] at (\a:\R) {{\t}};
\draw (70:\R) arc (70:30:\R);
\draw (10:\R) arc (10:-35:\R);
\draw (-55:\R) arc (-55:-125:\R);
\draw (-145:\R) arc (-145:-190:\R);
\draw (150:\R) arc (150:110:\R);
\end{tikzpicture}