Fixed charts
diff --git a/report.py b/report.py
index 62489f1..32f9d6f 100644
--- a/report.py
+++ b/report.py
@@ -1,15 +1,13 @@
 import sys
 from collections import OrderedDict
 
-import matplotlib.pyplot as plt
 
 import formatters
 from chart import charts
 from utils import ssize_to_b
 from statistic import med_dev, approximate_curve
 
-from disk_perf_test_tool.tests.io_results_loader import (load_files,
-                                                         filter_data)
+from disk_perf_test_tool.io_results_loader import (load_files, filter_data)
 
 
 OPERATIONS = (('async', ('randwrite asynchronous', 'randread asynchronous',
@@ -147,10 +145,6 @@
     open(dest, 'w').write(html)
 
 
-def build_io_chart(res):
-    pass
-
-
 # def render_html_results(ctx):
 #     charts = []
 #     for res in ctx.results:
@@ -163,7 +157,26 @@
     # render_html(bars + lines, dest)
 
 
-def make_io_report(results):
+def io_chart(title, concurence, latv, iops_or_bw, iops_or_bw_dev,
+             legend):
+    bar_data, bar_dev = iops_or_bw, iops_or_bw_dev
+    legend = [legend]
+
+    bar_dev_bottom = []
+    bar_dev_top = []
+    for i in range(len(bar_data)):
+        bar_dev_top.append(bar_data[i] + bar_dev[i])
+        bar_dev_bottom.append(bar_data[i] - bar_dev[i])
+
+    latv = [lat / 1000 for lat in latv]
+    ch = charts.render_vertical_bar(title, legend, [bar_data], [bar_dev_top],
+                                    [bar_dev_bottom],
+                                    scale_x=concurence,
+                                    lines=[(latv, "msec", "rr", "lat")])
+    return str(ch)
+
+
+def make_io_report(results, path):
     for suite_type, test_suite_data in results:
         if suite_type != 'io':
             continue
@@ -186,28 +199,33 @@
 
             concurence, latv, iops_or_bw_v = zip(*data_iter)
             iops_or_bw_v, iops_or_bw_dev_v = zip(*map(med_dev, iops_or_bw_v))
+            latv, _ = zip(*map(med_dev, latv))
 
-            _, ax1 = plt.subplots()
-
-            ax1.plot(concurence, iops_or_bw_v)
-            ax1.errorbar(concurence, iops_or_bw_v, iops_or_bw_dev_v,
-                         linestyle='None',
-                         label="iops_or_bw_v",
-                         marker="*")
-
-            # ynew = approximate_line(ax, ay, ax, True)
-
-            ax2 = ax1.twinx()
-
-            ax2.errorbar(concurence,
-                         [med_dev(lat)[0] / 1000 for lat in latv],
-                         [med_dev(lat)[1] / 1000 for lat in latv],
-                         linestyle='None',
-                         label="iops_or_bw_v",
-                         marker="*")
-            ax2.plot(concurence, [med_dev(lat)[0] / 1000 for lat in latv])
-            plt.show()
-            exit(0)
+            url = io_chart(name_filter, concurence, latv, iops_or_bw_v,
+                           iops_or_bw_dev_v,
+                           fields[2])
+            charts_url.append(url)
+            # _, ax1 = plt.subplots()
+            #
+            # ax1.plot(concurence, iops_or_bw_v)
+            # ax1.errorbar(concurence, iops_or_bw_v, iops_or_bw_dev_v,
+            #              linestyle='None',
+            #              label="iops_or_bw_v",
+            #              marker="*")
+            #
+            # # ynew = approximate_line(ax, ay, ax, True)
+            #
+            # ax2 = ax1.twinx()
+            #
+            # ax2.errorbar(concurence,
+            #              [med_dev(lat)[0] / 1000 for lat in latv],
+            #              [med_dev(lat)[1] / 1000 for lat in latv],
+            #              linestyle='None',
+            #              label="iops_or_bw_v",
+            #              marker="*")
+            # ax2.plot(concurence, [med_dev(lat)[0] / 1000 for lat in latv])
+            # plt.show()
+            # exit(0)
 
             # bw_only = []
 
@@ -224,11 +242,11 @@
 
             # charts_url.append(str(chart_url))
 
-        render_html(charts_url, "results.html")
+        render_html(charts_url, path)
 
 
 def main(args):
-    make_io_report('/tmp/report', load_files(args[1:]))
+    make_io_report(load_files(args[1:]))
     return 0