婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Django動態展示Pyecharts圖表數據的幾種方法

Django動態展示Pyecharts圖表數據的幾種方法

熱門標簽:宿遷星美防封電銷卡 西藏房產智能外呼系統要多少錢 外呼并發線路 地圖標注審核表 ai電話機器人哪里好 長沙高頻外呼系統原理是什么 ai電銷機器人源碼 湛江智能外呼系統廠家 百度地圖標注沒有了

本文將介紹如何在 web 框架 Django 中使用可視化工具 Pyecharts, 看完本教程你將掌握幾種動態展示可視化數據的方法!

Django 模板渲染

1. 新建一個 Django 項目

命令行中輸入以下命令

django-admin startproject pyecharts_django_demo

創建一個應用程序

python manage.py startapp demo

創建完之后,在 Pycharm 中打開該項目,當然你也可以直接在 Pycharm 中創建

同時在pyecharts_django_demo/settings.py中注冊應用程序INSTALLED_APPS中添加應用程序demo

pyecharts_django_demo/urls.py中新增demo.urls

2. 新建項目 urls 文件

編輯demo/urls.py文件,沒有就新建一個

from django.conf.urls import url
from . import views
 
urlpatterns = [
    url(r'^pie/$', views.ChartView.as_view(), name='demo'),
    url(r'^index/$', views.IndexView.as_view(), name='demo'),
]

3. 編寫 Django 和 pyecharts 代碼渲染圖表

由于 json 數據類型的問題,無法將 pyecharts 中的 JSCode 類型的數據轉換成 json 數據格式返回到前端頁面中使用。

因此在使用前后端分離的情況下盡量避免使用 JSCode 進行畫圖。

將下列代碼保存到demo/views.py

from django.shortcuts import render
 
# Create your views here.
 
import json
from random import randrange
 
from django.http import HttpResponse
from rest_framework.views import APIView
 
from pyecharts.charts import Bar, Pie
from pyecharts.faker import Faker
from pyecharts import options as opts
 
 
# Create your views here.
def response_as_json(data):
    json_str = json.dumps(data)
    response = HttpResponse(
        json_str,
        content_type="application/json",
    )
    response["Access-Control-Allow-Origin"] = "*"
    return response
 
 
def json_response(data, code=200):
    data = {
        "code": code,
        "msg": "success",
        "data": data,
    }
    return response_as_json(data)
 
 
def json_error(error_string="error", code=500, **kwargs):
    data = {
        "code": code,
        "msg": error_string,
        "data": {}
    }
    data.update(kwargs)
    return response_as_json(data)
 
 
JsonResponse = json_response
JsonError = json_error
 
 
def pie_base() -> Pie:
    c = (
        Pie()
            .add("", [list(z) for z in zip(Faker.choose(), Faker.values())])
            .set_colors(["blue", "green", "yellow", "red", "pink", "orange", "purple"])
            .set_global_opts(title_opts=opts.TitleOpts(title="Pie-示例"))
            .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
            .dump_options_with_quotes()
    )
    return c
 
class ChartView(APIView):
    def get(self, request, *args, **kwargs):
        return JsonResponse(json.loads(pie_base()))
 
class IndexView(APIView):
    def get(self, request, *args, **kwargs):
        return HttpResponse(content=open("./templates/index.html").read())

在根目錄下新建一個templates的文件夾,并在該文件夾下新建一個index.html文件

index.html

代碼如下:

!DOCTYPE html>
html>
head>
    meta charset="UTF-8">
    title>Awesome-pyecharts/title>
    script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">/script>
    script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js">/script>
 
/head>
body>
div id="pie" style="width:1000px; height:600px;">/div>
script>
    var chart = echarts.init(document.getElementById('pie'), 'white', {renderer: 'canvas'});
 
    $(
        function () {
            fetchData(chart);
        }
    );
 
    function fetchData() {
        $.ajax({
            type: "GET",
            url: "http://127.0.0.1:8000/demo/pie",
            dataType: 'json',
            success: function (result) {
                chart.setOption(result.data);
            }
        });
    }
/script>
/body>
/html>

運行之后,在瀏覽器中打開,效果如下:

定時全量更新圖表

前面講的是一個靜態數據的展示的方法,用 Pyecharts 和 Django 結合最主要是實現一種動態更新數據,增量更新數據等功能!

定時全量更新主要是前端主動向后端進行數據刷新,定時刷新的核心在于 HTML 的 setInterval 方法。

那么index.html代碼就是下面這樣的:

!DOCTYPE html>
html>
head>
    meta charset="UTF-8">
    title>Awesome-pyecharts/title>
    script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">/script>
    script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js">/script>
 
/head>
body>
    div id="bar" style="width:1600px; height:800px;">/div>
    script>
        var chart = echarts.init(document.getElementById('bar'), 'white', {renderer: 'canvas'});
 
        $(
            function () {
                fetchData(chart);
                setInterval(fetchData, 100);
            }
        );
 
        function fetchData() {
            $.ajax({
                type: "GET",
                url: "http://127.0.0.1:8000/demo/bar",
                dataType: 'json',
                success: function (result) {
                    chart.setOption(result.data);
                }
            });
        }
    /script>
/body>
/html>

同時在demo/views.py中,增加并修改代碼:

views.py

demo/urls.py中,增加如下代碼:

運行之后,效果如下:

貼一張以前做的圖(因為我懶),效果和上面一樣

定時增量更新圖表

原理一樣,先修改 index.html ,代碼如下:

!DOCTYPE html>
html>
head>
    meta charset="UTF-8">
    title>Awesome-pyecharts/title>
    script src="https://cdn.bootcss.com/jquery/3.0.0/jquery.min.js">/script>
    script type="text/javascript" src="https://assets.pyecharts.org/assets/echarts.min.js">/script>
 
/head>
body>
    div id="bar" style="width:1600px; height:800px;">/div>
    script>
        var chart = echarts.init(document.getElementById('bar'), 'white', {renderer: 'canvas'});
        var old_data = [];
        $(
            function () {
                fetchData(chart);
                setInterval(fetchData, 2000);
            }
        );
 
        function fetchData() {
            $.ajax({
                type: "GET",
                url: "http://127.0.0.1:8000/demo/line",
                dataType: "json",
                success: function (result) {
                    var options = result.data;
                    chart.setOption(options);
                    old_data = chart.getOption().series[0].data;
                }
            });
        }
 
        function getDynamicData() {
            $.ajax({
                type: "GET",
                url: "http://127.0.0.1:8000/demo/lineUpdate",
                dataType: 'json',
                success: function (result) {
                    var options = result.data;
                    old_data.push([options.name, options.value]);
                    chart.setOption({
                        series: [{
                            data: old_data
                        }]
                    });
                }
            });
        }
 
    /script>
/body>
/html>

細心的你應該可以發現,里面新增了兩個請求地址demo/line,demo/lineUpdate

so,在urlpatterns中增加以下路徑的匹配

url(r'^line/$', views.ChartView.as_view(), name='demo'),
url(r'^lineUpdate/$', views.ChartView.as_view(), name='demo'),

最后在views.py中增加以下代碼:

def line_base() -> Line:
    line = (
        Line()
            .add_xaxis(["{}".format(i) for i in range(10)])
            .add_yaxis(
            series_name="",
            y_axis=[randrange(50, 80) for _ in range(10)],
            is_smooth=True,
            label_opts=opts.LabelOpts(is_show=False),
        )
            .set_global_opts(
            title_opts=opts.TitleOpts(title="動態數據"),
            xaxis_opts=opts.AxisOpts(type_="value"),
            yaxis_opts=opts.AxisOpts(type_="value"),
        )
            .dump_options_with_quotes()
    )
    return line
 
class ChartView(APIView):
    def get(self, request, *args, **kwargs):
        return JsonResponse(json.loads(line_base())
cnt = 9
 
class ChartUpdateView(APIView):
    def get(self, request, *args, **kwargs):
        global cnt
        cnt = cnt + 1
        return JsonResponse({"name": cnt, "value": randrange(0, 100)})

運行并打開,效果如下:

到此這篇關于Django動態展示Pyecharts圖表數據的幾種方法的文章就介紹到這了,更多相關Django動態展示Pyecharts圖表內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 詳解解Django 多對多表關系的三種創建方式
  • 教你pycharm運行Django第一個項目
  • Django實現靜態文件緩存到云服務的操作方法
  • Django將項目移動到新環境的操作步驟
  • Django零基礎入門之路由path和re_path詳解
  • Django零基礎入門之模板變量詳解

標簽:南平 普洱 漯河 寧夏 林芝 大同 盤錦 海南

巨人網絡通訊聲明:本文標題《Django動態展示Pyecharts圖表數據的幾種方法》,本文關鍵詞  Django,動態,展示,Pyecharts,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django動態展示Pyecharts圖表數據的幾種方法》相關的同類信息!
  • 本頁收集關于Django動態展示Pyecharts圖表數據的幾種方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美日韩在线三级| 欧美精品777| 亚洲另类中文字| 欧美日韩免费在线视频| 五月激情综合婷婷| 中文字幕不卡在线| 日韩区在线观看| gogo大胆日本视频一区| 亚洲gay无套男同| 国产亚洲精品aa| 极品少妇一区二区| 国产精品进线69影院| 欧美电影一区二区| 日本精品一级二级| 99精品欧美一区二区三区综合在线| 免费美女久久99| 91精品午夜视频| 欧美三级电影网| 久久久精品国产免费观看同学| 日韩一区二区精品葵司在线| 欧美日韩国产欧美日美国产精品| 色素色在线综合| 色噜噜狠狠成人网p站| 一本一本大道香蕉久在线精品| 国产激情一区二区三区| 成人性生交大片免费看视频在线| 国产成人精品免费网站| 成人激情小说网站| 风流少妇一区二区| 亚洲在线免费播放| 欧美午夜在线一二页| 欧美午夜精品电影| 欧美精品在线一区二区三区| 欧美日韩一区二区三区在线| 欧美电影在线免费观看| 精品裸体舞一区二区三区| 欧美精品一区视频| 国产精品久久久久天堂| √…a在线天堂一区| 青草av.久久免费一区| 久久久精品黄色| 中文字幕巨乱亚洲| 国产清纯在线一区二区www| 国产精品久久久久久妇女6080| 国产精品久久久久影视| 亚洲三级免费电影| 日韩精品乱码av一区二区| 亚洲视频一区在线| 日韩一区二区三区免费看| 久久综合精品国产一区二区三区 | 欧美精品视频www在线观看| www.在线成人| 99精品视频在线观看| 91精品办公室少妇高潮对白| 欧美精品一二三| 欧美福利视频一区| 欧美精品一区男女天堂| 亚洲色图制服丝袜| 亚洲欧美日韩中文字幕一区二区三区| 亚洲综合免费观看高清在线观看| 激情文学综合插| 欧美写真视频网站| 国产精品久久久久久久久晋中| 亚洲免费观看高清完整版在线观看 | 欧美一区二区三区视频免费| 久久久精品影视| 亚洲国产视频直播| 国产在线视频一区二区| a级精品国产片在线观看| 日韩欧美黄色影院| 亚洲精品水蜜桃| 亚洲欧洲成人自拍| 日本道精品一区二区三区| 欧美亚洲综合在线| 综合欧美一区二区三区| 国内久久婷婷综合| 在线成人av网站| 亚洲人成网站色在线观看| gogogo免费视频观看亚洲一| 精品一区精品二区高清| 欧美日韩高清在线| 亚洲国产欧美在线| 懂色av一区二区三区蜜臀| 日韩美女视频在线| 洋洋成人永久网站入口| 大白屁股一区二区视频| 久久久精品欧美丰满| 精品影院一区二区久久久| 6080yy午夜一二三区久久| 一区二区在线观看免费视频播放| www.日韩大片| 亚洲国产成人在线| 国产成人精品午夜视频免费| 丁香五精品蜜臀久久久久99网站| 7777精品伊人久久久大香线蕉| 亚洲综合色区另类av| 色综合中文字幕| 亚洲精品视频在线看| 91香蕉视频黄| 一区二区三区四区精品在线视频| av午夜一区麻豆| 一区二区三区日韩| 91精品在线观看入口| 美腿丝袜亚洲三区| 欧美成人精精品一区二区频| 国产在线播精品第三| 国产欧美精品国产国产专区| 东方aⅴ免费观看久久av| 国产精品久久久久影院色老大| 日本乱码高清不卡字幕| 午夜伦欧美伦电影理论片| 日韩亚洲欧美成人一区| 91日韩在线专区| 欧美一区二区三区不卡| 日韩专区欧美专区| 国产综合色视频| 国产婷婷色一区二区三区四区| 成人夜色视频网站在线观看| 亚洲欧美日韩久久精品| 欧美日本国产视频| 理论片日本一区| 中文字幕高清不卡| 色哟哟精品一区| 极品瑜伽女神91| 91免费国产在线观看| 亚洲gay无套男同| 久久九九国产精品| 欧美日韩日本视频| 韩国精品主播一区二区在线观看| 国产精品女主播在线观看| 欧美性感一类影片在线播放| 韩国一区二区三区| 亚洲永久免费av| 亚洲成人动漫在线观看| 久久久久久97三级| 欧美日韩国产三级| 福利91精品一区二区三区| 日日夜夜免费精品视频| 国产精品久久久久久久久久免费看| 日韩av一区二区三区四区| 国产精品国产成人国产三级| 911精品产国品一二三产区| 成人爱爱电影网址| 免费看欧美美女黄的网站| 国产精品成人免费在线| 精品国产乱码久久久久久免费 | 久久久久99精品一区| 色偷偷久久人人79超碰人人澡| 蜜臀av亚洲一区中文字幕| 亚洲精品高清视频在线观看| 久久综合一区二区| 日韩午夜在线影院| 欧美性xxxxx极品少妇| 丁香婷婷综合色啪| 韩国av一区二区三区在线观看| 亚洲第一av色| 亚洲观看高清完整版在线观看| 国产精品国产三级国产专播品爱网| 精品国产欧美一区二区| 日韩一区二区精品| 6080国产精品一区二区| 欧美福利视频一区| 蜜臀av一级做a爰片久久| 国产一区二区在线视频| av资源站一区| 成人国产电影网| 高清shemale亚洲人妖| 成人亚洲一区二区一| 风流少妇一区二区| 成人免费黄色大片| 不卡av电影在线播放| 麻豆高清免费国产一区| 乱一区二区av| 国产一区美女在线| 国产精品白丝av| 国产一区二区三区黄视频 | 欧美一区二区三区在| 欧美性三三影院| 久久国产福利国产秒拍| 日本欧美一区二区三区| 日日夜夜免费精品视频| 精品美女被调教视频大全网站| 91麻豆精品国产91久久久| 欧美日韩激情在线| 91精品国产综合久久精品麻豆| 欧美片在线播放| 日韩精品一区二区三区老鸭窝| 精品国产污网站| 中文字幕制服丝袜一区二区三区 | 久久综合九色欧美综合狠狠| 久久精品人人做| 国产精品成人在线观看| 亚洲综合图片区| 91麻豆精品国产综合久久久久久| 欧美在线观看视频一区二区 | 国产亚洲欧美在线| 亚洲特级片在线| 三级影片在线观看欧美日韩一区二区| 精品一区二区三区在线播放| fc2成人免费人成在线观看播放|