echarts绘制饼状图及属性设置 数据来自数据库[亲测有效]

echarts绘制饼状图及属性设置 数据来自数据库[亲测有效] E charts 官网有很多样式可以选 https://echarts.apache.org/examples/zh/index.html#chart-type-pie 但是我发现 数据 都…

	echarts绘制饼状图及属性设置  数据来自数据库[数据库教程]

E charts 官网有很多样式可以选  https://echarts.apache.org/examples/zh/index.html#chart-type-pie

但是我发现 数据 都是以 列表 或者 字典  的形式展现

现在想要实现  :

1. 用户web端输入筛选条件

2. sql语句筛选数据

3. 然后使用E chart 展现在前端饼图(其余图只需要改变前端样式即可,传数据部分是一样的)

代码实现:

1.app.py

 1 @app.route(/test/, methods=[GET, POST])
 2 def test():
 3 #传参
 4     min =request.args.get(min)
 5     max =request.args.get(max)
 6     year6 = request.args.get(year6)
 7     #重点是这一句,将列名当作参数传入,(常见数据不需要这一句的处理)
 8     #year7 = ‘"‘ + str(year6) + ‘"‘
 9     min1=int(min)*100000
10     max1=int(max)*100000
11 #sql语句取数据
12     sql = """
13     SELECT * 
14     FROM TABLE where """+year7+"""  between ‘"""+str(min1)+"""‘ and ‘"""+str(max1)+"""‘ ;
15     """
16     result = ibm_db.exec_immediate(connect_db, sql)
17     dictionary = ibm_db.fetch_both(result)
18     userlist = []
19     while dictionary != False:
20         userlist.append(dictionary)
21         dictionary = ibm_db.fetch_both(result)
22 #数据处理
23     resultlist=[]
24     for i in userlist:
25         state=i["STATE"]
26         population = i[year6]
27 
28         diclist={
29             "state":state,
30             "population":population
31         }
32         resultlist.append(diclist)
33     return render_template(index.html, data6=resultlist)

代码100分

前端代码展现:

代码100分 2 <!DOCTYPE html>
 3 <html lang="en">
 4 <head>
 5     <meta charset="UTF-8">
 6     <title>pie chart</title>
 7        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-gl/dist/echarts-gl.min.js"></script>
 8        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts-stat/dist/ecStat.min.js"></script>
 9        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/dataTool.min.js"></script>
10        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/china.js"></script>
11        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/map/js/world.js"></script>
12        <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/echarts/dist/extension/bmap.min.js"></script>  
13 </head>
14 <body>
15 <div>
16             <form method="GET" action="/test/">
17                 <input type="text" placeholder="min" name="min">
18                 <input type="text" placeholder="max" name="max">
19                 <input type="text" placeholder="year" name="year6">
20                 <button type="submit">search</button>
21                 </form>
22 
23     </div>
24 <div id="display" style="height: 500px; width: 500px"></div>
25 <script type="text/javascript">
26        {% if data6 %}
27 var dom = document.getElementById("display");
28 var drawn_pieChart = echarts.init(dom);
29 var app = {};
30 var ldata = [];
31 var sdata = [];
32 {% for list in data6 %}
33     var name = {{ list.state }};
34     var value = {{ list.population }};
35     sdata.push({value: value, name: name});
36     ldata.push(name);
37            {% endfor %}
38 console.log(array:,ldata);
39 option = null;
40 option = {
41     title: {
42         text: chart,
43         subtext: pie chart,
44         left: center,
45         backgroundColor: #ee8f83,
46         // 主标题文本样式设置
47             textStyle: {
48               fontSize: 26,
49               fontWeight: bolder,
50               color: #80302e
51             },
52             // 副标题文本样式设置
53             subtextStyle: {
54               fontSize: 18,
55               color: #498b7d}
56     },
57     tooltip: {
58         trigger: item,
59         formatter: {a} <br/>{b} : {c} ({d}%)
60     },
61     legend: {
62         orient: vertical,
63         left: left,
64         backgroundColor: #ebeeb5,
65         textStyle: {
66               color: #511f66  // 图例文字颜色
67             },
68         data: ldata
69     },
70     series: [
71         {
72             name: visit,
73             type: pie,
74             radius: [30%, 60%],  // 设置环形饼状图, 第一个百分数设置内圈大小,第二个百分数设置外圈大小
75             center: [50%, 50%],
76             data: sdata,
77             //设置饼图每部分的颜色都不一样
78             color: [#51CEC6,#FFB703,#5FA0FA,#ce392e,#511f66,#80302e],
79             emphasis: {
80                 itemStyle: {
81                     shadowBlur: 10,
82                     shadowOffsetX: 0,
83                     shadowColor: rgba(30, 144, 255, 0.5)
84 
85                 }
86             }
87         }
88     ]
89 };
90 ;
91 
92 if (option && typeof option === "object") {
93     drawn_pieChart.setOption(option, true);
94 }
95     {% endif %}
96        </script>
97 </body>

结果展示:

技术图片

 

 

条形图是类似的:

只需要改变前端的样式,因此在这里展示前端代码了:

 1 option = {
 2     title: {
 3         text: ‘bar‘,
 4         subtext: ‘‘
 5     },
 6     tooltip: {
 7         trigger: ‘axis‘,
 8         axisPointer: {
 9             type: ‘shadow‘
10         }
11     },
12 
13     grid: {
14         left: ‘3%‘,
15         right: ‘4%‘,
16         bottom: ‘3%‘,
17         containLabel: true
18     },
19     xAxis: {
20         type: ‘‘,
21         boundaryGap: [0, 0.01]
22     },
23     yAxis: {
24         type: ‘category‘,
25         data:ldata
26     },
27     series: [
28         {
29             name: ‘pop‘,
30             type: ‘bar‘,
31             data: sdata,
32             color: [‘#51CEC6‘,‘#FFB703‘,‘#5FA0FA‘],
33 
34         },
35 
36     ]
37 };
38 
39 if (option && typeof option === "object") {
40     drawn_barChart.setOption(option, true);
41 }
42     {% endif %}

散点图:

代码100分 1 option = {
 2     backgroundColor: new echarts.graphic.RadialGradient(0.3, 0.3, 0.8, [{
 3         offset: 0,
 4         color: ‘#f7f8fa‘
 5     }, {
 6         offset: 1,
 7         color: ‘#cdd0d5‘
 8     }]),
 9     title: {
10         text: ‘chart‘
11     },
12     legend: {
13         right: 10,
14         data: ldata
15     },
16     xAxis: {
17         max:2004,
18         min:2021,
19         splitLine: {
20             lineStyle: {
21                 type: ‘value‘
22             },
23 
24         },
25     },
26     yAxis: {
27         splitLine: {
28             lineStyle: {
29                 type: ‘dashed‘
30             }
31         },
32         scale: true
33     },
34     series: [{
35         name: ‘‘,
36         data: sdata,
37         type: ‘scatter‘,
38 
39         emphasis: {
40             label: {
41                 show: true,
42                 formatter: function (param) {
43                     return param.data[3];
44                 },
45                 position: ‘top‘
46             }
47         },
48         itemStyle: {
49             shadowBlur: 10,
50             shadowColor: ‘rgba(120, 36, 50, 0.5)‘,
51             shadowOffsetY: 5,
52             color: new echarts.graphic.RadialGradient(0.4, 0.3, 1, [{
53                 offset: 0,
54                 color: ‘rgb(251, 118, 123)‘
55             }, {
56                 offset: 1,
57                 color: ‘rgb(204, 46, 72)‘
58             }])
59         }
60 
61 
62     }]
63 };
64 if (option && typeof option === "object") {
65     drawn_pointChart.setOption(option, true);
66 }
67     {% endif %}

更多样式可到官网查询。

 

echarts绘制饼状图及属性设置 数据来自数据库

原文地址:https://www.cnblogs.com/bocaimao/p/13338626.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7269.html

(0)
上一篇 2023-03-24
下一篇 2023-03-24

相关推荐

  • oracle 删除用户后释放表空间

    oracle 删除用户后释放表空间有个用户占用大量存储。删除之后表空间没有释放。。。。 网上百度一番后: 先使用语句查询表空间大小 HWM。HWM说明参考:https://www.cnblogs.com/husam/p/660443…

    2023-04-04
    104
  • Python Queue模块:实现先进先出的数据结构

    Python Queue模块:实现先进先出的数据结构Queue模块是Python标准库中的模块之一,用于实现先进先出的数据结构,具有线程安全、同步等特点。在Python程序中,如果需要使用具备先进先出特性的数据结构,则可以使用Queue模块。在本篇文章中,我们将详细介绍Queue模块。

    2023-12-13
    67
  • 强制退出vim命令

    强制退出vim命令对于Linux和UNIX系统管理员来说,Vim是一款广泛使用的文本编辑器。作为一种通用编辑器,它带有大量有用的功能,但对于新手而言可能需要一些时间来适应。在使用Vim期间,有时会出现必须强制退出编辑器的情况。本文将介绍Vim强制退出的多种方法,以便读者随时可以将其应用到实际操作中。

    2024-04-16
    24
  • Linux运维 | mysql数据库的备份与恢复

    Linux运维 | mysql数据库的备份与恢复运维工程师的日常工作需要对各种数据进行备份,其中数据库数据的备份当属重点之一,为了方便管理,选择哪种备份方案是很重要的。 数据备份种类 全量备份 全量备份就是指对某一个时间点上的所有数据或应用进行的…

    2023-02-01
    102
  • 数据库优化方法整理(开发人员实用)「建议收藏」

    数据库优化方法整理(开发人员实用)「建议收藏」特别说明: 本文只是面对数据库应用开发的程序员,不适合专业 DBA ,DBA 在数据库性能优化方面需要了解更多的知识; 本文许多示例及概念是基于 Oracle 数据库描述,对于其它关系型数据库也可以…

    2023-02-14
    92
  • mysql建立外键关联_如何设置外键

    mysql建立外键关联_如何设置外键eg.一个用户可有拥有多个订单,一个订单只能属于一个用户,一对多,在tb_order中使用外键user_id关联tb_user的id。 当删除、更新tb_user中的主键时,与之关联的tb_order

    2023-02-12
    121
  • Python中Ceil函数用法

    Python中Ceil函数用法a href=”https://beian.miit.gov.cn/”苏ICP备2023018380号-1/a Copyright www.python100.com .Some Rights Reserved.

    2024-04-17
    31
  • 技术分享 | MySQL 监控利器之 Pt-Stalk[通俗易懂]

    技术分享 | MySQL 监控利器之 Pt-Stalk[通俗易懂]作者:xuty 本文来源:原创投稿 *爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 一、概述 之前在社区发了一篇故障分析 | 有效解决 MySQL 行锁等待超时问题文…

    2023-03-04
    102

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注