mirror of
https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs.git
synced 2025-04-28 07:55:22 +00:00
tracers: queue-levels: Output bytes/buffers/time graphs in separate plots
Much easier to read. Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/220
This commit is contained in:
parent
065bc72bfe
commit
02990f8fcc
1 changed files with 17 additions and 18 deletions
|
@ -4,6 +4,7 @@ import re
|
||||||
|
|
||||||
import matplotlib
|
import matplotlib
|
||||||
import matplotlib.pyplot as plt
|
import matplotlib.pyplot as plt
|
||||||
|
import matplotlib.patches as mpatches
|
||||||
|
|
||||||
parser = argparse.ArgumentParser()
|
parser = argparse.ArgumentParser()
|
||||||
parser.add_argument("file", help="Input file with queue levels")
|
parser.add_argument("file", help="Input file with queue levels")
|
||||||
|
@ -74,21 +75,17 @@ if num_plots == 0:
|
||||||
num_plots += 1
|
num_plots += 1
|
||||||
axes_names.append("time (s)")
|
axes_names.append("time (s)")
|
||||||
|
|
||||||
fig, ax1 = plt.subplots()
|
fig, axes = plt.subplots(num_plots, sharex=True)
|
||||||
ax1.set_xlabel("wallclock (s)")
|
axes[0].set_xlabel("wallclock (s)")
|
||||||
ax1.set_ylabel(axes_names[0])
|
axes[0].set_ylabel(axes_names[0])
|
||||||
ax1.tick_params(axis='y')
|
axes[0].tick_params(axis='y')
|
||||||
axes = [ax1]
|
|
||||||
|
|
||||||
if num_plots > 1:
|
if num_plots > 1:
|
||||||
ax2 = ax1.twinx()
|
axes[1].set_ylabel(axes_names[1])
|
||||||
ax2.set_ylabel(axes_names[1])
|
|
||||||
axes.append(ax2)
|
|
||||||
if num_plots > 2:
|
if num_plots > 2:
|
||||||
ax3 = ax1.twinx()
|
axes[2].set_ylabel(axes_names[2])
|
||||||
ax3.set_ylabel(axes_names[2])
|
|
||||||
ax3.spines['right'].set_position(('outward', 60))
|
patches = []
|
||||||
axes.append(ax3)
|
|
||||||
|
|
||||||
for (i, (queue, values)) in enumerate(queues.items()):
|
for (i, (queue, values)) in enumerate(queues.items()):
|
||||||
axis = 0
|
axis = 0
|
||||||
|
@ -115,7 +112,7 @@ for (i, (queue, values)) in enumerate(queues.items()):
|
||||||
axes[axis].plot(
|
axes[axis].plot(
|
||||||
[x[0] for x in values['cur-level-time']],
|
[x[0] for x in values['cur-level-time']],
|
||||||
[x[1] for x in values['cur-level-time']],
|
[x[1] for x in values['cur-level-time']],
|
||||||
'p', label = '{}: cur-level-time'.format(queue),
|
'.', label = '{}: cur-level-time'.format(queue),
|
||||||
color = colors[i],
|
color = colors[i],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -123,7 +120,7 @@ for (i, (queue, values)) in enumerate(queues.items()):
|
||||||
axes[axis].plot(
|
axes[axis].plot(
|
||||||
[x[0] for x in values['max-size-time']],
|
[x[0] for x in values['max-size-time']],
|
||||||
[x[1] for x in values['max-size-time']],
|
[x[1] for x in values['max-size-time']],
|
||||||
'-.', label = '{}: max-size-time'.format(queue),
|
'-', label = '{}: max-size-time'.format(queue),
|
||||||
color = colors[i],
|
color = colors[i],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -133,7 +130,7 @@ for (i, (queue, values)) in enumerate(queues.items()):
|
||||||
axes[axis].plot(
|
axes[axis].plot(
|
||||||
[x[0] for x in values['cur-level-bytes']],
|
[x[0] for x in values['cur-level-bytes']],
|
||||||
[x[1] for x in values['cur-level-bytes']],
|
[x[1] for x in values['cur-level-bytes']],
|
||||||
'x', label = '{}: cur-level-bytes'.format(queue),
|
'.', label = '{}: cur-level-bytes'.format(queue),
|
||||||
color = colors[i],
|
color = colors[i],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -141,13 +138,15 @@ for (i, (queue, values)) in enumerate(queues.items()):
|
||||||
axes[axis].plot(
|
axes[axis].plot(
|
||||||
[x[0] for x in values['max-size-bytes']],
|
[x[0] for x in values['max-size-bytes']],
|
||||||
[x[1] for x in values['max-size-bytes']],
|
[x[1] for x in values['max-size-bytes']],
|
||||||
'--', label = '{}: max-size-bytes'.format(queue),
|
'-', label = '{}: max-size-bytes'.format(queue),
|
||||||
color = colors[i],
|
color = colors[i],
|
||||||
)
|
)
|
||||||
|
|
||||||
axis += 1
|
axis += 1
|
||||||
|
|
||||||
fig.tight_layout()
|
patches.append(mpatches.Patch(color=colors[i], label=queue))
|
||||||
fig.legend()
|
|
||||||
|
|
||||||
|
fig.tight_layout()
|
||||||
|
|
||||||
|
plt.legend(handles=patches, loc='best')
|
||||||
plt.show()
|
plt.show()
|
||||||
|
|
Loading…
Reference in a new issue