我希望画一些类似的东西(一种地毯图案)
该图显示了各种机器学习方法的性能。我想知道绘制垂直钩的最佳方法是什么。此外,我如何才能自动绘制钩子。
任何想法都将不胜感激。
最小工作示例粘贴如下。
\documentclass{article}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[scale=1]
% Axis
\draw[-] (0,0) -- (5,0);
% Coordinates
\node (A) at (3,0) {};
\node (B) at (2,0) {};
\node (C) at (2.5,0) {};
% Lines
\draw (A) -| ++(0,-0.5)-| ++(2,0) node (n1) [right] {LDA};
\draw (B) -| ++(0,-0.5)-| ++(-2,0) node (n2) [left] {RF};
\draw (C) -| ++(0,-1)-| ++(-2.5,0) node (n2) [left] {SVM};
\end{tikzpicture}
\end{document}
答案1
这是解决您问题的快速而简单的方法。您所需的所有信息也可以轻松从手册如上所述。
解决方案基于使用坐标来表示感兴趣的点。这样,代码就可以轻松地与其他值一起重复使用。
\documentclass[border=5mm, tikz]{standalone}
\usepackage{xifthen}
\usetikzlibrary{calc, positioning}
\begin{document}
\begin{tikzpicture}
\tikzset{
lbl/.style={
text width=1.5cm,
},
}
% axis
\draw (1,0) -- (4,0);
\foreach \x [count=\i] in {1,...,4} {
\draw (\x, 0) -- ++(0,.1) node [above] {\i};
\ifthenelse{\x < 4}{\draw (\x+.5, 0) -- ++(0,.05);}{}
}
% coordinates
\coordinate (c0) at (1,0);
\coordinate (c1) at (1.8,0);
\coordinate (c2) at (2.75,0);
\coordinate (c3) at (3.2,0);
\coordinate (c4) at (3.3,0);
\coordinate (c5) at (4,0);
% cd
\draw [|-|] ($(c0) +(0,.75)$) -- ($(c1) +(0,.75)$) node [midway, above] {CD};
% labels
\node (l1) at (c0) [below left=.25cm and 0cm, lbl, align=right] {first};
\node (l2) [below=0cm of l1, lbl, align=right] {second};
\node (l4) at (c5) [below right=.25cm and 0cm, lbl, align=left] {fourth};
\node (l3) [below=0cm of l4, lbl, align=left] {third};
% connectors
\foreach \x in {1,...,4} {
\draw (l\x) -| (c\x);
};
\draw [ultra thick] ($(c2)+(-.1,-.25)$) -- ($(c4)+(.1,-.25)$);
\end{tikzpicture}
\end{document}