Разные направленные графы

Разные направленные графы

желаемый график

Мне нужно сделать график, похожий на тот, что на картинке выше, но я не знаю, как сделать горизонтальные линии без стрелки или вертикальную стрелку. Лучшее, что я смог сделать, это следующее:

\documentclass{amsart}
\usepackage{tikz} 
\begin{document}
\begin{center}
\begin{tikzpicture}
    \node (p1) at ( 0, 0) {}; 
    \node (p2) at ( 1, -0.2) {i};
    \node (p3) at ( 3,0) {};
    \node (p4) at ( 0,1) {};
    \node (p5) at ( 2,1.2) {n+j};
    \node (p6) at ( 3,1) {};
    \begin{scope}[every path/.style={->}]
       \draw (p1) -- (p3); 
       \draw (p4) -- (p6);
       \draw (p2) -- (p5);
    \end{scope}  
\end{tikzpicture}
\end{center}
\end{document}

Выход

введите описание изображения здесь

решение1

Это желаемый результат:

введите описание изображения здесь

Примечания:

  • Если вы не хотите, чтобы на концах линий были стрелки, измените стиль на every path/.style={-}или просто уберите эту опцию, как я сделал ниже. По умолчанию линии не имеют стрелок.
  • Стиль стрелки, который вам нужен, — -latex. Поэтому просто добавьте эту опцию, когда это необходимо (как в случае с оранжевой линией).
  • Добавлено shorten <=и shorten >=для продления оранжевой линии. В качестве альтернативы вы можете вручную выбрать точки, которыеналиния.
  • Библиотека calcиспользовалась для вычисления средней точки coordinates, с помощью которой была проведена вертикальная черная линия.
  • Я перевел метки узлов в математический режим, добавив $.
  • Добавлены цвета, чтобы было легче понять, какая команда рисования за что отвечает.

Код:

\documentclass{amsart}
\usepackage{tikz} 
\usetikzlibrary{calc}
\begin{document}
\begin{center}
\begin{tikzpicture}[thick]
    \node (p1) at ( 0, 0) {}; 
    \node (p2) at ( 1, -0.2) {$i$};
    \node (p3) at ( 3,0) {};
    \node (p4) at ( 0,1) {};
    \node (p5) at ( 2,1.2) {$n+j$};
    \node (p6) at ( 3,1) {};
    \coordinate (p1MidwayP3) at ($(p1)!0.5!(p3)$);
    \coordinate (p4MidwayP6) at ($(p4)!0.5!(p6)$);
    \begin{scope}%[every path/.style={-}]
       \draw [red] (p1) -- (p3); 
       \draw [blue] (p4) -- (p6);
       \draw [orange, shorten <=-0.08cm, shorten >=-0.10cm, -latex](p2) -- (p5);
       \draw  (p1MidwayP3) -- (p4MidwayP6);
    \end{scope}  
\end{tikzpicture}
\end{center}
\end{document}

решение2

Решение PSTricks в сочетании сxfp:

\documentclass{article}

\usepackage{pstricks-add}
\usepackage{xfp}

\begin{document}

\def\Horizontal{5} % length of the horizontal line segments
\def\Vertical{3}   % length of the vertical   line segment
\def\Indent{0.5}   % indentation of the arrow from both sides
\begin{pspicture}(0,-0.4)(\Horizontal,\fpeval{\Vertical+0.45})
  \psline(0,0)(\Horizontal,0)
  \psline(0,\Vertical)(\Horizontal,\Vertical)
  \psline(\fpeval{\Horizontal/2},0)(\fpeval{\Horizontal/2},\Vertical)
  \psline{->}(\Indent,0)(\fpeval{\Horizontal-\Indent},\Vertical)
  \uput[270](\Indent,0){$i$}
  \uput[90](\fpeval{\Horizontal-\Indent},\Vertical){$n+j$}
\end{pspicture}

\end{document}

выход

Все, что вам нужно сделать, это выбрать значения \Horizontal, \Vertical, и \Indent, и рисунок будет соответствующим образом скорректирован.

Связанный контент