Such thing is not directly supported in UML timing diagramm standard yet tikz timing diagram can in theory supports it (page 48) (The tikz timing Package by Martin Scharrer).
So I wonder how one could create something like this in tikz:

How to plot f(t), g(t) values as a row in timing diagram in tex?
There are examples of how to draw for sin like functions. There is basic sample of how to add local chart legend (in an extreamly painfull way). There is a basic grouping sample which seems to look like extreamly far from traditional UML notation with multiple lifelines with stases per each and global timing.
== Update ==
- You can generate tikz code out from plant uml. It does not use anything but lines and nodes. So it is not comfortable for automation. It is editable in TikzEdit.
- I have created a prototype of UML look + standart tikz axis inside. Sadly tikzEdit does not like axis plot so node positions are not wysiwyg editable. Here is code:
$$ sorry for the formatting
%% Boilerplate
\documentclass{article}
\usepackage{tikz,amsmath, amssymb,bm,color, amsmath, pgfplots, ulem, xcolor, cancel, amssymb, soul, amssymb, amsmath, graphicx, tikz, bm,color, pgfplots, pgfkeys, float}
\usepackage[margin=0cm,nohead]{geometry}
\usepackage[active,tightpage]{preview}
\usetikzlibrary{fit, shapes,arrows, calc,shadings, shapes,arrows,calc,shadings}
%% Boilerplate
\PreviewEnvironment{tikzpicture}
\makeatletter
\newcommand\setwidth[5]{% newmacro, node1, anchor1, node2, anchor2
\pgfpointdiff{\pgfpointanchor{#2}{#3}}{\pgfpointanchor{#4}{#5}}
\edef#1{\the\pgf@x}
}
\newcommand\setheight[5]{% newmacro, node1, anchor1, node2, anchor2
\pgfpointdiff{\pgfpointanchor{#2}{#3}}{\pgfpointanchor{#4}{#5}}
\edef#1{\the\pgf@y}
}
\makeatother
\tikzset{
umltrap/.style={
color=black,line width=1pt,
trapezium, draw, inner xsep=8pt,
minimum height=10pt, trapezium left angle=0,
trapezium right angle=-65, anchor=west, shift={(0pt,-7pt)}
},
umlrect/.style={
color=black,line width=1.7pt,
rectangle, draw, inner sep=0pt, fit=#1
}
%end tikzset
}
\begin{tikzpicture}
\coordinate (top) at (0,0) {};
\coordinate (bottom) at (16.5,-3.5) {};
\def\pointlist{
(0,0) (0.1, 0) (0.2,1) (1, 2)
}
\node[umlrect={(top) (bottom)}] {};
\node [umltrap] (name) at (top) { Browser };
\setwidth{\StartW}{name}{west}{name}{east}
\setwidth{\innerW}{top}{west}{bottom}{east}
\setheight{\innerH}{bottom}{south}{top}{north}
\begin{axis}[ axis line style = ultra thick,
scale only axis, axis lines=middle, axis x line*=bottom, y axis line style={draw=none},
xtick={0,0.1,...,1}, ytick={0, 1, 2}, yticklabels={state one, other state ,third state},
ymin=-0.3, ymax=2,
xmin=-0, xmax=1,
width=\innerW - \StartW - 5 ,height=\innerH - 20,
anchor=west, at={($(top.south west)$)} , shift={(\StartW, -\innerH / 2 - 10)} ]
\addplot+[const plot mark right]
coordinates
{ \pointlist };
\end{axis}
\end{tikzpicture}
%% Boilerplate
\end{document}
$$
So logic is simple: there are top, bottom points to define the box and allign to it axis and label
As you can see there are 2 majour problems left for it to look alike in UML picture:
- Multiple lifelines\timelines that would go in sync.
- interconnections between lifelines.
How to do that?
== Update (after correct response) == Using solutions from Stefan Pinnow here and here I was able to mimic desired UML look=)
Dirty listing if you are intrested (tested with TeXworks):
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
\usetikzlibrary{intersections, pgfplots.groupplots, arrows.meta, fit, shapes,arrows, calc,shadings, shapes,arrows,calc,shadings}
\pgfplotsset{
compat=1.14,
}
\begin{document}
\begin{tikzpicture}
\tikzset{
umltrap/.style={
color=black,line width=1pt,
trapezium, draw, inner xsep=8pt,
minimum height=10pt, trapezium left angle=0,
trapezium right angle=-65, anchor=west, shift={(0pt,-7pt)}
},
umlrect/.style={
color=black,line width=1.7pt,
rectangle, draw, inner sep=0pt, fit=#1
}
%end tikzset
}
%extract coordinates from points (X and Y)
\newdimen\XCoord
\newdimen\YCoord
\newcommand*{\ExtractCoordinate}[1]{\path (#1); \pgfgetlastxy{\XCoord}{\YCoord};}
\begin{groupplot}[
group style={
group size=1 by 3,
xticklabels at=edge bottom,
vertical sep=5mm,
},
width=10cm,
height=2cm,
scale only axis,
axis lines=left,
xmin=0,
xmax=500,
no markers,
axis lines=middle,
]
\nextgroupplot[
ymin=0.75,
very thick,
ymax=3.25, % start from 1...
ytick={0, 1, 2, 3},
yticklabels={0, state one, other state ,third state},
]
\pgfmathtruncatemacro{\PlotNum}{0}
\addplot+ [yshift=1*\pgflinewidth, % shift by const
const plot mark right,
name path=first,
] coordinates { (0,1) (100,1) (210,2) (300,1) (500,3) };
\addplot+ [yshift=2*\pgflinewidth, % shift by const
const plot mark right,
name path=sec,
] coordinates { (0,1) (150,2) (190,3) (310,2) (400,3) (500,2)};
\pgfmathsetmacro{\xOne}{275}
\path [name path=v1]
(\xOne,\pgfkeysvalueof{/pgfplots/ymin}) --
(\xOne,\pgfkeysvalueof{/pgfplots/ymax});
\path [
name intersections={
of=first and v1,
by={i1},
},
name intersections={
of=sec and v1,
by={i4},
},
];
\nextgroupplot[
domain=0:\pgfkeysvalueof{/pgfplots/xmax},
samples=101,
smooth,
cycle list name=exotic,
shift={(0pt,-5pt)},
]
\addplot+ [name path=second] {abs(sin(x) * 300)};
\addplot+ [name path=third] {abs(cos(x) * 150)};
\pgfmathsetmacro{\xTwo}{225}
\path [name path=v2]
(\xTwo,\pgfkeysvalueof{/pgfplots/ymin}) --
(\xTwo,\pgfkeysvalueof{/pgfplots/ymax});
\path [
name intersections={
of=second and v2,
by={i2},
},
];
\path [
name intersections={
of=third and v2,
by={i3},
},
];
\legend{
a,
b,
};
\nextgroupplot[
domain=0:\pgfkeysvalueof{/pgfplots/xmax},
samples=101,
smooth,
cycle list name=exotic,
cycle list shift=4,
shift={(0pt,-5pt)},
]
\addplot+ [name path=another] {abs(sin(x) * 220)};
\addplot+ [name path=anotherOne] {abs(cos(x) * 107)};
];
\pgfmathsetmacro{\xOne}{100}
\pgfmathsetmacro{\xTwo}{300}
\path [name path=dcp1]
(\xOne,\pgfkeysvalueof{/pgfplots/ymin}) --
(\xOne,\pgfkeysvalueof{/pgfplots/ymax});
\path [name path=dcp2]
(\xTwo,\pgfkeysvalueof{/pgfplots/ymin}) --
(\xTwo,\pgfkeysvalueof{/pgfplots/ymax});
\path [
name intersections={
of=another and dcp1,
by={dc1},
},
name intersections={
of=another and dcp2,
by={dc2},
},
];
\legend{
v,
g,
}
\end{groupplot}
\draw [red,->] (i2) -- (i1);
\draw [red,->] (i3) -- (i4);
%%% here we draw boxes for each plot and label them
\ExtractCoordinate{current bounding box.south west}
\xdef\bxw{\XCoord} %% left X wall
\ExtractCoordinate{current bounding box.north east}
\xdef\bxe{\XCoord} %% right X wall
\ExtractCoordinate{{group c1r1.north west}} % group c1r1 via https://tex.stackexchange.com/a/302240/69931
\xdef\yA{\YCoord}
\draw[black,very thick, shift={(0pt,20pt)}] (\bxw, \yA) -- (\bxe, \yA);
\node[umltrap, shift={(0pt,20pt)}] at (\bxw, \yA) { Browser };
\ExtractCoordinate{{group c1r1.south west}}
\xdef\yB{\YCoord}
\draw[black,very thick] (\bxw, \yB) -- (\bxe, \yB);
\node[umltrap] at (\bxw, \yB) { Browser 2};
\ExtractCoordinate{{group c1r2.south west}}
\xdef\yC{\YCoord}
\draw[black,very thick] (\bxw, \yC) -- (\bxe, \yC);
\node[umltrap] at (\bxw, \yC) { Browser 3};
% |<--bla-bla-->| via https://tex.stackexchange.com/a/298069/69931
\draw[{Bar[].Straight Barb[]}-{Straight Barb[].Bar[]}]
(dc2) -- node[above, sloped] {\scriptsize \{777\}}
(dc1);
\draw [very thick] ([shift={(0pt,15pt)}]current bounding box.south west)
rectangle ( current bounding box.north east);
\end{tikzpicture}
\end{document}




\documentclass{}...\begin{document}etc. As it is, most of our users will be very reluctant to touch your question, and you are left to the mercy of our procrastination team who are very few in number and very picky about selecting questions. You can improve your question by adding a minimal working example (MWE) that more users can copy/paste onto their systems to work on. If no hero takes the challenge we might have to close your question. – Dr. Manuel Kuehner Mar 07 '17 at 19:51pgfplotspackage in general. – Dr. Manuel Kuehner Mar 07 '17 at 19:53