![制作带有场景和箭头的 TikZ 图形](https://linux22.com/image/312078/%E5%88%B6%E4%BD%9C%E5%B8%A6%E6%9C%89%E5%9C%BA%E6%99%AF%E5%92%8C%E7%AE%AD%E5%A4%B4%E7%9A%84%20TikZ%20%E5%9B%BE%E5%BD%A2.png)
大家好
我想知道是否有可能在 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}