TiKZ 中的地毯图

TiKZ 中的地毯图

我希望画一些类似的东西(一种地毯图案) 在此处输入图片描述

该图显示了各种机器学习方法的性能。我想知道绘制垂直钩的最佳方法是什么。此外,我如何才能自动绘制钩子。

任何想法都将不胜感激。

最小工作示例粘贴如下。

\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}

渲染图像

相关内容