Пример #1
0
def Single_errors_graph2(request):

    errname= request.GET.get('err_name')
    request.session['errnamesess'] = errname
    print request.session['errnamesess']
    ds = PivotDataPool(
        series=[
            {'options': {
                'source': datewisedetailknownerrcounts.objects.filter(err_name=errname),
                'categories': ['appsrv_name'],
                'legend_by': 'appsrv_name'},
                'terms': {'Total_ErrCounts': Sum('err_counts')
                          }}])

    pivcht = PivotChart(
        datasource=ds,
        series_options=[
            {'options': {
                'type': 'column',
                'stacking': True,
                'xAxis': 0,
                'yAxis': 0},
                'terms': ['Total_ErrCounts']}])

    # end_code
    return render_to_response('ErrorsSingleGraph.html',
                          {
                              'chart_list': pivcht,
                              'code': "newcode",
                              'title': "SingleErrorChart",
                              'doc': "This Chart Displays selected error name pivot group by App Server Name",
                              'sidebar_items': "SIdeBarItem"})
Пример #2
0
def breach_attempt_chart_view(request):
    breach_attempt_data = PivotDataPool(series=[{
        'options': {
            'source': Auth.objects.filter(username='******'),
            'categories': ['success'],
            'legend_by': 'username',
            'top_n_per_cat': 3,
        },
        'terms': {
            'avg_breach': Avg('success')
        }
    }])

    chart_obj = PivotChart(datasource=breach_attempt_data,
                           series_options=[{
                               'options': {
                                   'type': 'column',
                                   'stacking': True
                               },
                               'terms': ['avg_breach']
                           }],
                           chart_options={
                               'title': {
                                   'text': 'Breach Report'
                               },
                               'xAxis': {
                                   'title': {
                                       'text': 'x--------axis'
                                   }
                               }
                           })
    return render(request, 'chart_represent.html', {'chart_object': chart_obj})
Пример #3
0
def pivot_with_legend(request, title, code, doc, sidebar_items):
    """
    Pivot Chart with legend by field. This pivot chart plots total sale
    quantity of books in each city legended by the book genre name.
    """
    # start_code
    ds = PivotDataPool(
          series=[
           {'options': {
              'source': SalesHistory.objects.all(),
              'categories': 'bookstore__city__city',
              'legend_by': 'book__genre__name'},
            'terms': {
              'tot_sales': Sum('sale_qty')}}])

    pivcht = PivotChart(
              datasource=ds,
              series_options=[
                {'options': {
                   'type': 'column',
                   'stacking': True,
                   'xAxis': 0,
                   'yAxis': 0},
                 'terms': ['tot_sales']}])
    # end_code
    return render_to_response('chart_code.html',
                              {
                                'chart_list': pivcht,
                                'code': code,
                                'title': title,
                                'doc': doc,
                                'sidebar_items': sidebar_items})
Пример #4
0
def date_month_pivot(request):
    #start_code
    ds = PivotDataPool(series=[{
        'options': {
            'source': datewiseerrcounts.objects.all(),
            'categories': ['cust_name', 'month_name'],
            'legend_by': 'date_stamp'
        },
        'terms': {
            'Total_ErrCounts': Sum('err_counts')
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['Total_ErrCounts']
                        }])
    # end_code

    return render_to_response(
        'centurionapi/graphs/DateWiseErr.html', {
            'chart_list': pivcht,
            'code': "code",
            'title': "Error Counts by Each day of Months",
            'doc': "This chart represent errors count by each day of months",
            'sidebar_items': "sidebars"
        })
Пример #5
0
def detail_errs_cust_pivot(request):
    #start_code
    ds = PivotDataPool(series=[{
        'options': {
            'source': datewisedetailknownerrcounts.objects.all(),
            'categories': ['appsrv_name', 'cust_name'],
            'legend_by': 'err_name'
        },
        'terms': {
            'Total_ErrCounts': Sum('err_counts')
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['Total_ErrCounts']
                        }])
    # end_code

    return render_to_response(
        'centurionapi/graphs/DetailErrsRepo.html', {
            'chart_list': pivcht,
            'code': "code",
            'title': "Error Count Chart Based on Customer",
            'doc':
            "This chart shows error name and its counts against each customer.",
            'sidebar_items': "sidebar_items"
        })
Пример #6
0
def entry_pivot_chart_view(request):
    # Step 1: Create a PivotDataPool with the data we want to retrieve.
    entrypivotdata = PivotDataPool(series=[{
        'options': {
            'source': Entry.objects.all(),
            'categories': ['date'],
            'legend_by': 'category',
        },
        'terms': {
            'sum_amount': Sum('amount'),
        }
    }])
    # Step 2: Create the PivotChart object
    rainpivcht = PivotChart(datasource=entrypivotdata,
                            series_options=[{
                                'options': {
                                    'type': 'column',
                                    'stacking': True
                                },
                                'terms': ['sum_amount']
                            }],
                            chart_options={
                                'title': {
                                    'text': 'Ausgaben per Datum und Kategorie'
                                },
                                'xAxis': {
                                    'title': {
                                        'text': 'Month'
                                    }
                                }
                            })
    # Step 3: Send the PivotChart object to the template.
    return render(request, 'graph.html', {
        'rainpivchart': rainpivcht,
    })
Пример #7
0
def appsrv_month_pivot(request):
    #start_code
    ds = PivotDataPool(series=[{
        'options': {
            'source': datewiseerrcounts.objects.all(),
            'categories': ['cust_name', 'month_name'],
            'legend_by': 'appsrv_name'
        },
        'terms': {
            'Total_ErrCounts': Sum('err_counts')
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['Total_ErrCounts']
                        }])
    # end_code

    return render_to_response(
        'centurionapi/graphs/AppsrvPivotChart.html', {
            'chart_list': pivcht,
            'code': 'AppserverChart',
            'title': 'Application Server Wise Error Reports',
            'doc':
            "This Chart Displays selected error Counts by Application Server name ",
            'sidebar_items': "SIdeBarItem"
        })
Пример #8
0
class GoodPivotChartOptions(TestCase):
    series_input = \
      [{'options':
         {'source': SalesHistory.objects.all(),
          'categories': 'bookstore__city__state',
          'legend_by': 'book__genre__name',
          'top_n_per_cat': 2},
        'terms': {
          'avg_price': Avg('price'),
          'avg_price_all': {
            'func': Avg('price'),
            'legend_by': None}}}]
    ds = PivotDataPool(series_input)

    def test_all_terms(self):
        pcso_input = \
          [{'options': {
              'type': 'column'},
            'terms':[
              'avg_price',
              {'avg_price_all':{
                 'type': 'area'}}]}
           ]
        series_cleaned = \
          {'avg_price': {
              'type': 'column'},
           'avg_price_all': {
              'type': 'area'}}
        self.assertOptionDictsEqual(clean_pcso(pcso_input, self.ds),
                                    series_cleaned)
Пример #9
0
def simplepivot(request, title, code, doc, sidebar_items):
    """
    A simple pivot chart.

    Points to notice:

    - You can use the default django convention of double underscore (__) to
      *follow* to the fields in different models.
    """
    # start_code
    ds = PivotDataPool(
          series=[
           {'options': {
              'source': SalesHistory.objects.all(),
              'categories': 'bookstore__city__city'},
            'terms': {
              'tot_sales': Sum('sale_qty')}}])

    pivcht = PivotChart(
              datasource=ds,
              series_options=[
                {'options': {
                   'type': 'column'},
                 'terms': ['tot_sales']}])
    # end_code
    return render_to_response('chart_code.html',
                              {
                                'chart_list': pivcht,
                                'code': code,
                                'title': title,
                                'doc': doc,
                                'sidebar_items': sidebar_items})
Пример #10
0
def rainfall_pivot_chart_view(request):
    #Step 1: Create a PivotDataPool with the data we want to retrieve.
    rainpivotdata = \
        PivotDataPool(
           series =
            [{'options': {
               'source': Sales_by_store_by_category.objects.all(),
               'categories': ['store', 'manager'],
               'legend_by': 'category'},
              'terms': {
                'sum_total_sales': Sum('total_sales'),
               #'legend_by': ['category'],
               # 'top_n_per_cat': 3
              }}])

    #Step 2: Create the PivotChart object
    rainpivcht = \
        PivotChart(
            datasource = rainpivotdata,
            series_options =
              [{'options':{
                  'type': 'column',
                  'stacking': True},
                'terms':[
                  'sum_total_sales']}],
            chart_options =
              {'title': {
                   'text': 'Rain by Month in top 3 cities'},
               'xAxis': {
                    'title': {
                       'text': 'Month'}}})

    #Step 3: Send the PivotChart object to the template.
    return render(request, 'app_pagila/Sales_store_category.html',
                  {'rainpivchart': rainpivcht})
Пример #11
0
def Single_errors_graph2_ViewByMonth(request):
    if 'errnamesess' in request.session:
        errname = request.session['errnamesess']
    else:
        print "SOmething wrong in session variable"
    ds = PivotDataPool(
        series=[
            {'options': {
                'source': datewisedetailknownerrcounts.objects.filter(err_name=errname),
                'categories': ['month_name'],
                'legend_by': 'month_name'},
                'terms': {'Total_ErrCounts': Sum('err_counts')
                          }}])

    pivcht = PivotChart(
        datasource=ds,
        series_options=[
            {'options': {
                'type': 'column',
                'stacking': True,
                'xAxis': 0,
                'yAxis': 0},
                'terms': ['Total_ErrCounts']}])

    # end_code
    return render_to_response('ErrorsSingleGraph.html',
                          {
                              'chart_list': pivcht,
                              'code': "newcode",
                              'title': "Error View by Monthwise:-",
                              'doc': "This Chart Displays selected error name pivot group by Month Name",
                              'sidebar_items': "SIdeBarItem"})
Пример #12
0
def cust_month_pivot(request):
    #start_code
    ds = PivotDataPool(series=[{
        'options': {
            'source': datewiseerrcounts.objects.all(),
            'categories': ['appsrv_name', 'month_name'],
            'legend_by': 'cust_name'
        },
        'terms': {
            'Total_ErrCounts': Sum('err_counts')
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['Total_ErrCounts']
                        }])
    # end_code

    return render_to_response(
        'centurionapi/graphs/CustPivotChart.html', {
            'chart_list': pivcht,
            'code': "newcode",
            'title': "Sum Errors Counts by Customer Name",
            'doc': 'Total Errors Counts by Customer Name',
            'sidebar_items': "sidebaritems"
        })
Пример #13
0
def dashboard(request):
    #Step 1: Create a DataPool with the data we want to retrieve.
    need_data = PivotDataPool(series=[{
        'options': {
            'source': Need.objects.all(),
            'categories': ['temporary_tent'],
            'legend_by': 'unit',
            'top_n_per_cat': 5,
        },
        'terms': {
            'avg_rain': Sum('temporary_tent'),
        }
    }])

    # Step 2: Create the PivotChart object
    cht = PivotChart(datasource=need_data,
                     series_options=[{
                         'options': {
                             'type': 'column',
                             'stacking': True
                         },
                         'terms': ['avg_rain']
                     }],
                     chart_options={
                         'title': {
                             'text': 'Rain by Month in top 3 cities'
                         },
                         'xAxis': {
                             'title': {
                                 'text': 'sum of need'
                             }
                         }
                     })

    return render(request, 'webgis/dashboard.html', {'content': cht})
Пример #14
0
def expensePivotChart(request):
  expensepivotdata = \
    PivotDataPool( series = 
      [ {'options': {
        'source': Expense.objects.all()
        'categories': ['store']},
      'terms': {
        'total': Sum('price'),
        'legend_by': ['store'],
        'top_n_per_cat': 1000000}}
      ])

  expensepivcht = \
    PivotChart(
      datasource = expensepivotdata,
      series_options =
        [{'options': {
          'type': 'column',
          'stacking': False},
        'terms': [
          'sum_price']}],
        chart_options = 
        { 'title': {
          'text': 'Cost by Store'},
          'xAxis': {
            'title': {
              'text': '$'}}})

  return render_to_response({'expensepivchart': expensepivcht})
Пример #15
0
def get_line_chart(pts, symbol, parameter):
    #sorting hack
    for pt in pts:
        if pt.percent_correct == 100.0:
            pt.percent_correct = 99.9

    ds = PivotDataPool(series=[{
        'options': {
            'source': pts.order_by('-' + parameter).all(),
            'categories': parameter
        },
        'terms': {
            'tot_items': Count(parameter)
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column'
                            },
                            'terms': ['tot_items']
                        }],
                        chart_options={
                            'title': {
                                'text': 'Distribution of ' + parameter + ' %s'
                            },
                            'xAxis': {
                                'title': {
                                    'text': 'Percent'
                                }
                            }
                        })
    return pivcht
Пример #16
0
def pivot(request):

    ds = PivotDataPool(series=[{
        'options': {
            'source': SalesHistory.objects.all(),
            'categories': 'bookstore__city__city',
        },
        'terms': {
            'Max Books/Sale': Max('sale_qty'),
            'Total Books Sold': Sum('sale_qty'),
            'Min Books/Sale': Min('sale_qty'),
            'Total Sales $': Sum('price'),
        },
    }])
    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'bar'
                            },
                            'terms': [
                                'Min Books/Sale', 'Max Books/Sale',
                                'Total Books Sold', 'Total Sales $'
                            ],
                        }],
                        chart_options={
                            'title': {
                                'text': 'Sales Data'
                            },
                            'subtitle': {
                                'text': 'All Points',
                            },
                            'legend': {
                                'layout': 'vertical',
                                'align': 'right',
                                'verticalAlign': 'center',
                                'x': -10,
                                'y': 80,
                                'floating': True,
                                'borderWidth': 1,
                                "backgroundColor": '#EEEEEE',
                                'shadow': True,
                                'reversed': True
                            },
                            'plotOptions': {
                                'bar': {
                                    'dataLabels': {
                                        'enabled': True
                                    },
                                    'pointPadding': 1,
                                    'borderWidth': 10,
                                    'borderRadius': 11
                                }
                            },
                        })

    return render_to_response('pivot.html', {'pivot': pivcht})
Пример #17
0
def get_province_trend_lines():
    """
    Get category datapool data fot datachartit
    Arguments:
        In: user
        Out: school numbers object
    """
    data = ProjectSingle.objects.all()

    ds = PivotDataPool(series=[
        {
            'options': {
                'source': data,
                'categories': ['school__id'],
                'legend_by': [
                    'project_grade__grade',
                ]
            },
            'terms': {
                'number': Count('project_grade'),
            }
        },
    ],
                       sortf_mapf_mts=(None, map_school_name, True))
    cht = PivotChart(datasource=ds,
                     series_options=[
                         {
                             'options': {
                                 'type': 'column',
                                 'stacking': True
                             },
                             'terms': ['number']
                         },
                     ],
                     chart_options={
                         'title': {
                             'text': '学校-评级数据统计'
                         },
                         'xAxis': {
                             'title': {
                                 'text': '参赛学校'
                             },
                             'labels': {
                                 'step': 1,
                                 'rotation': 45,
                                 'align': 'bottom'
                             },
                         },
                         'yAxis': {
                             'title': {
                                 'text': '评级数量'
                             },
                             'allowDecimals': False
                         },
                     })
    return cht
Пример #18
0
def top_ten_products(request):
	#d =  json.loads(request.body)
	#if d['storeid'] is None:
	#	storeid = 1;
	#else:
	print "here"
	if 'store_selected' in request.GET and request.GET['store_selected']:
		store_selected = request.GET['store_selected']
		print store_selected;
	else:
		store_selected = "All"

	if (store_selected=="All"):
		transaction_list= Transaction.objects.all()
	else:
		transaction_list= Transaction.objects.filter(store_id=store_selected)

	store_list =  Store.objects.all()
	productrevenue = \
        PivotDataPool(
          series=
            [{'options': {
               'source': transaction_list,
               'categories' : ['product_id']},
              'terms': {
                'avg_revenue': Avg('selling_price')}}],
                #'top_n' : 10}}]
          top_n = 10,
          top_n_term = 'avg_revenue')
	
	transaction_stats = \
        PivotChart(
            datasource = productrevenue,
            series_options =
              [{'options':{
                  'type': 'column',
                  'stacking': True},
                'terms':[
                    'avg_revenue']
                  }],
            chart_options =
              {'title': {
                   'text': 'Revenue by Product'},
               'xAxis': {
                    'title': {
                       'text': 'Product ID'}}})


					   
	return render(request,'top_tenProducts.html',
                    {
                        'transaction_stats': transaction_stats,
                        'store_list' : store_list

                    }
                )	
Пример #19
0
def statistic_python_version(request):
    """
    Statistics
    """
    from chartit import DataPool, Chart, PivotDataPool, PivotChart
    from django.db.models import F, FloatField, Sum
    from django.db.models import Count
    import datetime

    sites = Site.objects.filter(enable=True)

    ds = PivotDataPool(series=[{
        'options': {
            'source': sites,
            'categories': 'python_version'
        },
        'terms': {
            'python': Count('pk')
        }
    }])

    python_version_chart = PivotChart(
        datasource=ds,
        series_options=[{
            'options': {
                'type': 'column'
            },
            'terms': ['python']
        }],
        chart_options={
            'title': {
                'text': 'Python : Python Version'
            },
            'xAxis': {
                'title': {
                    'text': 'Python2Sites : %s' % datetime.datetime.now()
                }
            },
            'yAxis': {
                'title': {
                    'text': 'Value'
                }
            },
            'legend': {
                'enabled': True
            },
            'credits': {
                'enabled': False
            }
        },
    )

    return render(request, "statistic_python_version.html", locals())
Пример #20
0
def get_datapool_year(year, keys):
    logger.debug(keys)
    series = []
    objects = Stat.objects.filter(interval="m", year=year)
    for key in keys.keys():
        series.append({'options': {
            'source': objects.filter(key=key),
            'categories': 'month'},
            'terms': {keys[key]: Avg('value')}
            })
    return PivotDataPool(
            series=series,
            sortf_mapf_mts=(month_sort, month_name, True))
Пример #21
0
 def setUp(self):
     series_input = \
       [{'options':
          {'source': SalesHistory.objects.all(),
           'categories': 'bookstore__city__state',
           'legend_by': 'book__genre__name',
           'top_n_per_cat': 2},
         'terms': {
           'avg_price': Avg('price'),
           'avg_price_all': {
             'func': Avg('price'),
             'legend_by': None}}}]
     self.ds = PivotDataPool(series_input)
Пример #22
0
def get_grade_lines(user):
    """
    Get category datapool data fot datachartit
    Arguments:
        In: user
        Out: grade_pies object
    """
    data = ProjectSingle.objects.filter(adminuser=user)

    ds = PivotDataPool(series=[
        {
            'options': {
                'source': data,
                'categories': ['year'],
                'legend_by': [
                    'project_grade__grade',
                ]
            },
            'terms': {
                'number': Count('project_grade'),
            }
        },
    ], )
    cht = PivotChart(datasource=ds,
                     series_options=[
                         {
                             'options': {
                                 'type': 'column',
                                 'stacking': False
                             },
                             'terms': ['number']
                         },
                     ],
                     chart_options={
                         'title': {
                             'text': u'历史项目级别数据统计'
                         },
                         'xAxis': {
                             'title': {
                                 'text': u'年份'
                             },
                         },
                         'yAxis': {
                             'title': {
                                 'text': u'获奖评级'
                             },
                             'allowDecimals': False
                         },
                     })
    return cht
Пример #23
0
def pivot_mapf(_, title, code, doc, sidebar_items):
    """
    Pivot Chart with ``sortf_mapf_mts`` defined to map custom names for x-axis
    and to customize the x-axis sorting. In this chart we would like to plot
    region:city instead of state:city. However region is not available in the
    database. So custom mapf function comes to the rescue.

    Points to note:

    - Note that ``mapf`` receives a tuple and returns a tuple. This is true
      even when ``categories`` is a single element.
    - ``mts=True`` causes the elements to be mapped and then sorted. So all the
      N region cities are on the left and the S region cities are on the right
      hand side of the plot.
    """

    # start_code
    def region_state(x):
        region = {'CA': 'S', 'MA': 'N', 'TX': 'S', 'NY': 'N'}
        return (region[x[0]], x[1])

    ds = PivotDataPool(series=[{
        'options': {
            'source': SalesHistory.objects.all(),
            'categories': ['bookstore__city__state', 'bookstore__city__city'],
            'legend_by': 'book__genre__name'
        },
        'terms': {
            'tot_sales': Sum('sale_qty')
        }
    }],
                       sortf_mapf_mts=(None, region_state, True))

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True
                            },
                            'terms': ['tot_sales']
                        }])
    # end_code
    return render_to_response(
        'chart_code.html', {
            'chart_list': pivcht,
            'code': code,
            'title': title,
            'doc': doc,
            'sidebar_items': sidebar_items
        })
Пример #24
0
def pivot_datetime_related(_, title, code, doc, sidebar_items):
    """
    Pivot chart with DateTimeField from related model
    -------------------------------------------------
    This chart shows total sales based on when book was published.
    The data is limited to books published during
    June 1st-20th, 2010 for brevity.

    Note that we filter down the possible values using date range
    queries instead of slicing. Slicing the query results in an error.
    Slicing in Chart() charts however is fine!
    """
    # start_code
    ds = PivotDataPool(series=[{
        'options': {
            'source':
            SalesHistory.objects.filter(
                book__published_at__year=2010,
                book__published_at__month=6,
            ),
            'categories':
            'book__published_at',
            'legend_by':
            'book__title',
        },
        'terms': {
            'tot_sales': Sum('sale_qty'),
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0,
                            },
                            'terms': ['tot_sales']
                        }])
    # end_code
    return render_to_response(
        'chart_code.html', {
            'chart_list': pivcht,
            'code': code,
            'title': title,
            'doc': doc,
            'sidebar_items': sidebar_items
        })
Пример #25
0
def monthly_stats(request):
	#d =  json.loads(request.body)
	#if d['storeid'] is None:
	#	storeid = 1;
	#else:
	print "here"
	if 'store_selected' in request.GET and request.GET['store_selected']:
		store_selected = request.GET['store_selected']
		print store_selected;
	else:
		store_selected = "All"

	if (store_selected=="All"):
		transaction_list= Transaction.objects.all()
	else:
		transaction_list= Transaction.objects.filter(store_id=store_selected)

	store_list =  Store.objects.all()
#	transaction_list = Transaction.objects.filter(store_id=1)
#	transaction_list = Transaction.objects.all()
	dateRevenue = \
		PivotDataPool(
          series=
            [{'options': {
               'source': transaction_list,
               'categories' : ['transaction_date']},
              'terms': {
                'avg_revenue': Avg('selling_price')}}])
	
	transaction_stats = PivotChart(
        datasource = dateRevenue,
        series_options =
          [{'options':{
              'type': 'line'},
            'terms':[
              'avg_revenue']
              }],
        chart_options =
          {'title': {
               'text': 'Spend over Last 30 days'}})
					   
	return render(request,'monthly_stats.html',
                    {
                        'transaction_stats': transaction_stats,
                        'store_list' : store_list

                    }
                )
Пример #26
0
def pivot_top_n(_, title, code, doc, sidebar_items):
    """
    Pivot Chart limited to top few items. In this chart the sales quanity is
    plotted w.r.t state/city but the chart is limited to only top 5 cities
    witht the highest sales.

    Points to note:

    - These charts are helpful in cases where there is a long *tail* and we
      only are interested in the top few items.
    - ``top_n_term`` is always required. If there are multiple items, it will
      elimnate confusion regarding what the term the chart needs to be
      limited by.
    """
    # start_code
    ds = PivotDataPool(series=[{
        'options': {
            'source': SalesHistory.objects.all(),
            'categories': ['bookstore__city__state', 'bookstore__city__city'],
            'legend_by': 'book__genre__name'
        },
        'terms': {
            'tot_sales': Sum('sale_qty')
        }
    }],
                       top_n=5,
                       top_n_term='tot_sales')

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['tot_sales']
                        }])
    # end_code
    return render_to_response(
        'chart_code.html', {
            'chart_list': pivcht,
            'code': code,
            'title': title,
            'doc': doc,
            'sidebar_items': sidebar_items
        })
Пример #27
0
def index(request):

    #Step 1: Create a DataPool with the data we want to retrieve.
    workoutdata = \
        PivotDataPool(
           series=
            [{  'options':
                {
                    'source': Workout.objects.all(),
                    'categories': ['type__name'],
                },
                'terms':
                {
                    'total_distance' : Sum('distance')
                }
            }
            ])

    #Step 2: Create the Chart object
    cht = PivotChart(datasource=workoutdata,
                     series_options=[{
                         'options': {
                             'type': 'column',
                             'stacking': False
                         },
                         'terms': ['total_distance']
                     }],
                     chart_options={
                         'title': {
                             'text': 'Hoeveel afstand per type'
                         },
                         'xAxis': {
                             'title': {
                                 'text': 'Type'
                             }
                         }
                     })

    latest_workout_list = Workout.objects.all().order_by('-date')[:30]
    wmanager = WorkoutsManager()
    months = wmanager.get_total_distances_aggregated_by_month()
    context = {
        'latest_workout_list': latest_workout_list,
        'months': months,
        'workoutchart': cht
    }
    return render(request, 'workouts/index.html', context)
Пример #28
0
def get_directional_change_chart(bs, denom, symbol, start_time):

    if settings.MAKE_TRADES:
        pcs = PerformanceComp.objects.filter(
            symbol=symbol,
            created_on__gte=start_time,
            price_timerange_start__isnull=False).order_by('id')
    else:
        pcs = PerformanceComp.objects.filter(
            symbol=symbol,
            created_on__gte=start_time,
            price_timerange_start__isnull=False).order_by('id')
    pct_dir_same = int(100.0 * sum([pc.directionally_same_int
                                    for pc in pcs]) / pcs.count())
    ds = PivotDataPool(series=[{
        'options': {
            'source': pcs,
            'categories': 'created_on_str'
        },
        'terms': {
            'total_value': Sum('directionally_same_int')
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'line',
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['total_value']
                        }],
                        chart_options={
                            'title': {
                                'text':
                                'Algorithm vs Reality: Directionally Same ' +
                                str(pct_dir_same) + '% of time '
                            },
                            'xAxis': {
                                'title': {
                                    'text': 'Time'
                                }
                            },
                            'terms': ['total_value']
                        })
    return pivcht
Пример #29
0
def get_trade_profitability_chart(bs, denom, symbol, start_time):

    if settings.MAKE_TRADES:
        trades = Trade.objects.exclude(created_on_str="").filter(
            symbol=symbol, created_on__gte=start_time).filter(
                status__in=['fill', 'open', 'error']).order_by('id')
    else:
        trades = Trade.objects.exclude(created_on_str="").filter(
            symbol=symbol, created_on__gte=start_time).order_by('id')

    ds = PivotDataPool(series=[{
        'options': {
            'source': trades,
            'categories': 'created_on_str',
            'legend_by': 'status'
        },
        'terms': {
            'total_value': Sum('btc_net_profit')
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['total_value']
                        }],
                        chart_options={
                            'title': {
                                'text': 'Trade Profitability over time (BTC) '
                            },
                            'xAxis': {
                                'title': {
                                    'text': 'Time'
                                }
                            },
                            'terms': ['total_value']
                        })

    return pivcht
Пример #30
0
def pivot_multi_category(_, title, code, doc, sidebar_items):
    """
    Pivot Chart with multiple categories. In this chart the total sale
    quantity is plotted with respect to state and city.

    Points to note:

    - You can add any number of categories and legend_by entries in a list.
    - **Order matters**! Retrieving state and then city may yield different
      results compared to retrieving city and state depending on what you
      are trying to plot.
    """
    # start_code
    ds = PivotDataPool(series=[{
        'options': {
            'source': SalesHistory.objects.all(),
            'categories': ['bookstore__city__state', 'bookstore__city__city'],
            'legend_by': 'book__genre__name'
        },
        'terms': {
            'tot_sales': Sum('sale_qty')
        }
    }])

    pivcht = PivotChart(datasource=ds,
                        series_options=[{
                            'options': {
                                'type': 'column',
                                'stacking': True,
                                'xAxis': 0,
                                'yAxis': 0
                            },
                            'terms': ['tot_sales']
                        }])
    # end_code
    return render_to_response(
        'chart_code.html', {
            'chart_list': pivcht,
            'code': code,
            'title': title,
            'doc': doc,
            'sidebar_items': sidebar_items
        })