Web 插件 之 ECharts 实现中国地图数据的简单展示实现

Web 插件 之 ECharts 实现中国地图数据的简单展示实现

目录

Web 插件 之 ECharts 实现中国地图数据的简单展示实现

一、简单介绍

二、实现原理

三、注意事项

四、预览效果

五、实现步骤

六、关键代码


一、简单介绍

Web 开发的一些知识整理,方便后期遇到类似的问题,能够及时查阅使用。

本节介绍,Web 开发 中 ECharts 进行数据动态排序柱状图可视化图表使用方法,如果有不足之处,欢迎指出,或者你有更好的方法,欢迎留言。

ECharts 官网:Apache ECharts

ECharts 是一个使用 JavaScript 实现的开源可视化库,涵盖各行业图表,满足各种需求。

ECharts 遵循 Apache-2.0 开源协议,免费商用。

ECharts 兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)及兼容多种设备,可随时随地任性展示。

二、实现原理

1、下载需要的 ECharts.js 和 china.js 

Echarts github 地址:https://github.com/apache/echarts

 ECharts.js 各个版本下载地址:echarts/dist at master · apache/echarts · GitHub

china.js 下载地址:https://github.com/apache/echarts/tree/master/test/data/map/js

 

2、根据步骤引入 js,设置 Dom、option 、echarts.init 和 myChart.setOption

具体可参考:Web 插件 之 ECharts 可视化图表库简单介绍和使用_仙魁XAN-CSDN博客

三、注意事项

1、一些参数的简单说明

tooltip:定制信息提示框的内容,其中params参数表示数据

visualMap:图注样式定制,其中包括color范围,文字提示

geo:定义地图为china,其中可能大概率要用的一个配置zoom: 视角缩放比例,roam:是否开启缩放和平移

itemStyle:地图外观定制,其中normal表示正常显示的样式,emphasis表示鼠标悬浮下样式

series:整体配置   其中type很关键 表示该例是地图,data:图表所用数据,实际项目中大家可以通过http获取数据,再赋值给data

2、数据格式

为了演示效果,随机给定的value值,randomValue为我自己定义的一个获取随机数函数

3、自定义事件

myChart.on('click', function (params) {
            alert(params.name+':'+params.seriesName+':'+params.value);
        });

四、预览效果

 

五、实现步骤

1、Eclipse 新建一个 web 工程,工程引入 echarts.js 和 china.js

2、添加一个 html ,添加对应数据和事件,实现地图绘制

3、运行服务器,输入对应网址,地图效果如下 

 

六、关键代码

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>ECharts Test China Data</title>
	<!-- 引入刚刚下载的 ECharts 文件 -->
	<script type="text/javascript" src="./js/echarts.js"></script>
	<!-- 引入刚刚下载的 china 文件 -->
	<script type="text/javascript" src="./js/china.js"></script>
	 <!-- 设置样式 -->
	 <style>
        *{margin:0;padding:0}
        html,body{
            width:100%;
            height:100%;
        }
        #main{
              width:600px;
              height:450px;
              margin: 150px auto;
              border:1px solid #ddd;
          }
        
    </style>
</head>
<body>
	<!-- 为 ECharts 准备一个定义了宽高的 DOM -->
	<div id="main" ></div>
	
	 <script type="text/javascript">
        var dataList=[
            {name:"南海诸岛",value:0},
            {name: '北京', value: randomValue()},
            {name: '天津', value: randomValue()},
            {name: '上海', value: randomValue()},
            {name: '重庆', value: randomValue()},
            {name: '河北', value: randomValue()},
            {name: '河南', value: randomValue()},
            {name: '云南', value: randomValue()},
            {name: '辽宁', value: randomValue()},
            {name: '黑龙江', value: randomValue()},
            {name: '湖南', value: randomValue()},
            {name: '安徽', value: randomValue()},
            {name: '山东', value: randomValue()},
            {name: '新疆', value: randomValue()},
            {name: '江苏', value: randomValue()},
            {name: '浙江', value: randomValue()},
            {name: '江西', value: randomValue()},
            {name: '湖北', value: randomValue()},
            {name: '广西', value: randomValue()},
            {name: '甘肃', value: randomValue()},
            {name: '山西', value: randomValue()},
            {name: '内蒙古', value: randomValue()},
            {name: '陕西', value: randomValue()},
            {name: '吉林', value: randomValue()},
            {name: '福建', value: randomValue()},
            {name: '贵州', value: randomValue()},
            {name: '广东', value: randomValue()},
            {name: '青海', value: randomValue()},
            {name: '西藏', value: randomValue()},
            {name: '四川', value: randomValue()},
            {name: '宁夏', value: randomValue()},
            {name: '海南', value: randomValue()},
            {name: '台湾', value: randomValue()},
            {name: '香港', value: randomValue()},
            {name: '澳门', value: randomValue()}
        ]
        
        // 随机函数
        function randomValue() {
            return Math.round(Math.random()*1000);
        }
        
        
        var option = {
            tooltip: {
                    formatter:function(params,ticket, callback){
                        return params.seriesName+'<br />'+params.name+':'+params.value
                    }//数据格式化
                },
            visualMap: {
                min: 0,
                max: 1500,
                left: 'left',
                top: 'bottom',
                text: ['高','低'],//取值范围的文字
                inRange: {
                    color: ['#e0ff00', '#006e00']//取值范围的颜色
                },
                show:true//图注
            },
            geo: {
                map: 'china',
                roam: false,//不开启缩放和平移
                zoom:1.23,//视角缩放比例
                label: {
                    normal: {
                        show: true,
                        fontSize:'10',
                        color: 'rgba(0,0,0,0.7)'
                    }
                },
                itemStyle: {
                    normal:{
                        borderColor: 'rgba(0, 0, 0, 0.2)'
                    },
                    emphasis:{
                        areaColor: '#F3B329',//鼠标选择区域颜色
                        shadowOffsetX: 0,
                        shadowOffsetY: 0,
                        shadowBlur: 20,
                        borderWidth: 0,
                        shadowColor: 'rgba(0, 0, 0, 0.5)'
                    }
                }
            },
            series : [
                {
                    name: '信息量',
                    type: 'map',
                    geoIndex: 0,
                    data:dataList
                }
            ]
        };
        
     	// 基于准备好的dom,初始化echarts实例
        var myChart = echarts.init(document.getElementById('main'));
     	// 使用刚指定的配置项和数据显示图表。
        myChart.setOption(option);
        // 点击事件
        myChart.on('click', function (params) {
        	alert(params.name+':'+params.seriesName+':'+params.value);
        });
 
    </script>
</body>
</html>

 

  • 13
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: 使用Flask和MySQL来实现数据可视化,可以通过以下步骤来实现: 1. 使用Flask来搭建Web应用程序,根据需要设置路由和视图函数。 2. 使用MySQL数据库来存储数据,建立需要的数据表,并通过Flask的SQLAlchemy库进行数据库交互。 3. 使用Echarts库来实现数据可视化,通过Flask的路由将需要展示数据传递给前端页面,并将数据绑定到Echarts图形中进行展示。 通过上述步骤,就可以实现Flask+MySQL+Echarts数据可视化。 ### 回答2: Flask是一个用Python编写的轻量级Web应用框架;MySQL是一种关系型数据库;而Echarts是一个由百度公司开发的数据可视化库。将Flask、MySQL和Echarts组合使用,可以实现数据的可视化展示,使数据更具可读性和可理解性。 实现步骤如下: 1.搭建Flask框架,建立路由,用于数据传输。 2.连接MySQL数据库,使用Python的pymysql模块连接数据库。 3.从MySQL数据库中读取所需的数据,并将它们存入Python中的数据结构中,如字典或列表,然后将其传回到Flask应用中。 4.编写Echarts图表,并将数据插到其中。可以选择线形图、条形图、饼图、地图等不同的图表类型,并根据需求自定义颜色、字体、动画效果等。 5.最后将Echarts图表嵌入到Flask应用中,使其显示在网页上,供用户查看并互动。 对于使用Flask、MySQL和Echarts实现数据可视化的具体步骤,我将稍微详细说明一下。 一、搭建Flask框架 Flask是一个微型框架,采用了Werkzeug工具箱和Jinja2模板引擎。我们需要安装Flask和相关的依赖项,建立Flask应用程序,然后建立路由,使得我们可以传输数据到和从Flask应用程序中。 二、连接MySQL数据库 我们可以使用比Python标准库中的MySQLdb更流行的pymysql模块来连接我们的MySQL数据库。我们需要提供数据库的用户名和密码,以及主机名、端口、要使用的数据库等其他相关信息。连接后,可以通过Python执行SQL查询或更新,以读取或写入数据。 三、读取数据并传回Flask应用程序: 使用Python代码向数据库查询所需数据,从结果中提取所需信息,然后返回组成数据结构,如列表或字典。在Flask应用程序中设置一个路由,可以识别来自前端JavaScript的HTTP GET请求,并将响应作为JSON格式数据发送回前端。 四、编写Echarts图表 我们可以使用Echarts图表库中的各种类型的图表,用于不同的数据可视化需求。我们可以选择线形图、条形图、散点图、饼图、地图等。Echarts提供了一个函数接口,可以直接把数据传入图表,然后用JavaScript来呈现。 五、将Echarts图表嵌入到Flask应用中 将Echarts图表嵌入到Flask应用程序中,需要在前端JavaScript中调用我们已设置好的路由,向Flask应用程序请求数据,并在响应到达时调用Echarts图表组件来显示数据。    综上所述,使用Flask、MySQL和Echarts结合实现数据可视化,可以让数据更生动形象,让用户对数据有更好的理解和掌握,进而提升整个数据应用的效率和可靠性。 ### 回答3: Flask是一个非常流行的Python Web框架,可以用来搭建Web应用程序。MySQL是一个开源、轻量级的关系型数据库管理系统。而echarts是一个非常强大的JavaScript图表库,可以用来展示各种数据。 通过将这三者结合起来,可以实现数据可视化,即将MySQL中的数据通过Flask进行处理和展示,并使用echarts将这些数据以图表的方式呈现出来。 实现该过程的基本步骤如下: 1.使用Python连接MySQL数据库并读取数据。 2.使用Flask框架编写Web应用程序,包括提供数据的API接口、前端页面等。 3.在前端页面中使用echarts库进行数据可视化展示。可以绘制多种类型的图表,如折线图、柱状图、饼图等,根据数据的具体情况选择合适的图表类型。 具体实现步骤如下: 1.安装MySQL和Flask库,分别使用以下命令: pip install mysql-connector-python pip install Flask 2.编写Python代码,连接MySQL数据库,并读取需要展示数据。代码示例: import mysql.connector cnx = mysql.connector.connect(user='用户名', password='密码', host='主机名', database='数据库名') cursor = cnx.cursor() query = "SELECT * FROM 表名" cursor.execute(query) data = cursor.fetchall() 3.编写Flask应用程序,提供API接口。代码示例: from flask import Flask, jsonify app = Flask(__name__) @app.route("/data") def get_data(): # 数据读取及处理 return jsonify(data) if __name__ == "__main__": app.run() 4.编写前端页面,使用echarts库进行数据可视化展示。代码示例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>数据可视化展示</title> </head> <body> <!--echarts图表展示区域--> <div id="chart" style="width: 600px; height:400px;"></div> <!--echarts库的引入--> <script src="https://cdn.staticfile.org/echarts/4.2.0-rc.1/echarts.min.js"></script> <!--数据获取及图表绘制--> <script> var dataUrl = "/data"; $.get(dataUrl, function (data) { var chart = echarts.init(document.getElementById('chart')); var option = { xAxis: { type: 'category', data: data.xAxisData }, yAxis: { type: 'value' }, series: [{ data: data.seriesData, type: 'bar' }] }; chart.setOption(option); }); </script> </body> </html> 以上就是Flask MySQL echarts实现数据可视化的基本步骤,通过这种方式可以方便地展示各种类型的数据。在实际项目中,还需要根据具体情况进行相应的调整和优化。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仙魁XAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值