aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2018-11-14 13:14:53 +0100
committerTibor Frank <tifrank@cisco.com>2018-11-14 16:26:04 +0000
commitdf8d51401ae0c5eaedbb76e01705ed6eed2d7dda (patch)
treebd46c4f5c351bbed62e658815857080bba558093
parent1945453e97441afb265a69fac099e84897dc62d0 (diff)
Report: Changes in graphs layout
Change-Id: Ied97ef11be4d6b3e08f2e54d868e36da9e73ab85 Signed-off-by: Tibor Frank <tifrank@cisco.com> (cherry picked from commit 1304e1ba4c723e255019a2990612906790f47bca)
-rw-r--r--docs/report/introduction/report_history.rst2
-rw-r--r--resources/tools/presentation/generator_plots.py77
-rw-r--r--resources/tools/presentation/specification.yaml8
3 files changed, 65 insertions, 22 deletions
diff --git a/docs/report/introduction/report_history.rst b/docs/report/introduction/report_history.rst
index e6fb910678..afe0fd6937 100644
--- a/docs/report/introduction/report_history.rst
+++ b/docs/report/introduction/report_history.rst
@@ -4,6 +4,8 @@ Report History
+---------+--------------------------------------------------------------------+
| Version | Change |
+=========+====================================================================+
+| 1.2 | - Add automatic wrapping of long test names in graphs |
++---------+--------------------------------------------------------------------+
| 1.1 | - Add dot1q KVM VMs vhost-user tests to the VPP performance |
| | graphs. |
| | - Add the information about the number of runs used to generate |
diff --git a/resources/tools/presentation/generator_plots.py b/resources/tools/presentation/generator_plots.py
index 0f660999dd..03cee06cb0 100644
--- a/resources/tools/presentation/generator_plots.py
+++ b/resources/tools/presentation/generator_plots.py
@@ -144,11 +144,21 @@ def plot_performance_box(plot, input_data):
df.head()
y_max = list()
for i, col in enumerate(df.columns):
- name = "{0}. {1} ({2} run{3})".\
- format(i + 1,
- col.lower().replace('-ndrpdr', ''),
- nr_of_samples[i],
- 's' if nr_of_samples[i] > 1 else '')
+ name = "{0}. {1}".format(i + 1, col.lower().replace('-ndrpdr', ''))
+ if len(name) > 60:
+ name_lst = name.split('-')
+ name = ""
+ split_name = True
+ for segment in name_lst:
+ if (len(name) + len(segment) + 1) > 60 and split_name:
+ name += "<br> "
+ split_name = False
+ name += segment + '-'
+ name = name[:-1]
+ name = "{name} ({samples} run{plural})".\
+ format(name=name,
+ samples=nr_of_samples[i],
+ plural='s' if nr_of_samples[i] > 1 else '')
logging.debug(name)
traces.append(plgo.Box(x=[str(i + 1) + '.'] * len(df[col]),
y=[y / 1000000 if y else None for y in df[col]],
@@ -287,13 +297,23 @@ def plot_latency_error_bars(plot, input_data):
y_maxs = list()
nr_of_samples = list()
for key, val in y_sorted.items():
- key = "-".join(key.split("-")[1:-1])
- x_vals.append(key) # dir 1
+ name = "-".join(key.split("-")[1:-1])
+ if len(name) > 60:
+ name_lst = name.split('-')
+ name = ""
+ split_name = True
+ for segment in name_lst:
+ if (len(name) + len(segment) + 1) > 60 and split_name:
+ name += "<br> "
+ split_name = False
+ name += segment + '-'
+ name = name[:-1]
+ x_vals.append(name) # dir 1
y_vals.append(mean(val[1]) if val[1] else None)
y_mins.append(mean(val[0]) if val[0] else None)
y_maxs.append(mean(val[2]) if val[2] else None)
nr_of_samples.append(len(val[1]) if val[1] else 0)
- x_vals.append(key) # dir 2
+ x_vals.append(name) # dir 2
y_vals.append(mean(val[4]) if val[4] else None)
y_mins.append(mean(val[3]) if val[3] else None)
y_maxs.append(mean(val[5]) if val[5] else None)
@@ -309,9 +329,9 @@ def plot_latency_error_bars(plot, input_data):
for idx in range(len(x_vals)):
if not bool(int(idx % 2)):
- direction = "West - East"
+ direction = "West-East"
else:
- direction = "East - West"
+ direction = "East-West"
hovertext = ("Test: {test}<br>"
"Direction: {dir}<br>"
"No. of Runs: {nr}<br>".format(test=x_vals[idx],
@@ -320,7 +340,7 @@ def plot_latency_error_bars(plot, input_data):
if isinstance(y_maxs[idx], float):
hovertext += "Max: {max:.2f}uSec<br>".format(max=y_maxs[idx])
if isinstance(y_vals[idx], float):
- hovertext += "Avg: {avg:.2f}uSec<br>".format(avg=y_vals[idx])
+ hovertext += "Mean: {avg:.2f}uSec<br>".format(avg=y_vals[idx])
if isinstance(y_mins[idx], float):
hovertext += "Min: {min:.2f}uSec".format(min=y_mins[idx])
@@ -467,6 +487,16 @@ def plot_throughput_speedup_analysis(plot, input_data):
try:
if test_vals["1"][1]:
name = "-".join(test_name.split('-')[1:-1])
+ if len(name) > 60:
+ name_lst = name.split('-')
+ name = ""
+ split_name = True
+ for segment in name_lst:
+ if (len(name) + len(segment) + 1) > 60 and split_name:
+ name += "<br> "
+ split_name = False
+ name += segment + '-'
+ name = name[:-1]
vals[name] = dict()
y_val_1 = test_vals["1"][0] / 1000000.0
@@ -664,7 +694,7 @@ def plot_throughput_speedup_analysis(plot, input_data):
for idx in range(len(val["val"])):
htext = ""
if isinstance(val["val"][idx], float):
- htext += "Value: {0:.2f}Mpps<br>" \
+ htext += "Mean: {0:.2f}Mpps<br>" \
"No. of Runs: {1}<br>".format(val["val"][idx],
val["count"][idx])
if isinstance(val["diff"][idx], float):
@@ -697,7 +727,7 @@ def plot_throughput_speedup_analysis(plot, input_data):
color=COLORS[cidx],
width=2,
dash="dash"),
- text=["perfect: {0:.2f}Mpps".format(y)
+ text=["Perfect: {0:.2f}Mpps".format(y)
for y in val["ideal"]],
hoverinfo="text"
))
@@ -774,11 +804,22 @@ def plot_http_server_performance_box(plot, input_data):
df = pd.DataFrame(y_vals)
df.head()
for i, col in enumerate(df.columns):
- name = "{0}. {1} ({2} run{3})".\
- format(i + 1,
- col.lower().replace('-cps', '').replace('-rps', ''),
- nr_of_samples[i],
- 's' if nr_of_samples[i] > 1 else '')
+ name = "{0}. {1}".format(i + 1, col.lower().replace('-ndrpdr', ''))
+ if len(name) > 60:
+ name_lst = name.split('-')
+ name = ""
+ split_name = True
+ for segment in name_lst:
+ if (len(name) + len(segment) + 1) > 60 and split_name:
+ name += "<br> "
+ split_name = False
+ name += segment + '-'
+ name = name[:-1]
+ name = "{name} ({samples} run{plural})".\
+ format(name=name,
+ samples=nr_of_samples[i],
+ plural='s' if nr_of_samples[i] > 1 else '')
+
traces.append(plgo.Box(x=[str(i + 1) + '.'] * len(df[col]),
y=df[col],
name=name,
diff --git a/resources/tools/presentation/specification.yaml b/resources/tools/presentation/specification.yaml
index d1acd9ff2f..b9f438fb2d 100644
--- a/resources/tools/presentation/specification.yaml
+++ b/resources/tools/presentation/specification.yaml
@@ -669,7 +669,7 @@
font:
size: 16
width: 700
- height: 800
+ height: 850
plot-throughput-speedup-analysis:
titlefont:
@@ -742,14 +742,14 @@
xanchor: "left",
yanchor: "top",
x: 0,
- y: -0.125,
+ y: -0.13,
font: {
family: "Consolas, Courier New",
size: 15
},
},
{
- text: " perfect measured limit",
+ text: " Perfect Measured Limit",
align: "left",
showarrow: False,
xref: "paper",
@@ -757,7 +757,7 @@
xanchor: "left",
yanchor: "top",
x: 0,
- y: -0.14,
+ y: -0.15,
font: {
family: "Consolas, Courier New",
size: 15