目录

前提:

一、折线图可视化案例

二、地图可视化案例

三、动态柱状图可视化案例


前提:

如果想要做出数据可视化效果图, 可以借助pyecharts模块来完成。

安装pyecharts模块步骤:

1.在pycharm编辑器中按照如图步骤进行操作。

2.在Options中输入-i https://pypi.tuna.tsinghua.edu.cn/simple可以提高模块下载的速度。

安装模块完成。

一、折线图可视化案例

1.在F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\折线图数据 目录下有三个txt文件,是本次折线图可视化案例的数据。

2.在文本数据中下图中红框中的数据去掉即为json格式的数据,我们可是使用懒人工具-json在线解析-在线JSON格式化工具-json校验-程序员必备 进行格式化方便查看。

转换好的视图如下图所示:

3.在pycharm编辑其中输入如下代码:

import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts, ToolboxOpts# 处理数据
f_us = open("F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\折线图数据\美国.txt","r",encoding="UTF-8")
us_data = f_us.read()    #美国数据f_jp = open("F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\折线图数据\日本.txt","r",encoding="UTF-8")
jp_data = f_jp.read()    #日本数据f_in = open("F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\折线图数据\印度.txt","r",encoding="UTF-8")
in_data = f_in.read()    #印度数据# 去掉不合json规范的开头
us_data = us_data.replace("jsonp_1629344292311_69436(","")
jp_data = jp_data.replace("jsonp_1629350871167_29498(","")
in_data = in_data.replace("jsonp_1629350745930_63180(","")# 去掉不合json规范的结尾
us_data = us_data[:-2]
jp_data = jp_data[:-2]
in_data = in_data[:-2]# json转python字典
us_dict = json.loads(us_data)
jp_dict = json.loads(jp_data)
in_dict = json.loads(in_data)# 获取trend key
us_trend_data = us_dict['data'][0]['trend']
jp_trend_data = jp_dict['data'][0]['trend']
in_trend_data = in_dict['data'][0]['trend']# 获取日期数据,用于x轴,取2020年(到314下标结束)
us_x_data = us_trend_data['updateDate'][:314]
jp_x_data = jp_trend_data['updateDate'][:314]
in_x_data = in_trend_data['updateDate'][:314]# 获取确认数据,用于y轴,取2020年(到314下标结束)
us_y_data = us_trend_data['list'][0]['data'][:314]
jp_y_data = jp_trend_data['list'][0]['data'][:314]
in_y_data = in_trend_data['list'][0]['data'][:314]# 生成图标
line = Line()   #构建折线图对象#  添加x轴数据
line.add_xaxis(us_x_data)  #轴是公用的,所以使用一个国家的即可# 添加y轴数据
line.add_yaxis("美国确诊人数",us_y_data,label_opts=LabelOpts(is_show=False))  #添加美国的y轴数据
line.add_yaxis("日本确诊人数",jp_y_data,label_opts=LabelOpts(is_show=False))  #添加日本的y轴数据
line.add_yaxis("印度确诊人数",in_y_data,label_opts=LabelOpts(is_show=False))  #添加印度的y轴数据# 设置全局选项
line.set_global_opts(# 标题设置title_opts=TitleOpts(title="2020年美日印三国确证人数对比折线图",pos_left="center",pos_bottom="1%"),toolbox_opts=ToolboxOpts(is_show=True)
)# 调用render方法,生成图表
line.render()# 关闭文件
f_us.close()
f_jp.close()
f_in.close()

4.运行项目后,项目目录中就会生成render.html文件,使用浏览器打开就可以看到折线图的效果了。

二、地图可视化案例

本次案例的数据在 F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\地图数据 目录下的疫情.txt文件中。

格式化json数据

1.全国疫情地图

在pycharm编写代码

import json
from pyecharts.charts import Map
from pyecharts.options import *# 读取数据文件
f = open("F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\地图数据\疫情.txt","r",encoding="UTF-8")
data = f.read()     #全部的数据# 关闭文件
f.close()# 取到各省数据
# 将字符串json转换为python的字典
data_dict = json.loads(data)        #基础数据字典# 从字典中取出省份的数据
province_data_list = data_dict["areaTree"][0]["children"]# 组装每个省份和确诊人数为元祖,并各个省的数据都分装入列表中
data_list = [] #绘图需要用的数据列表
for province_data in province_data_list:province_name = province_data["name"]           #省份名称province_confirm = province_data["total"]["confirm"]    #确诊人数data_list.append((province_name,province_confirm))# 创建地图对象
map = Map()# 添加数据
map.add("各省份确诊人数",data_list,"china")# 设置全局配置,定制分段的视觉映射
map.set_global_opts(title_opts = TitleOpts(title="全国疫情地图"),visualmap_opts = VisualMapOpts(is_show=True,   #是否显示is_piecewise=True,   #  是否分段pieces=[{"min":1,"max":99,"label":"1-99人","color":"#CCFFFF"},{"min":100,"max":999,"label":"100-999人","color":"#FFFF99"},{"min":1000,"max":4999,"label":"1000-4999人","color":"#FF9966"},{"min":5000,"max":9999,"label":"5000-9999人","color":"#FF6666"},{"min":10000,"max":99999,"label":"10000-99999人","color":"#CC3333"},{"min":100000,"label":"100000人以上","color":"#990033"},])
)# 绘图
map.render("全国疫情地图.html")

用浏览器打开项目中生成的全国疫情地图.html文件

2.山西省疫情地图

在pycharm编写代码

import json
from pyecharts.charts import Map
from pyecharts.options import *# 读取文件
f = open("F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\地图数据\疫情.txt","r",encoding="UTF-8")
data = f.read()# 关闭文件
f.close()# 获取山西省数据
#将json数据转化为python字典
data_dict = json.loads(data)
# 取到山西省数据
cities_data = data_dict["areaTree"][0]["children"][21]["children"]# 准备数据为元祖并且放入list
data_list = []
for city_data in cities_data:city_name = city_data["name"] + "市"city_confirm = city_data["total"]["confirm"]data_list.append((city_name,city_confirm))# 构建地图
map = Map()
map.add("山西省疫情分布",data_list,"山西")# 设置全局选项
map.set_global_opts(title_opts = TitleOpts(title="山西省疫情地图"),visualmap_opts = VisualMapOpts(is_show=True,   #是否显示is_piecewise=True,   #  是否分段pieces=[{"min":1,"max":99,"label":"1-99人","color":"#CCFFFF"},{"min":100,"max":999,"label":"100-999人","color":"#FFFF99"},{"min":1000,"max":4999,"label":"1000-4999人","color":"#FF9966"},{"min":5000,"max":9999,"label":"5000-9999人","color":"#FF6666"},{"min":10000,"max":99999,"label":"10000-99999人","color":"#CC3333"},{"min":100000,"label":"100000人以上","color":"#990033"},])
)# 绘图
map.render("山西省疫情地图.html")

用浏览器打开项目中生成的山西省疫情地图.html文件

三、动态柱状图可视化案例

本次案例的数据在 F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\动态柱状图数据\全球GDP数据.csv文件中。

在pycharm编写代码

from pyecharts.charts import Bar , Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType# 读取数据
f = open("F:\Python系统学习\Python入门到精通\资料\资料\可视化案例数据\动态柱状图数据\全球GDP数据.csv","r",encoding="GB2312")
data_lines = f.readlines()# 关闭文件
f.close()# 删除第一条数据
data_lines.pop(0)# 将数据转为字典存储,格式为
# { 年份: [ [国家, gdp], [国家,gdp], ......  ], 年份: [ [国家, gdp], [国家,gdp], ......  ], ...... }
# { 1960: [ [美国, 123], [中国,321], ......  ], 1961: [ [美国, 123], [中国,321], ......  ], ...... }
# 先定义字典对象
data_dict = {}
for line in data_lines:year = int(line.split(",")[0])  #年份country = line.split(",")[1]    #国家gdp = float(line.split(",")[2]) #GDPtry:data_dict[year].append([country,gdp])except KeyError:data_dict[year] = []data_dict[year].append([country, gdp])# 创建时间对象
timeline = Timeline({"theme": ThemeType.LIGHT})# 排序年份
sorted_year_list = sorted(data_dict.keys())
for year in sorted_year_list:data_dict[year].sort(key = lambda element : element[1],reverse=True)# 取出本年份前8的国家year_data = data_dict[year][0:8]x_data = []y_data = []for country_gdp in year_data:x_data.append(country_gdp[0])   # x轴添加国家y_data.append(country_gdp[1] / 100000000)   # y轴添加gdp数据# 构建柱状图对象bar = Bar()x_data.reverse()y_data.reverse()bar.add_xaxis(x_data)bar.add_yaxis("GDP(亿)",y_data, label_opts=LabelOpts(position="right"))# 反转x轴和y轴bar.reversal_axis()# 设置每一年图表的标题bar.set_global_opts(title_opts=TitleOpts(title=f"{year}全球前八GDP数据"))timeline.add(bar,str(year))# for循环每一年的数据,基于每一年的数据,创建每一年的bar对象
# 在for中,将每一年的bar对象添加到时间线中# 设置时间线自动播放
timeline.add_schema(play_interval=1000,is_timeline_show=True,is_auto_play=True,is_loop_play=False
)# 绘图
timeline.render("1960-2019全球GDP前八国家.html")

用浏览器打开项目中生成的1960-2019全球GDP前八国家.html文件

注 本文中所用到的资料链接:百度网盘 请输入提取码

数据可视化——折线图、地图、动态柱状图案例相关推荐

  1. 数据处理-数据可视化-折线图的绘制/柱状图绘制(指数级坐标轴)(python版)

    一:折线图的绘制 #encoding=utf-8 import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['Arial U ...

  2. python画柱状图和折线图-Python数据可视化–折线图–柱状图

    from matplotlib import pyplot import random x = list(range(0,100)) y = [random.randint(0,100) for r ...

  3. python 柱状图折线图共用一个图例_Python数据可视化–折线图–柱状图

    from matplotlib import pyplot import random x = list(range(0,100)) y = [random.randint(0,100) for r ...

  4. ECharts数据可视化折线图

    销售统计( sales )-线形图 实现步骤: 寻找官方的类似示例,给予分析, 引入到HTML页面中 按照需求来定制它. 第一步:寻找官方的类似示例,给予分析. 官方参考示例: 链接: Example ...

  5. Pyecharts 折线图与堆积柱状图结合的组合图绘画,折线图数据点在柱状图柱中心

    问题/背景 最近因科研需要,开始浅浅学习pyecharts,并记录在这个过程遇到的问题以及简单的解决办法. 在使用pyecharts画组合图时遇到了折线图的点无法对准柱状图中心的问题,在网上的文章只找 ...

  6. ECharts动态加载数据绘制折线图

    Echarts动态加载数据绘制折线图 ECharts 引入ECharts 步骤 连接数据接口,动态加载图表 动态加载数据,整体代码 折线图绘制 总结 绘制多个图表的方法 ECharts 纯Javasc ...

  7. R语言使用rnorm函数生成正太分布数据、使用plot函数可视化折线图

    R语言使用rnorm函数生成正太分布数据.使用plot函数可视化折线图 目录 R语言使用rnorm函数生成正太分布数据.使用plot函数可视化折线图 R 语言特点 R语言使用rnorm函数生成正太分布 ...

  8. R语言使用rnorm函数生成正太分布数据、使用plot函数可视化折线图、使用mtext函数在Y轴右侧添加文本标签

    R语言使用rnorm函数生成正太分布数据.使用plot函数可视化折线图.使用mtext函数在Y轴右侧添加文本标签 目录 R语言使用rnorm函数生成正太分布数据.使用plot函数可视化折线图.使用mt ...

  9. R语言使用rnorm函数生成正太分布数据、使用plot函数可视化折线图、使用points函数指定数据点的颜色、使用lines函数指定线条的颜色

    R语言使用rnorm函数生成正太分布数据.使用plot函数可视化折线图.使用points函数指定数据点的颜色.使用lines函数指定线条的颜色 目录 R语言使用rnorm函数生成正太分布数据.使用pl ...

最新文章

  1. Kubernetes 集群无损升级实践
  2. 某程序员吐槽:组里新来一位美女同事,男同事们冲上去大献殷勤,过几天又一哄而散!...
  3. android --相机使用详解概述
  4. 以下是关于ASP.NET中保存各种信息的对象的比较,理解这些对象的原理,对制作完善的程序来说是相当有必要的(摘至互联网,并非原创--xukunping)...
  5. 简要安装FreeBSD 6.2及配置桌面环境[zz]
  6. 史上最全的数据库面试题,面试前刷一刷!
  7. Excel中使用名称定义常数
  8. 小学生打扫计算机教室的简报,简报第33期:我校开展“清扫校园”卫生大扫除活动...
  9. 记一次xxl-job执行器Online机器地址(注册节点)加倍问题
  10. matlab合并数据,matlab使用小技巧——数据的拆分与合并
  11. 66.电视噪音动画特效
  12. linux mtr 安装,遇到网络问题?别慌!MTR来帮您
  13. 计算机mac地址怎么读,如何读取MAC地址
  14. 顾盼华发鸿蒙怦然而梦是什么意思,最美的承诺情话
  15. docker搭建fabric
  16. JS判断客户端是否是iOS或者Android手机移动端
  17. GCC编译器安装与下载
  18. android mediaserver Stagefright 漏洞分析
  19. php libev 主动发送,libev学习笔记
  20. tp6----结合AJAX实现分页

热门文章

  1. 如何用Eclipse使用jar包(导入jar包)图解
  2. 商用密码应用与安全性评估要点笔记(密码协议设计、密码功能实现)
  3. 【Arduino】双主板串口通信并将光敏传感器信息上传到阿里云
  4. 政务大数据服务安全能力要求分级方法
  5. 工业互联网平台会出现“一统天下”的操作系统吗?
  6. python 使用 python-docx 读取和写入 word
  7. deviceiocontrol(deviceiocontrol函数)
  8. tk.mybatis - 使用 Example 类进行条件查询
  9. java日历控件开源_6种Google日历的开源替代方案
  10. win10笔记本右下角恢复电量角标显示