Ejemplo n.º 1
0
 def get_chart(self, rows, columns, x_label, y_label):
     chart = MultiBarChart('% of Groups Receiving Grades', x_axis=Axis(x_label), y_axis=Axis(y_label, '.0%'))
     chart.height = 400
     chart.rotateLabels = -60
     chart.marginBottom = 90
     chart.marginLeft = 100
     self._chart_data(chart, columns, rows)
     return [chart]
Ejemplo n.º 2
0
 def get_chart(self, rows, columns, x_label, y_label):
     chart = MultiBarChart('% of Groups Receiving Grades', x_axis=Axis(x_label), y_axis=Axis(y_label, '.0%'))
     chart.height = 400
     chart.rotateLabels = -60
     chart.marginBottom = 90
     chart.marginLeft = 100
     self._chart_data(chart, columns, rows)
     return [chart]
 def get_chart(self, rows, columns, x_label, y_label):
     chart = MultiBarChart('Adoption of Practices', x_axis=Axis(x_label), y_axis=Axis(y_label))
     chart.forceY = [0, 100]
     chart.height = 700
     chart.rotateLabels = -55
     chart.marginBottom = 390
     chart.marginLeft = 350
     self._chart_data(chart, columns, rows)
     return [chart]
Ejemplo n.º 4
0
 def get_chart(self, rows, columns, x_label, y_label):
     chart = MultiBarChart('Adoption of Practices',
                           x_axis=Axis(x_label),
                           y_axis=Axis(y_label))
     chart.forceY = [0, 100]
     chart.height = 700
     chart.rotateLabels = -55
     chart.marginBottom = 390
     chart.marginLeft = 350
     self._chart_data(chart, columns, rows)
     return [chart]
 def get_chart(self, rows, x_label, y_label):
     chunks = _chunks(list(rows), self.chunk_size + 1)
     charts = []
     if self.request.GET.get('group_by', '') == 'domain':
         chunks = sorted(chunks, key=lambda k: k[0][0])
     for chunk in chunks:
         chart = MultiBarChart(chunk[0][0], x_axis=Axis(x_label), y_axis=Axis(y_label, '.0%'))
         chart.height = 300
         chart.rotateLabels = 0
         chart.marginBottom = 80
         chart.marginLeft = 100
         self._chart_data(chart, chunk[1:])
         charts.append(chart)
     return charts
    def get_chart(self, rows, x_label, y_label):
        chunks = _chunks(list(rows), self.chunk_size+1)
        charts = []
        for chunk in chunks:

            chart = MultiBarChart(chunk[0][0], x_axis=Axis(x_label), y_axis=Axis(y_label))
            chart.forceY = [0, 100]
            chart.height = 300
            chart.rotateLabels = 0
            chart.marginBottom = 80
            chart.marginLeft = 100
            self._chart_data(chart, chunk[1:])
            charts.append(chart)
        return charts
    def get_chart(self, rows, x_label, y_label):
        chunks = _chunks(list(rows), self.chunk_size + 1)
        charts = []
        for chunk in chunks:

            chart = MultiBarChart(chunk[0][0],
                                  x_axis=Axis(x_label),
                                  y_axis=Axis(y_label))
            chart.forceY = [0, 100]
            chart.height = 300
            chart.rotateLabels = 0
            chart.marginBottom = 80
            chart.marginLeft = 100
            self._chart_data(chart, chunk[1:])
            charts.append(chart)
        return charts
Ejemplo n.º 8
0
 def get_chart(self, rows, x_label, y_label):
     chunks = _chunks(list(rows), self.chunk_size + 1)
     charts = []
     if self.request.GET.get('group_by', '') == 'domain':
         chunks = sorted(chunks, key=lambda k: k[0][0])
     for chunk in chunks:
         chart = MultiBarChart(chunk[0][0],
                               x_axis=Axis(x_label),
                               y_axis=Axis(y_label, '.0%'))
         chart.height = 300
         chart.rotateLabels = 0
         chart.marginBottom = 80
         chart.marginLeft = 100
         self._chart_data(chart, chunk[1:])
         charts.append(chart)
     return charts
    def get_chart(self, rows, columns, x_label, y_label):
        chart = MultiBarChart('Adoption of Practices', x_axis=Axis(x_label), y_axis=Axis(y_label, '%'))

        if self.report_config['group'] == 'domain':
            chart.height = 550
            chart.rotateLabels = -55
            chart.marginBottom = 250
        elif self.report_config['group'] == 'practice':
            chart.height = 700
            chart.rotateLabels = -55
            chart.marginBottom = 400
        else:
            chart.height = 320
            chart.rotateLabels = 0
            chart.marginBottom = 50

        chart.marginLeft = 200
        chart.marginRight = 150
        self._chart_data(chart, columns, rows)
        return [chart]
Ejemplo n.º 10
0
    def get_chart(self, rows, columns, x_label, y_label):
        chart = MultiBarChart('Adoption of Practices',
                              x_axis=Axis(x_label),
                              y_axis=Axis(y_label, '%'))

        if self.report_config['group'] == 'domain':
            chart.height = 550
            chart.rotateLabels = -55
            chart.marginBottom = 250
        elif self.report_config['group'] == 'practice':
            chart.height = 700
            chart.rotateLabels = -55
            chart.marginBottom = 400
        else:
            chart.height = 320
            chart.rotateLabels = 0
            chart.marginBottom = 50

        chart.marginLeft = 200
        chart.marginRight = 150
        self._chart_data(chart, columns, rows)
        return [chart]
Ejemplo n.º 11
0
    def get_chart(self, rows, x_label, y_label, data_provider):
        def _get_label_with_percentage(row):
            return "%s [%d: %s%%]" % (row[0]['html'], int(
                row[-2]['html']), str(int(row[-1]['html'][:-1])))

        if isinstance(data_provider, NutritionBirthWeightDetails):
            chart = PieChart(data_provider.chart_title, '',
                             [{
                                 'label': _get_label_with_percentage(row),
                                 'value': int(row[-1]['html'][:-1])
                             } for row in rows[2:]], ['red', 'green'])
            chart.showLabels = False
            chart.marginLeft = 20
            chart.marginRight = 0
            chart.marginBottom = 20
        elif isinstance(data_provider, DeliveryPlaceDetailsExtended):
            chart = PieChart(data_provider.chart_title, '',
                             [{
                                 'label': _get_label_with_percentage(row),
                                 'value': int(row[-1]['html'][:-1])
                             } for row in rows[1:]])
            chart.showLabels = False
        elif isinstance(data_provider,
                        (PostnatalCareOverview, ImmunizationOverview)):
            chart = MultiBarChart(data_provider.chart_title,
                                  x_axis=Axis(x_label),
                                  y_axis=Axis(y_label, '.2%'))
            chart.rotateLabels = -45
            chart.marginBottom = 150
            chart.marginLeft = 45
            chart.marginRight = 0

            if isinstance(data_provider, ImmunizationOverview):
                chart.stacked = True
                chart.add_dataset('Percentage',
                                  [{
                                      'x': row[0]['html'],
                                      'y': int(row[3]['html'][:-1]) / 100.0
                                  } for row in rows],
                                  color='green')
                chart.add_dataset('Dropout Percentage',
                                  [{
                                      'x': row[0]['html'],
                                      'y': int(row[-1]['html'][:-1]) / 100.0
                                  } for row in rows],
                                  color='red')
            else:
                chart.add_dataset('Percentage',
                                  [{
                                      'x': row[0]['html'],
                                      'y': int(row[-1]['html'][:-1]) / 100.0
                                  } for row in rows])
        elif isinstance(data_provider, AnteNatalCareServiceOverviewExtended):
            chart1 = MultiBarChart('ANC Visits',
                                   x_axis=Axis(x_label),
                                   y_axis=Axis(y_label, '.2%'))
            chart2 = MultiBarChart('Maternal TT & IFA',
                                   x_axis=Axis(x_label),
                                   y_axis=Axis(y_label, '.2%'))
            chart1.rotateLabels = -45
            chart2.rotateLabels = -45
            chart1.marginBottom = 150
            chart2.marginBottom = 150
            chart1.marginLeft = 20
            chart2.marginLeft = 45
            chart1.marginRight = 0
            chart2.marginRight = 0

            chart1.add_dataset('Percentage',
                               [{
                                   'x': row[0]['html'],
                                   'y': int(row[-1]['html'][:-1]) / 100.0
                               } for row in rows[1:6]])
            chart2.add_dataset('Percentage',
                               [{
                                   'x': row[0]['html'],
                                   'y': int(row[-1]['html'][:-1]) / 100.0
                               } for row in rows[6:12]])
            return [chart1, chart2]
        elif isinstance(data_provider, ChildrenDeathsByMonth):
            chart = MultiBarChart(data_provider.chart_title,
                                  x_axis=Axis(x_label, dateFormat="%B"),
                                  y_axis=Axis(y_label, '.2%'))
            chart.rotateLabels = -45
            chart.marginBottom = 50
            chart.marginLeft = 20
            chart.add_dataset('Percentage',
                              [{
                                  'x': row[0],
                                  'y': int(row[-1]['html'][:-1]) / 100.0
                              } for row in rows])
        else:
            chart = PieChart(data_provider.chart_title, '',
                             [{
                                 'label': _get_label_with_percentage(row),
                                 'value': int(row[-1]['html'][:-1])
                             } for row in rows])
            chart.showLabels = False
            chart.marginLeft = 20
            chart.marginRight = 0
            chart.marginBottom = 0
        return [chart]
Ejemplo n.º 12
0
    def get_chart(self, rows, x_label, y_label, data_provider):
        def _get_label_with_percentage(row):
            return "%s [%d: %s%%]" % (row[0]['html'], int(row[-2]['html']), str(int(row[-1]['html'][:-1])))

        if isinstance(data_provider, NutritionBirthWeightDetails):
            chart = PieChart(data_provider.chart_title, '',
                             [{'label': _get_label_with_percentage(row),
                               'value': int(row[-1]['html'][:-1])} for row in rows[2:]], ['red', 'green'])
            chart.showLabels = False
            chart.marginLeft = 20
            chart.marginRight = 0
            chart.marginBottom = 20
        elif isinstance(data_provider, DeliveryPlaceDetailsExtended):
            chart = PieChart(data_provider.chart_title, '',
                             [{'label': _get_label_with_percentage(row),
                               'value': int(row[-1]['html'][:-1])} for row in rows[1:]])
            chart.showLabels = False
        elif isinstance(data_provider, (PostnatalCareOverview, ImmunizationOverview)):
            chart = MultiBarChart(data_provider.chart_title, x_axis=Axis(x_label), y_axis=Axis(y_label, '.2%'))
            chart.rotateLabels = -45
            chart.marginBottom = 150
            chart.marginLeft = 45
            chart.marginRight = 0

            if isinstance(data_provider, ImmunizationOverview):
                chart.stacked = True
                chart.add_dataset('Percentage',
                                  [{'x': row[0]['html'],
                                    'y': int(row[3]['html'][:-1]) / 100.0} for row in rows],
                                  color='green')
                chart.add_dataset('Dropout Percentage',
                                  [{'x': row[0]['html'],
                                    'y': int(row[-1]['html'][:-1]) / 100.0} for row in rows],
                                  color='red')
            else:
                chart.add_dataset('Percentage',
                                  [{'x': row[0]['html'], 'y':int(row[-1]['html'][:-1]) / 100.0} for row in rows])
        elif isinstance(data_provider, AnteNatalCareServiceOverviewExtended):
            chart1 = MultiBarChart('ANC Visits', x_axis=Axis(x_label), y_axis=Axis(y_label, '.2%'))
            chart2 = MultiBarChart('Maternal TT & IFA', x_axis=Axis(x_label), y_axis=Axis(y_label, '.2%'))
            chart1.rotateLabels = -45
            chart2.rotateLabels = -45
            chart1.marginBottom = 150
            chart2.marginBottom = 150
            chart1.marginLeft = 20
            chart2.marginLeft = 45
            chart1.marginRight = 0
            chart2.marginRight = 0

            chart1.add_dataset('Percentage', [{'x': row[0]['html'],
                                               'y': int(row[-1]['html'][:-1]) / 100.0} for row in rows[1:6]])
            chart2.add_dataset('Percentage', [{'x': row[0]['html'],
                                               'y': int(row[-1]['html'][:-1]) / 100.0} for row in rows[6:12]])
            return [chart1, chart2]
        elif isinstance(data_provider, ChildrenDeathsByMonth):
            chart = MultiBarChart(data_provider.chart_title, x_axis=Axis(x_label, dateFormat="%B"),
                                  y_axis=Axis(y_label, '.2%'))
            chart.rotateLabels = -45
            chart.marginBottom = 50
            chart.marginLeft = 20
            chart.add_dataset('Percentage', [{'x': row[0],
                                              'y': int(row[-1]['html'][:-1]) / 100.0} for row in rows])
        else:
            chart = PieChart(data_provider.chart_title, '', [{'label': _get_label_with_percentage(row),
                                                              'value': int(row[-1]['html'][:-1])} for row in rows])
            chart.showLabels = False
            chart.marginLeft = 20
            chart.marginRight = 0
            chart.marginBottom = 0
        return [chart]
Ejemplo n.º 13
0
    def get_chart(self, rows, x_label, y_label, data_provider):
        def _get_label_with_percentage(row):
            return "%s [%d: %s%%]" % (row[0]["html"], int(row[-2]["html"]), str(int(row[-1]["html"][:-1])))

        if isinstance(data_provider, NutritionBirthWeightDetails):
            chart = PieChart(
                data_provider.chart_title,
                "",
                [{"label": _get_label_with_percentage(row), "value": int(row[-1]["html"][:-1])} for row in rows[2:]],
                ["red", "green"],
            )
            chart.showLabels = False
            chart.marginLeft = 20
            chart.marginRight = 0
            chart.marginBottom = 20
        elif isinstance(data_provider, DeliveryPlaceDetailsExtended):
            chart = PieChart(
                data_provider.chart_title,
                "",
                [{"label": _get_label_with_percentage(row), "value": int(row[-1]["html"][:-1])} for row in rows[1:]],
            )
            chart.showLabels = False
        elif isinstance(data_provider, (PostnatalCareOverview, ImmunizationOverview)):
            chart = MultiBarChart(data_provider.chart_title, x_axis=Axis(x_label), y_axis=Axis(y_label, ".2%"))
            chart.rotateLabels = -45
            chart.marginBottom = 150
            chart.marginLeft = 45
            chart.marginRight = 0

            if isinstance(data_provider, ImmunizationOverview):
                chart.stacked = True
                chart.add_dataset(
                    "Percentage",
                    [{"x": row[0]["html"], "y": int(row[3]["html"][:-1]) / 100.0} for row in rows],
                    color="green",
                )
                chart.add_dataset(
                    "Dropout Percentage",
                    [{"x": row[0]["html"], "y": int(row[-1]["html"][:-1]) / 100.0} for row in rows],
                    color="red",
                )
            else:
                chart.add_dataset(
                    "Percentage", [{"x": row[0]["html"], "y": int(row[-1]["html"][:-1]) / 100.0} for row in rows]
                )
        elif isinstance(data_provider, AnteNatalCareServiceOverviewExtended):
            chart1 = MultiBarChart("ANC Visits", x_axis=Axis(x_label), y_axis=Axis(y_label, ".2%"))
            chart2 = MultiBarChart("Maternal TT & IFA", x_axis=Axis(x_label), y_axis=Axis(y_label, ".2%"))
            chart1.rotateLabels = -45
            chart2.rotateLabels = -45
            chart1.marginBottom = 150
            chart2.marginBottom = 150
            chart1.marginLeft = 20
            chart2.marginLeft = 45
            chart1.marginRight = 0
            chart2.marginRight = 0

            chart1.add_dataset(
                "Percentage", [{"x": row[0]["html"], "y": int(row[-1]["html"][:-1]) / 100.0} for row in rows[1:6]]
            )
            chart2.add_dataset(
                "Percentage", [{"x": row[0]["html"], "y": int(row[-1]["html"][:-1]) / 100.0} for row in rows[6:12]]
            )
            return [chart1, chart2]
        elif isinstance(data_provider, ChildrenDeathsByMonth):
            chart = MultiBarChart(
                data_provider.chart_title, x_axis=Axis(x_label, dateFormat="%B"), y_axis=Axis(y_label, ".2%")
            )
            chart.rotateLabels = -45
            chart.marginBottom = 50
            chart.marginLeft = 20
            chart.add_dataset("Percentage", [{"x": row[0], "y": int(row[-1]["html"][:-1]) / 100.0} for row in rows])
        else:
            chart = PieChart(
                data_provider.chart_title,
                "",
                [{"label": _get_label_with_percentage(row), "value": int(row[-1]["html"][:-1])} for row in rows],
            )
            chart.showLabels = False
            chart.marginLeft = 20
            chart.marginRight = 0
            chart.marginBottom = 0
        return [chart]