在 LaTeX 上绘制垂直 DNA 序列并使用 TikZ 突出显示点

在 LaTeX 上绘制垂直 DNA 序列并使用 TikZ 突出显示点

我一直在谷歌搜索如何生成这样的图,但我不知道如何垂直绘制。因为我 30 分钟前开始使用 LaTeX。

这是对邮政我最初的想法是这样的:

我附上了一张我想要完成的图片

commercial photography locations

答案1

这是代码这个答案经过修改,使得股线从上向下而不是从左向右。

enter image description here

\documentclass[border=3pt]{standalone}
\usepackage{tikz}
\usepackage{xstring,calc}
\usetikzlibrary{calc,positioning}

\newlength{\NodeSize}

\tikzset{DNA Style/.style={minimum size=0.5cm, draw=gray, line width=1pt, inner sep = 2pt}}{}


\newcounter{ColumnCounter}% Prefix for node labels


\newlength{\CurrentXPos}
\newcommand*{\PreviousNode}{}%
\newcommand*{\DNASequence}[2][Mark]{%
    % https://tex.stackexchange.com/questions/12091/tikz-foreach-loop-with-macro-defined-list
    \def\Sequence{#2}%
    \def\PreviousNode{}%
    \foreach [count=\xi] \Label/\Color in \Sequence {%
        \IfStrEq{\Color}{}{\def\Color{white}}{}
        \edef\NodeName{#1-\arabic{ColumnCounter}}
        \IfStrEq{\PreviousNode}{}{%
            \node [DNA Style, fill=\Color, anchor=south west] (\NodeName) {\Label};
            \xdef\PreviousNode{\NodeName}%
        }{
            \node [DNA Style, fill=\Color, anchor=north west, yshift=\pgflinewidth] at (\PreviousNode.south west)(\NodeName) {\Label};
            \xdef\PreviousNode{\NodeName}%
        }
        \stepcounter{ColumnCounter}
    } 
}%

\begin{document}
\tikzset{note/.style={circle,draw,align=left}}
\begin{tikzpicture}[>=stealth]
    \DNASequence[cell]{ABCC/magenta!20,,,XYZ/violet!30,,ABC/green, G/blue!20,, G/cyan!30,,C/olive};
    \node[note] (note1) at ($(cell-3)+(2,0)$) {Observe\\this};
    \node[note] (note2) [below=of note1] {And this,\\too!};
    \draw[->] (note1) -- (cell-3);
    \draw[->] (note2) -- (cell-7);
\end{tikzpicture}
\end{document}

相关内容