大体思路:
通过pyecharts等库+一个for循环批量绘制近几个月每天的图,最后通过pr将图片合成
先看一下某一天的样图,用pr组合起来之后就是个动态的了

文章目录

  • 安装pyecharts库
  • 数据来源
  • 代码部分
    • 1.导入库
    • 2.将路径中所有文件找出保存至列表
    • 3.处理导入的数据
    • 4.地图图表绘制
    • 5.导出生成图片
    • 5.代码汇总
  • 小结

安装pyecharts库

首先先安装pyecharts库,cmd中输入

pip install pyecharts

自从pyecharts版本升级后,pyecharts 将不再自带地图 js 文件,所以需要自行下载地图图标,按照自己的需求下载不同的地图


pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install echarts-china-misc-pypkg
pip install echarts-united-kingdom-pypkg

安装好之后就可以来进行制图了
这里提供一个对照的中文功能手册,很详细
http://pyecharts.org/#/zh-cn/intro

数据来源

这里我就不直接给出数据了,要通过自己劳动所得。
提供一个up主的视频,很好的资源:
https://www.bilibili.com/video/BV1WE411K7jB?t=26

得到一个这样子的excel的表格后,会拥有到当天为止所有城市的所有数据,但是,在一个excel表格当中,他不好提去数据啊来导入啊,所以我们按照日期来将其拆分为n哥.xlsx文件
这里用一个叫方方格子的辅助工具

  1. 先打开网址,将其下载安装
    http://www.ffcell.com/
  2. 打开excel后,点击拆分工作表。

    按照图片进行操作,选择保存路径,然后你就会发现被拆分成很多不同的文件了,这样子我们就可以通过os库批量导入这些文件。

代码部分

1.导入库

下面是我们所用到的所有库
包括pandas、pyecharts、os、snapshot库
主要作用
pandas库用来处理导入的文件
pyecharts用来作图
os库来找出当前路径下所有的.xlsx文件
snapshot库用来将导出的文件转化为.png格式

import pandas as pd
from pyecharts.globals import CurrentConfig, NotebookType
CurrentConfig.NOTEBOOK_TYPE = NotebookType.JUPYTER_LAB
from pyecharts.charts import Map
from pyecharts import options as opts
from snapshot_pyppeteer import snapshot
from pyecharts.render import make_snapshot
import os

2.将路径中所有文件找出保存至列表

这里之前没有接触过pandas库,感觉pandas库应该有操作可以代替os库的操作,这里可以自行查一下

start = time.perf_counter()
items = os.listdir(".")
newlist = []
for names in items:if names.endswith(".xlsx"):newlist.append(names)

3.处理导入的数据

首先通过pandas库将导入数据转换成列表类型
通过for循环对列表进行操作,求得 live 治愈人数 dies 死亡人数 alls 全国总共确诊人数等数据,对后面过程有用

    df = pd.read_excel(url)df_1 = df['省份'].tolist()df_2 = df['累计确诊'].tolist()df_3 = df['死亡'].tolist()df_4 = df['治愈'].tolist()remain=[]ans,live,die,alls=0,0,0,0len1=len(df_2)flag=0for i in range(len1):x=df_2[i]-df_3[i]-df_4[i];if(df_1[i]=='海南'):df_1.append('南海诸岛')flag=xremain.append(x)ans+=xlive+=df_4[i]die+=df_3[i]alls+=df_2[i]if(flag!=0):remain.append(flag)

这两句是把每个省现存确诊人数由大到小进行排序,生成一个排名的二维列表,从而对后面操作有用

    zipped = dict(zip(df_1,remain))sorted_zip=sorted(zipped.items(),key=lambda x:x[1],reverse=True)

4.地图图表绘制

设置函数
nations 国家列表
values 各省现存确诊人数列表
sum 全国现存确诊人数
date 当天日期
rating排名二维列表
live 治愈人数
dies 死亡人数
alls 全国总共确诊人数

def map_visualmap(nations, values,sum,date,rating,live,dies,alls):

这里给的是图片格式,拒绝抄袭(实在不想写那你可以私聊我),再说一遍所有的操作函数都在这个使用手册中,如果看不懂使用手册,那就现去学类和继承,或者对应着图片的操作能做出来图片中的所有操作,在手册中都是可以找得到的
在将某些数据放在图上的时候,因为你具体不知道那个点的坐标,所以你可能需要多次来进行微调才能把你想要放的东西放置到目标位置。

主要思路:
1.左上角使用标题与副标题+传过来的(利用字符串可以直接拼接的特性) sum 全国现存确诊人数 date 当天日期 live 治愈人数 dies 死亡人数 alls 全国总共确诊人数这几个参数组合而成

2.中间的地图是通过.add操作将nations 国家列表和 values 各省现存确诊人数列表插入到地图当中去的

3.右下角是通过GraphicGroup:原生图形元素组件+排好序的二维列表来实现的(利用字符串可以直接拼接的特性)

4.中间的地图是通过.add操作将nations 国家列表和 values 各省现存确诊人数列表插入到地图当中去的

1.前三点是通过set_global_opts进行设置从而使用的:
里面对应手册都会有等等不同的操作,这里列举一个操作内容

title_opts    //左上角的内容
graphic_opts        //右下角的内容
visualmap_opts      //左下角的分色
看下面的操作,
标题内容  title=""
标题距离左边距和右边距的距离pos_left=20,pos_top=10
标题的格式 title_textstyle_opts
副标题内容subtitle=""
副标题距离标题的距离item_gap=
副标题样式 subtitle_textstyle_opts=
title_opts=opts.TitleOpts(title="COVID-19现存确诊人数变化专题地图",pos_left=20,pos_top=10,title_textstyle_opts=opts.TextStyleOpts(color='#FF4500',font_size=25),subtitle=date[0]+"月"+date[1:3]+"日全国:\n\n累计确诊人数:"+str(alls)+"\n\n"+"现存确诊人数: "+str(sum)+"\n\n"+"治愈人数: "+str(live)+"\n\n"+"死亡人数: "+str(dies),item_gap=20,subtitle_textstyle_opts=opts.TextStyleOpts(color='#FF8C00',font_size=18)),

2.如何将数据添加到地图上呢?
主要是通过他的.add操作

.add("", [list(z) for z in zip(nations, values)], "china",is_map_symbol_show=False)

3.其他设置
这里这个map()类是要导入进来的,如果你不需要设置背景颜色,只需要这样写Map(),把里面的内容去掉即可

Map(init_opts=opts.InitOpts(bg_color='#F0F0F0'))

最后返回c即可

各种小细节在你看说明书的时候可以使用

http://pyecharts.org/#/zh-cn/intro
http://pyecharts.org/#/zh-cn/intro
http://pyecharts.org/#/zh-cn/intro

5.导出生成图片

这一主要运用了

from snapshot_pyppeteer import snapshot
from pyecharts.render import make_snapshotmake_snapshot(snapshot,c.render(),url[-8:-5]+'.png')

5.代码汇总

这里不上传函数里面得代码了就。

items = os.listdir(".")
newlist = []
for names in items:if names.endswith(".xlsx"):newlist.append(names)for url in newlist:df = pd.read_excel(url)df_1 = df['省份'].tolist()df_2 = df['累计确诊'].tolist()df_3 = df['死亡'].tolist()df_4 = df['治愈'].tolist()remain=[]ans,live,die,alls=0,0,0,0len1=len(df_2)flag=0for i in range(len1):x=df_2[i]-df_3[i]-df_4[i];if(df_1[i]=='海南'):df_1.append('南海诸岛')flag=xremain.append(x)ans+=xlive+=df_4[i]die+=df_3[i]alls+=df_2[i]if(flag!=0):remain.append(flag)#从大到小进行排序zipped = dict(zip(df_1,remain))sorted_zip=sorted(zipped.items(),key=lambda x:x[1],reverse=True)print(cnt)cnt+=1# 实例化地图函数c = map_visualmap(nations=df_1, values=remain,sum=ans,rating=sorted_zip,date=url[-8:-5],live=live,dies=die,alls=alls)make_snapshot(snapshot,c.render(),url[-8:-5]+'.png')#c.render(path=r'C:\Users\Xiaoxiaoxiao\Desktop\地图\网页结果'+url[-8:-5]+".html")

小结

经过上述得步骤之后,你就可以点即运行按钮,坐等收生成(大约需要十几分钟)这一百多实时数据更新得地图了,然后通过pr简单得图片合成即可得道一个很好的实时更新视频了。
重点是学习如何应用pyecharts库,也就是说,你需要看懂那个中文使用手册,只要看懂他,并且知道如何调用里面的函数,这个库可能就没有什么地方可以难得倒你了吧。

菜鸡一枚,dalao勿喷,有问题一起交流

数据可视化[python-pyecharts]制作中国各省份近三个月新型冠状病毒肺炎变化图相关推荐

  1. Python数据可视化-使用 Pyecharts 制作 Timeline(时间轴组件)详解

    内容介绍 本文介绍基于 Python3 的 Pyecharts 制作 Timeline(时间轴组件) 时需要使用的设置参数和常用模板案例,可根据实际情况对案例中的内容进行调整即可. 使用 Pyecha ...

  2. 数据可视化之Pyecharts制作酷炫图表

    python 擅于数据处理,echarts 是百度开源的数据可视化项目,将二者结合起来,也就诞生了 pyecharts .本文将从相关特性.版本安装.绘图步骤.图表示例.图表组合.应用总结 等个6方面 ...

  3. Py之pyecharts:python包之数据可视化包pyecharts简介、安装、使用方法之详细攻略

    Py之pyecharts:python包之数据可视化包pyecharts简介.安装.使用方法之详细攻略 目录 pyecharts简介 pyecharts的安装 pyecharts的使用方法 1.图形绘 ...

  4. python pyecharts_基于Python的数据可视化库pyecharts介绍

    什么是pyecharts? pyecharts 是一个用于生成 Echarts 图表的类库. echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生 ...

  5. python 3d大数据可视化_基于Python的数据可视化库pyecharts介绍

    什么是pyecharts? pyecharts 是一个用于生成 Echarts 图表的类库. echarts 是百度开源的一个数据可视化 JS 库,主要用于数据可视化.pyecharts 是一个用于生 ...

  6. 实验报告-Python数据可视化之Pyecharts

    课程:大数据可视化 实验室名称: 指导老师: 实训日期: 年 月 日 实训题目:Python数据可视化之Pyecharts 实训目的: 一.python的安装与基本使用 二.创建py项目 三.pyec ...

  7. 用Python爬取新型冠状病毒肺炎实时数据,pyecharts v1.x绘制省市区疫情地图

    说明: 本文是Python可视化技术结合时下热点进行进行开发.讲解的案例,也课程思政的一个形式.文章遵守CSDN平台规定和国家法规(非新闻资质的网站不允许发布疫情数据),对运行结果(2020年2月8日 ...

  8. 数据可视化:pyecharts 的几个实例

    数据可视化:pyecharts 的几个实例 Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可.而 Python 是一门富有表达力的语言,很适合用 ...

  9. 【Dash搭建可视化网站】项目10:疫情数据可视化大屏制作步骤详解

    疫情数据可视化大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完善 ...

最新文章

  1. 2021牛客暑期多校训练营1 I-Increasing Subsequence(期望dp+优化)
  2. UE4 动态创建Actor并且附加static mesh
  3. linux版微信 能发表情包的,仿微信在对话框文字中插入Emoji表情包
  4. 【Java】hashCode和identityHashCode的区别
  5. 华为暂停一般性社招;嘀嗒出行系统崩溃;美团和摩拜账号互通 | 极客头条
  6. java list排序 sort_Java排序方法sort的使用详解
  7. 手机扣费软件大曝光 金山手机卫士帮您免费检测
  8. 论文笔记_S2D.57_2018-IROS_LIMO:激光雷达单目视觉里程计
  9. 某计算机有五级中断L4,2011计算机基础考研组成原理部分
  10. css之px自动转rem—“懒人”必备
  11. 计算机如何安装pdf,pdf虚拟打印机是什么?怎么安装到电脑里
  12. LibVLC —— 常用函数解析
  13. java detach_jQuery中detach()方法用法实例
  14. Mac M1安装ta-lib
  15. 互联神州---AK爆头战报
  16. JavaME证书的制作和介绍
  17. 用python对excel进行数据处理与分析操作
  18. 开发那点事(四)vue实现一个日历插件
  19. #trie#洛谷 4098 JZOJ 3226 ALO
  20. Linux-centos安装MySQL8.0.22连接驱动文件mysql-connector-java-8.0.22-1.el7.noarch.rpm

热门文章

  1. dev编译器:c++如何让其输出小数16.84,浮点数类型数据!
  2. Bagging与随机森林算法原理小结
  3. 数据维度爆炸怎么办?详解 5 大常用的特征选择方法
  4. OpenCV图像旋转的原理与技巧
  5. 任务调度器leetcode621
  6. Flutter控件--Switch 和 SwitchListTile
  7. 洛谷 P1309 瑞士轮
  8. SpringMVC,针对不支持PUT、DELETE提交的游览器处理方式
  9. IE8经常停止工作和显示异常
  10. Visual Studio中断NPM套件库服务