0

enter image description here

Hi all

I am wondering if it is possible to create something similar to this in TikZ, but I dont have much experience with it. Is there anyone who can give me a starting hand?

Thank you in advance

  • 2
    Welcome to TeX.SX! Please help us to help you and add a minimal working example (MWE) that illustrates your problem. It will be much easier for us to reproduce your situation and find out what the issue is when we see compilable code, starting with \documentclass{...} and ending with \end{document}, although you ask for a starting hand, you should help us too – user31729 May 24 '15 at 18:34
  • 2
    You can take a look at pgfplots – Ignasi May 24 '15 at 19:10
  • Yes it is possible if you supply at least the data. – percusse May 24 '15 at 21:22
4

I was going to post a starting point, but at that point (sorry) I was almost done so I just finished it, not to mention this was your first post (please try to provide at least a code attempt and/or some data next time).

Anyway, I'm not sure if the plots are exact because some lines "mix" in your graph and I don't know which goes where, but the end result is the same, so it shouldn't be a problem.

Two notes:

  • The twisted arrows require a lot of code (in my opinion it's not worth it), but if you really like it, you can use the solution in Symbol 1's answer.
  • The rectangle should be the same colour of your rectangle (I picked the Hex and converted to rgb) but it still looks a bit different. Probably it's because of the quality of the image.

Output

enter image description here

Code

\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}
  • :) I was thinking about playing with this too. But, I didn't want to deal with how to get those arrows shaped right. – A.Ellett May 24 '15 at 21:28
  • 1
    @A.Ellett Yes the arrows require too much work for what it's worth, in my opinion. I even think that once you're done with them, they look out of place. Well, they already look a bit out of place (I would have used regular black thin arrows). – Alenanno May 24 '15 at 21:31
  • I'd move the rectangle before the plots so that it doesn't get drawn over the plot. (It will still require opacity for the filling since the xmajorgrids will be hidden.) However, draw=none might be the usual way to remove the drawing, even visually the same. The drawing of the arcs may be easier with something along the lines of Tikz: joining points on a circle, i.e. using axis cs: for both the start as well as the end point of the arrow. – Qrrbrbirlbel May 24 '15 at 21:57
  • @Qrrbrbirlbel (1) I did consider that but the original picture has the rectangle over the plots, so I thought I'd be consistent. :D (2) I used draw opacity instead of draw=none because of this answer from Jake... I thought that was the way to do it? (Maybe it's an older version?) (3) I'll look into that to draw the arcs. Thanks. :) – Alenanno May 24 '15 at 22:14
  • (1) Alright, although … OP says "something similar". ;) (2) Ah, I remember that. No response on the bug report (see my answer), though, I'd consider it as such. (3) Note the "might be". Maybe you could just calculate the distance, because the start and end angle are fixed. – Qrrbrbirlbel May 24 '15 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.