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}
This commit is contained in:
Bjorn Terelius
2019-04-11 18:34:01 +02:00
committed by Commit Bot
parent 0813fd504d
commit ff8cce37b6
3 changed files with 20 additions and 8 deletions

View File

@ -214,6 +214,12 @@ WEBRTC_DEFINE_bool(
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 @@ int main(int argc, char* argv[]) {
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) {

View File

@ -158,7 +158,8 @@ void PythonPlot::Draw() {
}
}
PythonPlotCollection::PythonPlotCollection() {}
PythonPlotCollection::PythonPlotCollection(bool shared_xaxis)
: shared_xaxis_(shared_xaxis) {}
PythonPlotCollection::~PythonPlotCollection() {}
@ -170,11 +171,13 @@ void PythonPlotCollection::Draw() {
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();
}

View File

@ -23,10 +23,13 @@ class PythonPlot final : public Plot {
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