Convenience functions to set axis properties in visualization tool.

Also makes the properties protected, as previously requested by Stefan.

Review-Url: https://codereview.webrtc.org/2179223003
Cr-Commit-Position: refs/heads/master@{#13593}
diff --git a/webrtc/tools/event_log_visualizer/plot_base.cc b/webrtc/tools/event_log_visualizer/plot_base.cc
new file mode 100644
index 0000000..f27fcd6
--- /dev/null
+++ b/webrtc/tools/event_log_visualizer/plot_base.cc
@@ -0,0 +1,75 @@
+/*
+ *  Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "webrtc/tools/event_log_visualizer/plot_base.h"
+
+#include <algorithm>
+
+#include "webrtc/base/checks.h"
+
+namespace webrtc {
+namespace plotting {
+
+void Plot::SetXAxis(float min_value,
+                    float max_value,
+                    std::string label,
+                    float left_margin,
+                    float right_margin) {
+  RTC_DCHECK_LE(min_value, max_value);
+  xaxis_min_ = min_value - left_margin * (max_value - min_value);
+  xaxis_max_ = max_value + right_margin * (max_value - min_value);
+  xaxis_label_ = label;
+}
+
+void Plot::SetSuggestedXAxis(float min_value,
+                             float max_value,
+                             std::string label,
+                             float left_margin,
+                             float right_margin) {
+  for (const auto& series : series_list_) {
+    for (const auto& point : series.points) {
+      min_value = std::min(min_value, point.x);
+      max_value = std::max(max_value, point.x);
+    }
+  }
+  SetXAxis(min_value, max_value, label, left_margin, right_margin);
+}
+
+void Plot::SetYAxis(float min_value,
+                    float max_value,
+                    std::string label,
+                    float bottom_margin,
+                    float top_margin) {
+  RTC_DCHECK_LE(min_value, max_value);
+  yaxis_min_ = min_value - bottom_margin * (max_value - min_value);
+  yaxis_max_ = max_value + top_margin * (max_value - min_value);
+  yaxis_label_ = label;
+}
+
+void Plot::SetSuggestedYAxis(float min_value,
+                             float max_value,
+                             std::string label,
+                             float bottom_margin,
+                             float top_margin) {
+  for (const auto& series : series_list_) {
+    for (const auto& point : series.points) {
+      min_value = std::min(min_value, point.y);
+      max_value = std::max(max_value, point.y);
+    }
+  }
+  SetYAxis(min_value, max_value, label, bottom_margin, top_margin);
+}
+
+void Plot::SetTitle(std::string title) {
+  title_ = title;
+}
+
+}  // namespace plotting
+}  // namespace webrtc