def draw_bars(self):
        self.dl = DrawableList()

        self.bar_spacing = self.bar_spacing or 0.9
        self.bars_width = self.graph_height / float(self.column_count)
        self.bar_width = self.bars_width * self.bar_spacing / len(self.norm_data)
        self.dl.append(DrawableStrokeOpacity(0.0))
        height = [0 for i in range(self.column_count)]
        length = [self.graph_left for i in range(self.column_count)]
        padding = (self.bar_width * (1 - self.bar_spacing)) / 2

        for row_index, data_row in enumerate(self.norm_data):
            for point_index, data_point in enumerate(data_row['values']):
                self.dl.append(DrawableFillColor(Color(data_row['color'])))
                if type(self.transparent) is float:
                    self.dl.append(DrawableFillOpacity(self.transparent))
                elif self.transparent is True:
                    self.dl.append(DrawableFillOpacity(base.DEFAULT_TRANSPARENCY))
                # Using the original calcs from the stacked bar chart
                # to get the difference between
                # part of the bart chart we wish to stack.
                temp1 = self.graph_left + (self.graph_width - \
                        data_point * self.graph_width - height[point_index])
                temp2 = self.graph_left + self.graph_width - height[point_index]
                difference = temp2 - temp1

                left_x = length[point_index] - 1
                left_y = self.graph_top + (self.bars_width * point_index) + \
                         (self.bar_width * row_index) + padding
                right_x = left_x + difference
                right_y = left_y + self.bar_width
                height[point_index] += (data_point * self.graph_width)
                self.dl.append(DrawableRectangle(left_x, left_y, right_x, right_y))

                # Calculate center based on bar_width and current row
                label_center = self.graph_top + \
                        (self.bars_width * point_index + self.bars_width / 2)
                self.draw_label(label_center, point_index)
                if self.additional_line_values:
                    _gdata = self.find_label(data_row['label'])
                    self.draw_values(left_y + self.bar_width / 2,
                                     _gdata['values'][point_index])
        self.dl.append(DrawableScaling(self.scale, self.scale))
        self.base_image.draw(self.dl)
dataset/ETHPy150Open hhatto/gruffy/gruffy/sidebar.py/SideBar.draw_bars/original