django之 echarts数据可视化_django echarts_水w的博客-程序员宅基地

技术标签: # django  echarts  前端  javascript  

echarts官网Apache ECharts

1、前提:创建好了django框架

2、在django框架中使用echarts数据可视化之前,需要打开echarts官网,先下载echarts.js

第一种方法:

(1)点击“下载-->下载”

(2)选择一下的两种方式的任意一种:

点击“dist”,打开了Github的项目文件,根据需要从“Github下载编译产物”即可:

 

重点描述 第二种方法:

(1)点击“示例”,选择想要的图形,这里我随便选择的是柱状图中的渐变柱状图

 打开后是这个样子:

 (2)点击“下载示例”,下载这个渐变柱状图的html文件

(3)下载成功之后,打开:

<!--
    THIS EXAMPLE WAS DOWNLOADED FROM https://echarts.apache.org/examples/zh/editor.html?c=bar-gradient
-->
<!DOCTYPE html>
<html style="height: 100%">
    <head>
        <meta charset="utf-8">
    </head>
    <body style="height: 100%; margin: 0">
        <div id="container" style="height: 100%"></div>

        
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/echarts.min.js"></script>
        <!-- Uncomment this line if you want to dataTool extension
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/dist/extension/dataTool.min.js"></script>
        -->
        <!-- Uncomment this line if you want to use gl extension
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl@2/dist/echarts-gl.min.js"></script>
        -->
        <!-- Uncomment this line if you want to echarts-stat extension
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat@latest/dist/ecStat.min.js"></script>
        -->
        <!-- Uncomment this line if you want to use map
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/map/js/china.js"></script>
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/[email protected]/map/js/world.js"></script>
        -->
        <!-- Uncomment these two lines if you want to use bmap extension
        <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=<Your Key Here>"></script>
        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts@{
   {version}}/dist/extension/bmap.min.js"></script>
        -->

        <script type="text/javascript">
var dom = document.getElementById("container");
var myChart = echarts.init(dom);
var app = {};

var option;



// prettier-ignore
let dataAxis = ['点', '击', '柱', '子', '或', '者', '两', '指', '在', '触', '屏', '上', '滑', '动', '能', '够', '自', '动', '缩', '放'];
// prettier-ignore
let data = [220, 182, 191, 234, 290, 330, 310, 123, 442, 321, 90, 149, 210, 122, 133, 334, 198, 123, 125, 220];
let yMax = 500;
let dataShadow = [];
for (let i = 0; i < data.length; i++) {
  dataShadow.push(yMax);
}
option = {
  title: {
    text: '特性示例:渐变色 阴影 点击缩放',
    subtext: 'Feature Sample: Gradient Color, Shadow, Click Zoom'
  },
  xAxis: {
    data: dataAxis,
    axisLabel: {
      inside: true,
      color: '#fff'
    },
    axisTick: {
      show: false
    },
    axisLine: {
      show: false
    },
    z: 10
  },
  yAxis: {
    axisLine: {
      show: false
    },
    axisTick: {
      show: false
    },
    axisLabel: {
      color: '#999'
    }
  },
  dataZoom: [
    {
      type: 'inside'
    }
  ],
  series: [
    {
      type: 'bar',
      showBackground: true,
      itemStyle: {
        color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
          { offset: 0, color: '#83bff6' },
          { offset: 0.5, color: '#188df0' },
          { offset: 1, color: '#188df0' }
        ])
      },
      emphasis: {
        itemStyle: {
          color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
            { offset: 0, color: '#2378f7' },
            { offset: 0.7, color: '#2378f7' },
            { offset: 1, color: '#83bff6' }
          ])
        }
      },
      data: data
    }
  ]
};
// Enable data zoom when user click bar.
const zoomSize = 6;
myChart.on('click', function (params) {
  console.log(dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)]);
  myChart.dispatchAction({
    type: 'dataZoom',
    startValue: dataAxis[Math.max(params.dataIndex - zoomSize / 2, 0)],
    endValue:
      dataAxis[Math.min(params.dataIndex + zoomSize / 2, data.length - 1)]
  });
});

if (option && typeof option === 'object') {
    myChart.setOption(option);
}

        </script>
    </body>
</html>
    

 (4)复制下图中红线框里的src里的url地址,使用浏览器打开,

 

(5)按住“Ctrl+A”全选,进行复制“Ctrl+v”

进入到django中,在static/disk/js文件夹下新建一个js文件“echarts.js” 

打开“echarts.js” ,将复制内容粘贴过去

(6) 在template下新建一个show.html文件,

我这里是在我的django框架的template/web/下新建了一个show.html文件,

 (6)将之前下载的示例html文件里的内容复制粘贴到新建的show.html文件里,

并修改script标签的src属性值(改为自己新建的echarts.js文件所在位置)

我是在static/disk/js文件夹下新建一个js文件“echarts.js” 

因此我的src应该写为

{% static 'dist/js/echarts.js' %}

而且还需在show.html文件最上方加上

{% load static %}

 (7)修改django项目的应用web里的web/urls.py文件:

 在web/urls.py的路由里添加:

path('web/show/', views.web_show, name="web_show"),

这样就可以通过该路径访问到show.html了。

(10)Django使用自己的Templates模板进行HTML渲染控制,因此我们需要使用Django的render()函数给用户返回可视化的图表页面。

在django项目的应用web里的web/views.py文件下添加函数“web_show”

from datetime import datetime
from django.http import HttpResponse
from django.shortcuts import render, redirect
from django.urls import reverse
from myadmin.models import User, Company, Job


# Create your views here.
def web_show(request):
    return render(request, "web/show.html")

(9)修改之后,运行django项目,在浏览器输入

http://127.0.0.1:8000/web/show/

然后echarts图就显示出来了。 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_45956730/article/details/124511502

智能推荐

整理Kickstart+DHCP+PXE+Heartbeat资料-程序员宅基地

看了http://linux.chinaunix.net/bbs/thread-1008703-1-5.html 的RHEL4+Kickstart+NFS+DHCP+PXE全自动无人安装 ,我决定将我之前的研究 整理一下,现在基于RedHat的Kickstart网络安装技术较为成熟。 我的做法是在现今这种成熟的方法中加入Heartbeat技术,网络安装服务器采用Vs...

将 Shiro 作为应用的权限基础 三:基于注解实现的授权认证过程-程序员宅基地

授权即访问控制,它将判断用户在应用程序中对资源是否拥有相应的访问权限。 如,判断一个用户有查看页面的权限,编辑数据的权限,拥有某一按钮的权限等等。 一、用户权限模型为实现一个较为灵活的用户权限数据模型,通常把用户信息单独用一个实体表示,用户权限信息用两个实体表示。用户信息用 LoginAccount 表示,最简单的用户信息可能只包含用户名 loginName 及密码

PPT教程:码垛机器人及其操作应用_King's King的博客-程序员宅基地

导语大家好,我是智能仓储物流技术研习社的社长,你的老朋友,老K。‍知识星球*‍原创书‍* 微信群*视频课程‍完整版PPT和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载知名企业福利知识社区:主要包含智能仓储物流自动化规划设计,自动化立体库、智能机器人,自动化拣选系统,仓储管理软件WMS,AGV/AMR应用等。免费提供一些解决方案、行业报告、PPT、电子书、手册、技术资..._码垛机器人如何接入扫码系统

keras在backend下使用tensorflow时指定GPU的使用率-程序员宅基地

下面是我亲测可行的代码:# -*- coding: utf-8 -*-import osimport tensorflow as tfimport keras.backend.tensorflow_backend as KTFos.environ['KERAS_BACKEND'] = 'tensorflow'os.environ["CUDA_VISIBLE_DEVICES"] ...

父亲计算机音乐简谱,阎维文歌曲父亲简谱-程序员宅基地

【www.hywsbj.com--图表展板】朋友们,大家喜欢阎维文吗?他唱了很多的经典的老歌,例如说话心里话,小白杨,咱当兵的人,一二三四歌等都非常的好听,下面我们再一起来欣赏一下他的这首父亲的歌曲的简谱吧。阎维文对中国的民族声乐事业有着很大的抱负,他曾说:"民族音乐在中国有着广泛、深厚的群众基础。但时代是发展的,民族声乐艺术也必须和时代合拍。我永远不抛弃民族的东西,始终把根扎在故土上,要为民族声...

asp如何解析json数组(高分求教)_asp解析json数组-程序员宅基地

JSON数据:{"is_menu_open":1,"selfmenu_info":{"button":[{"name":"公司信息","sub_button":{"list":[{"type":"click","name":"公司简介","key":"公司简介"},{"type":"click","name":"公司历程","key":"公司历程"},{"type":"click","name":_asp解析json数组

随便推点

安装VMtool-程序员宅基地

安装VMtools挂载VMwareTools光驱虚拟机选项栏中选【虚拟机】-->【安装vmware tools】双击VMware Tools,将光驱中VMware Tools-XXXXXX.tar.gz复制到指定文件夹(通常复制到桌面)获取root权限,输入:sudo -s运行脚本 vmware-install.plcd Desktop/vmwa..._点击安装vmtool报错

开放式的Video Captioning,中科院自动化所提出基于“检索-复制-生成”的网络_我爱计算机视觉的博客-程序员宅基地

关注公众号,发现CV技术之美▊写在前面在本文中,作者将传统的视频字幕任务转换为一个新的范式,即开放式视频字幕,它在视频内容相关句子的提示下生成描述,而不限于视频本身。为了解决开放式视频字..._中文 video captioning

苹果 Mac Big Sur 如何更改锁屏时间?_big sur设置屏幕休眠时间-程序员宅基地

苹果mac离开一段时间就自动休眠,屏幕锁掉,输入密码后,又要重新联网,很麻烦。别急,修改方法非常简单。注意:原来的节能设置被删除了,Big Sur中将修改锁屏时间的功能改到了电池设置下。操作方法如下:1.在 Mac 上,打开“系统偏好设置”,如图:2.找到“电池”,如图:将滑块调节到合适的位置。更改锁屏时间的方法是不是很简单?以上就是小编今天为大家分享的内容,希望对您有所帮助,想了解更多关于Mac相关知识,请关注macz吧!..._big sur设置屏幕休眠时间

dp和px,那些不得不吐槽的故事——Android平台图_lgg6 dp调整-程序员宅基地

http://blog.sina.com.cn/s/blog_6499f8f101014ipq.html一个优秀的手机软件,不仅要有精巧的功能,流畅的速度,让人赏心悦目的UI也往往是用户选择的重要理由。作为移动产品的PM,也需要了解一些在UI设计中的基本知识。 1. px和pt,一对好伙伴在视觉设计中,我们经常会见到以下两个单位: px和磅数pt。Px _lgg6 dp调整

使用ioctl与内核交换数据 _ioctl 带参数-程序员宅基地

1. 前言 使用ioctl系统调用是用户空间向内核交换数据的常用方法之一,从ioctl这个名称上看,本意是针对I/O设备进行的控制操作,但实际并不限制是真正的I/O设备,可以是任何一个内核设备即可。 2. 基本过程 在内核空间中ioctl是很多内核操作结构的一个成员函数,如文件操作结构struct file_operations(include/linux/fs.h)_ioctl 带参数

深度强化学习参考资料_强化学习sutton相关资料-程序员宅基地

书籍Reinforcement Learning: An Introduction (Richard S. Sutton and Andrew G. Barto)博客强化学习系列 - LagrangeSK深度强化学习系列 - J.Q.Wang强化学习系列 - 刘建平Pinard多智能体强化学习系列 - 开贰锤 ECKaiDavid Silver强化学习公开课中文讲解及实践 - 知乎课程强化学习 (Reinforcement Learning) | 莫烦Pyth.._强化学习sutton相关资料