1. 视图函数
def totalchart(request):
template = loader.get_template('deviceman/pyecharts.html')
monthpc=monthpcbar(request)
st)
context = dict(
monthechart=monthpc.render_embed(),
),
host=REMOTE_HOST,
script_list=b.get_js_dependencies()
)
return HttpResponse(template.render(context, request))
def monthpcbar(request):
site_id = request.session.get('current_site')
x = []
y = []
for i in range(datetime.now().year - 4, datetime.now().year + 1):
#print(i)
select_data = {"receive_month": 'extract(month from receive_date )'}
res = pc_list.objects.filter(receive_date__year=i, site_id=site_id, hosttype_id__in=[1,2,3]).extra(select=select_data).values(
'receive_month').annotate(count=Count('id')).order_by('receive_month')
#print(res)
for re in res:
)
x.append(str(i)+'-'+str(re['receive_month']))
y.append(re['count'])
#x=[i[0] for i in res]
#print(x)
#x = ['sz','bj','gz']
#
#y=[i[1] for i in res]
#print(y)
#y = [10,20,30]
# #_data.append()
bar=Bar("computers each month",width='100%',height=500)
#
bar.add("数量",x, y, type="effectScatter", border_color="#ffffff", symbol_size=2,
#
is_label_show=True, label_text_color="#0000FF", label_pos="inside", symbol_color="yellow",
#
bar_normal_color="#0000ff", bar_emphasis_color="#0000ff",xaxis_rotate=40)
#
return bar
urls.py
path('totalchart', totalechart.totalchart),
2. 模板html
{% for jsfile_name in script_list %}
<script src="{{ host }}/{{ jsfile_name }}.js"></script>
{% endfor %}
<p>
{{ monthechart|safe }}
</p>
3. 在本人另外一篇博文中将会演示如何统计过去5年中每年采购电脑数量,并且用图表显示,其中的关键生成XXXX年及更早的数量。如下图