Add flag to enable shared x-axis for local event log visualization.
Bug: None
Change-Id: I4aea047c905aa8acbe25fd325bc92bb65b8d0826
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/132557
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Björn Terelius <terelius@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#27583}
diff --git a/rtc_tools/event_log_visualizer/main.cc b/rtc_tools/event_log_visualizer/main.cc
index 7992b1c..25e5bfb 100644
--- a/rtc_tools/event_log_visualizer/main.cc
+++ b/rtc_tools/event_log_visualizer/main.cc
@@ -214,6 +214,12 @@
true,
"Normalize the log timestamps so that the call starts at time 0.");
+WEBRTC_DEFINE_bool(shared_xaxis,
+ false,
+ "Share x-axis between all plots so that zooming in one plot "
+ "updates all the others too. A downside is that certain "
+ "operations like panning become much slower.");
+
WEBRTC_DEFINE_bool(protobuf_output,
false,
"Output charts as protobuf instead of python code.");
@@ -294,7 +300,7 @@
if (FLAG_protobuf_output) {
collection.reset(new webrtc::ProtobufPlotCollection());
} else {
- collection.reset(new webrtc::PythonPlotCollection());
+ collection.reset(new webrtc::PythonPlotCollection(FLAG_shared_xaxis));
}
if (FLAG_plot_incoming_packet_sizes) {
diff --git a/rtc_tools/event_log_visualizer/plot_python.cc b/rtc_tools/event_log_visualizer/plot_python.cc
index 2efb1f1..499fd43 100644
--- a/rtc_tools/event_log_visualizer/plot_python.cc
+++ b/rtc_tools/event_log_visualizer/plot_python.cc
@@ -158,7 +158,8 @@
}
}
-PythonPlotCollection::PythonPlotCollection() {}
+PythonPlotCollection::PythonPlotCollection(bool shared_xaxis)
+ : shared_xaxis_(shared_xaxis) {}
PythonPlotCollection::~PythonPlotCollection() {}
@@ -170,11 +171,13 @@
printf("import colorsys\n");
for (size_t i = 0; i < plots_.size(); i++) {
printf("plt.figure(%zu)\n", i);
- // Link x-axes across all figures for synchronized zooming.
- if (i == 0) {
- printf("axis0 = plt.subplot(111)\n");
- } else {
- printf("plt.subplot(111, sharex=axis0)\n");
+ if (shared_xaxis_) {
+ // Link x-axes across all figures for synchronized zooming.
+ if (i == 0) {
+ printf("axis0 = plt.subplot(111)\n");
+ } else {
+ printf("plt.subplot(111, sharex=axis0)\n");
+ }
}
plots_[i]->Draw();
}
diff --git a/rtc_tools/event_log_visualizer/plot_python.h b/rtc_tools/event_log_visualizer/plot_python.h
index 61d17a0..23a0a92 100644
--- a/rtc_tools/event_log_visualizer/plot_python.h
+++ b/rtc_tools/event_log_visualizer/plot_python.h
@@ -23,10 +23,13 @@
class PythonPlotCollection final : public PlotCollection {
public:
- PythonPlotCollection();
+ explicit PythonPlotCollection(bool shared_xaxis = false);
~PythonPlotCollection() override;
void Draw() override;
Plot* AppendNewPlot() override;
+
+ private:
+ bool shared_xaxis_;
};
} // namespace webrtc