Pyecharts绘制可视化地球实现示例
作者:周萝卜 发布时间:2021-03-18 17:18:48
标签:Pyecharts,绘制,可视化,地球
今天我们使用 Pyecharts 制作一个地球可视化项目,一起来看看吧
Let’s go!
数据处理
这里我们使用全球新冠感染人数的数据集作为我们的测试数据,先来看看数据的整体情况
import pandas as pd
df = pd.read_csv("owid-covid-data.csv")
df_0608 = df[df['date'] == '2022-06-08']
df_new = df_0608[pd.isna(df_0608['continent']) == False]
df_new
Output:
我们选取0608这一天的数据,可以看到 total_cases 字段就是国家当前的累计总确诊人数
下面就提取国家和确诊人数
covid_data = df_new[['location', 'total_cases']].values.tolist()
Output:
Pyecharts 绘图
通过 Pyecharts 绘制地球图,在官网上有很详细的例子,我们直接套用即可
首先导入相关库
import pyecharts.options as opts
from pyecharts.charts import MapGlobe
定义地球图函数并绘制
data = [x for _, x in covid_data]
low, high = min(data), max(data)
c = (
MapGlobe()
.add_schema()
.add(
maptype="world",
series_name="World Covid Data",
data_pair=covid_data,
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
min_=low,
max_=high,
range_text=["max", "min"],
is_calculable=True,
range_color=["lightskyblue", "yellow", "orangered"],
)
)
)
c.render_notebook()
这样我们得到如下全球各国新管确诊人数分布图
部署为 Web 服务
当前我们所有的代码都是运行在 Jupyter 当中的,如果要分享给其他人,并不是十分的方便,我们可以将整体代码部署成一个 Web 服务,这样其他人就可以方便的通过浏览器来查看该地球图了
我们先创建项目目录,命名为 flask_map
,再将本地安装的 Pyecharts
目录下的 templates
文件夹拷贝到该目录下,同时再创建 data
文件夹和 main.py
文件,Pyecharts 模板位置如下:
pyecharts.render.templates
我们将数据集 owid-covid-data.csv
放到 data
文件夹下,再编写 main.py
文件
# coding = utf-8
"""
======================
@author:luobo
@time:2022/7/2:14:32
@email:
@File: main.py
======================
"""
from flask import Flask, render_template
from jinja2 import Markup, Environment, FileSystemLoader
from pyecharts.globals import CurrentConfig
# 关于 CurrentConfig,可参考 [基本使用-全局变量]
CurrentConfig.GLOBAL_ENV = Environment(loader=FileSystemLoader("./templates"))
from pyecharts import options as opts
from pyecharts.charts import MapGlobe
import pandas as pd
df = pd.read_csv("data/owid-covid-data.csv")
df_0608 = df[df['date'] == '2022-06-08']
df_new = df_0608[pd.isna(df_0608['continent']) == False]
covid_data = df_new[['location', 'total_cases']].values.tolist()
app = Flask(__name__, static_folder="templates")
def Map_base():
data = [x for _, x in covid_data]
low, high = min(data), max(data)
c = (
MapGlobe()
.add_schema()
.add(
maptype="world",
series_name="World Covid Data",
data_pair=covid_data,
is_map_symbol_show=False,
label_opts=opts.LabelOpts(is_show=False),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
min_=low,
max_=high,
range_text=["max", "min"],
is_calculable=True,
range_color=["lightskyblue", "yellow", "orangered"],
)
)
)
return c
@app.route("/")
def index():
c = Map_base()
c.render('templates/Map.html')
return render_template("Map.html")
if __name__ == "__main__":
app.run()
这样,当我们启动 Flask 服务器之后,只需要访问根目录(/),就会在 templates
目录下生成 Map.html
文件,也会在浏览器正常展示地球图了
tup2
至于如何将本地 Web 应用部署到公网上,我们在后面的文章中再介绍吧!
来源:https://juejin.cn/post/7124632143895986183


猜你喜欢
- downsample 在最新版本里面修改了位置from theano.tensor.single import downsample (旧版
- 1.安装Apache 在终端中输入下面的命令就可以安装Apache了:sudo yum install httpdsudo的意思是
- 前言上篇文章相信大家已经了解了pytest在cmd下结合各种命令行参数如何运行测试用例,并输出我们想要看到的信息。那么今天会讲解一下pyte
- 简单来说,三种方法是为了删除字符串中不同位置的指定字符。其中,strip()用于去除字符串的首尾字符,同理,lstrip()用于去除左边的字
- MySQL 提供了几种用于查看服务器版本的方法,本文给大家做个简单的介绍。方法一:登录 MySQL每次通过 mysql 客户端连接服务器之后
- 渲染引擎渲染引擎的职责是……渲染,也就是把请求的内容显示到浏览器屏幕上。默认情况下渲染引擎可以显示HTML,XML文档以及图片。 通过插件(
- 今天学习了小程序实现路由跳转,我在操作的时候在控制台出现以下错误信息。翻译过来的意思是:(承诺中)微程序错误{“errMsg”:“n”avi
- 本文实例分析了Python二分法搜索算法。分享给大家供大家参考。具体分析如下:今天看书时,书上提到二分法虽然道理简单,大家一听就明白但是真正
- Numpy能够读写磁盘上的文本数据或二进制数据。将数组以二进制格式保存到磁盘np.load和np.save是读写磁盘数组数据的两个主要函数,
- 对于爬虫中部分网站设置了请求次数过多后会封杀ip,现在模拟浏览器进行爬虫,也就是说让服务器认识到访问他的是真正的浏览器而不是机器操作简单的直
- ltp是哈工大出品的自然语言处理工具箱, pyltp是python下对ltp(c++)的封装.在linux下我们很容易的安装pyltp, 因
- 1. 创建shell脚本 vim backupdb.sh 创建脚本内容如下: #!/bin/sh db_user="root&qu
- 最近在使用Python的过程中,发现网上很少提到在使用post方式时,怎么传一个数组作为参数的示例,此处根据自己的实践经验,给出相关示例:单
- 在python中,提到如何计算多维数组和矩阵,那一定会想到numpy。numpy定义了矩阵和数组,为它们提供了相关的运算。size中文解释为
- 本文实例讲述了Python Excel表格创建乘法表。分享给大家供大家参考,具体如下:题目如下:创建程序multiplicationTabl
- 可以采用exec方法注意:使exec不能返回一些变量的值,而且当前的变量值在exec的语句里无效。declare @tempStr
- 题目:如何在python中实现整数的二进制循环移位?概述在python中,可以通过<<以及>>运算符实现二进制的左移
- 本文实例讲述了Python爬虫PyQuery库基本用法。分享给大家供大家参考,具体如下:PyQuery库也是一个非常强大又灵活的网页解析库,
- 要开发一个基于数据库的应用系统,其中最关键的一步就是整个系统所依据的数据库的建模设计,从逻辑的到物理的,一个环节疏于设计,整个的应用系统便似
- /** * Ajax分页功能 * 在需要分页的地方添加<ul class="pagination"><