<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在開發過程中我們需要將我們的資料通過圖示的形式展現出來,接下來我為大家介紹一個有趣的框架:Echarts。這是一個使用JavaScript實現的開源視覺化庫,提供了常規的折線圖、柱狀圖、散點圖、餅圖、K線圖,用於統計的盒形圖,用於地理資料視覺化的地圖、熱力圖、線圖,用於關係資料視覺化的關係圖、treemap、旭日圖,多維資料視覺化的平行座標,還有用於 BI 的漏斗圖,儀表盤,並且支援圖與圖之間的混搭(官網照抄,有興趣的小夥伴可以去官網發現更多echarts的運用)。下面直接上程式碼:
1. models模組
from django.db import models # 一個簡單的統計地區 class EventInfo(models.Model): event_location = models.CharField(max_length=30) class Meta: db_table = 'app_event_info'
2. urls
from django.conf.urls import url from app1 import views urlpatterns = [ url(r'^home/', views.home), # 展示資料 url(r'^test/', views.test), # api,提供json ]
3. views
import json from django.db.models import Count from django.http import JsonResponse from django.shortcuts import render from app1.models import EventInfo def home(request): return render(request, 'echarts_pie.html') # 資料展示 def test(request): info = EventInfo.objects.values_list('event_location').annotate(Count('id')) # 這裡使用了Model.object.values_list().annotate()的方法,計數'event_location',生成id_count,以list的形式展示出來,大家可以去網上研究一下annotate函數 # >>> print info # [('上海', 6), ('北京', 5), ('天津', 4), ('太原', 4), ('南京', 3), ('蘇州', 4)] jsondata = { "name": [i[0] for i in info], "count": [i[1] for i in info] } cities = [] for n, c in zip(jsondata['name'], jsondata['count']): b = {} b['name'] = n b['count'] = c cities.append(b) test_dic = {} test_dic['data'] = cities # 將資料轉換成json格式,方便ajax呼叫 return JsonResponse(test_dic, safe=False)
1. HTML
// 倒包,這是直接呼叫網上的包,不需要額外在靜態檔案中下載 <script src="http://echarts.baidu.com/dist/echarts.min.js"></script> <script type="text/javascript" charset="utf8" src="http://code.jquery.com/jquery-1.10.2.min.js"></script> // 建立一個div,id為main,方便JavaScript使用 <div style="border:2px solid #a6e1ec;width:49%;height:450px;float:left" id="main"></div>
2. JavaScript
<script type="text/javascript"> // echartss的標準格式,屬性可以去官網檢視 var myChart = echarts.init(document.getElementById('main')); myChart.setOption({ //color: [ '#00FFFF', '#00FF00', '#FFFF00', '#FF8C00', '#FF0000', '#FE8463'], // 自定義echarts的顏色 title: { // 標題 text: 'cityinfo', subtext: 'just-test', x: 'center' }, tooltip: { // 提示框元件 trigger: 'item', formatter: '{a}</br>{b}: {c}({d}%)' }, legend: { // 圖例元件 orient: 'vertical', x: 'left', data: [] }, toolbox: { // 工具列 show: true, feature: { mark: {show: true}, dataView: {show: true, readOnly: false}, magicType: { show: true, type: ['pie', 'funnel'], option: { funnel: { x: '25%', width: '50%', funnelAlign: 'center', max: 1548 } } }, restore: {show: true}, saveAsImage: {show: true} }, }, calculable: true, series: [{ // 設定圖形種類,常用的有pie(餅狀圖),bar(柱狀體),line(折線圖) name: 'city', type: 'pie', radius: '55%', center: ['50%', '60%'], itemStyle: { normal: { label: {show: true}, labelLine: { show: true }, color: function (value) { // 隨機生成顏色(官網的預設顏色比較low,生成的也不怎麼樣) return "#" + ("00000" + ((Math.random() * 16777215 + 0.5) >> 0).toString(16)).slice(-6); } }, emphasis: { label: { show: true, position: 'center', textStyle: { fontSize: '20', fontWeight: 'bold' } } } }, data: [] }] }); myChart.showLoading(); var names = []; var brower = []; $.ajax({ // ajax的方式動態獲取後端程式碼 type: 'get', url: 'http://127.0.0.1:8000/test/test/', dataType: 'json', success: function (result) { $.each(result.data, function (index, item) { names.push(item.name); brower.push({ value: item.count, name: item.name }); }); myChart.hideLoading(); myChart.setOption({ legend: { data: names }, series: [{ data: brower }] }); }, error: function (errormsg) { alert('errormsg'); myChart.hideLoading(); } }); </script>
大家在開發過程中如果需要將資料展示出來可以嘗試著使用echarts,結合實際情況酌情使用餅狀圖、柱狀體、折線圖及其他,在使用的過程中注意官網中data的格式。
到此這篇關於echarts動態獲取Django資料的實現範例的文章就介紹到這了,更多相關echarts動態獲取Django資料內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45