制作带有场景和箭头的 TikZ 图形

制作带有场景和箭头的 TikZ 图形

在此处输入图片描述

大家好

我想知道是否有可能在 TikZ 中创建类似的东西,但我对此没有太多经验。有谁可以给​​我一些启发吗?

先感谢您

答案1

我本来要发布一个起点,但那时(抱歉)我几乎已经完成了,所以我刚刚完成它,更不用说这是你的第一篇帖子(下次请尝试至少提供一次代码尝试和/或一些数据)。

无论如何,我不确定这些图是否准确,因为有些线在你的图中“混合”了,我不知道哪条线放在哪里,但最终结果是相同的,所以这应该不是问题。

两点说明:

  • 扭曲的箭头需要大量的代码(在我看来不值得),但如果你真的喜欢它,你可以使用解决方案符号 1 的答案
  • 该矩形的颜色应该与您的矩形相同(我选择了 Hex 并转换为 rgb),但它看起来仍然有点不同。可能是因为图像质量。

输出

在此处输入图片描述

代码

\documentclass[margin=10pt]{standalone}
\usepackage{pgfplots}

\usetikzlibrary{arrows.meta}
\definecolor{myblue}{rgb}{0.63, 0.79, 0.95}
\definecolor{bluearr}{rgb}{0.0, 0.53, 0.74}

\tikzset{
    mymark/.style={mark=*,mark size=.8,black,mark options={black}},
    myarrow/.style={->,-{Triangle[width=2mm,length=1.5mm]},line width=.8mm,draw=bluearr!80!black}%postaction={draw=blue!70, line width=3mm},shorten >=2mm},
}

\pgfplotsset{
    every axis x label/.style={at={(current axis.right of origin)},anchor=north east},
}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    width=10cm,
    height=6cm,
    xmin=0, xmax=13,
    ymin=0, ymax=13,
    try min ticks=12,
    xticklabels={,,},
    xlabel=Time,
    major tick length=0,
    ytick=\empty,
    xmajorgrids,
    axis lines=left,
    axis line style={-latex}
    ]

% plots
\addplot [mymark] coordinates{(0,2) (2,1) (4,1) (6,1) (8,2) (10,1) (12,2)};
\addplot [mymark] coordinates{(0,4) (2,3) (4,2) (6,4) (8,5) (10,4) (12,3)};
\addplot [mymark] coordinates{(0,5) (2,6) (4,7) (6,8) (8,7) (10,6) (12,4)};
\addplot [mymark] coordinates{(0,6) (2,5) (4,4) (6,5) (8,7) (10,8) (12,8)};
\addplot [mymark] coordinates{(0,7) (2,9) (4,10) (6,9) (8,8) (10,9) (12,9)};
\addplot [mymark] coordinates{(0,9) (2,7) (4,8) (6,6) (8,4) (10,6) (12,6)};

% arrows top
\draw[myarrow] (axis cs:1.8,10.5) arc [start angle=0, end angle=180, radius=5mm];
\draw[myarrow] (axis cs:3.8,10.5) arc [start angle=0, end angle=180, radius=5mm];
\draw[myarrow] (axis cs:5.8,10.5) arc [start angle=0, end angle=180, radius=5mm];
\draw[myarrow] (axis cs:7.8,10.5) arc [start angle=0, end angle=180, radius=5mm];
\draw[myarrow] (axis cs:10.2,10.5) arc [start angle=0, end angle=180, radius=6mm];

% blue rectangle
\addplot [fill=myblue, opacity=.5, draw opacity=0] coordinates {(9.5,0.5) (10.5,0.5) (10.5,9.5) (9.5,9.5)};
\end{axis}
\end{tikzpicture}
\end{document}

相关内容