营销外贸网站建设,关键词seo排名怎么选,电商网站开发重难点,室内设计平面图立面图效果图版本说明
当前版本号[20230729]。
版本修改说明20230729初版
目录 文章目录 版本说明目录知识总览图Python基础综合案例#xff1a;数据可视化 - 折线图可视化json数据格式什么是jsonjson有什么用json格式数据转化Python数据和Json数据的相互转化 pyecharts模块介绍概况如何…版本说明
当前版本号[20230729]。
版本修改说明20230729初版
目录 文章目录 版本说明目录知识总览图Python基础综合案例数据可视化 - 折线图可视化json数据格式什么是jsonjson有什么用json格式数据转化Python数据和Json数据的相互转化 pyecharts模块介绍概况如何查看官方示例 pyecharts快速入门基础折线图pyecharts有哪些配置选项set_global_opts方法 数据处理创建折线图导入模块折线图相关配置项创建折线图添加数据.add_yaxis相关配置选项set_global_opts全局配置选项 知识总览图 Python基础综合案例数据可视化 - 折线图可视化
效果一2020年印美日新冠累计确诊人数
2020年是新冠疫情爆发的一年, 随着疫情的爆发, 国内外确诊人数成了大家关心的热点, 相信大家都有看过类似的疫情报告. 本案例对印度美国日本三个国家确诊人数的进行了可视化处理, 形成了可视化的疫情确诊人数报告. 效果二全国疫情地图可视化 效果三动态GDP增长图 数据来源
本案例数据全部来自 百度疫情实时大数据报告及公开的全球各国GDP数据
使用的技术
Echarts 是个由百度开源的数据可视化凭借着良好的交互性精巧的图表设计得到了众多开发者的认可. 而 Python 是门富有表达力的语言很适合用于数据处理. 当数据分析遇上数据可视化时pyecharts 诞生了. json数据格式
什么是json
JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据JSON本质上是一个带有特定格式的字符串
主要功能json就是一种在各个编程语言中流通的数据格式负责不同编程语言中的数据传递和交互. 类似于
国际通用语言-英语中国56个民族不同地区的通用语言-普通话
json有什么用
各种编程语言存储数据的容器不尽相同,在Python中有字典dict这样的数据类型, 而其它语言可能没有对应的字典。
为了让不同的语言都能够相互通用的互相传递数据JSON就是一种非常良好的中转数据格式。如下图以Python和C语言互传数据为例 json格式数据转化
json格式的数据要求很严格, 下面我们看一下他的要求
# json数据的格式可以是
{name:admin,age:18} # 也可以是
[{name:admin,age:18},{name:root,age:16},{name:张三,age:20}] Python数据和Json数据的相互转化
# 导入json模块
import json# 准备符合格式json格式要求的python数据
data [{name: 老王, age: 16}, {name: 张三, age: 20}]# 通过 json.dumps(data) 方法把python数据转化为了 json数据
json_data json.dumps(data, ensure_asciiFalse)
print(type(json_data))
print(fpython数据转化为了json数据的结果{json_data})# 通过 json.loads(data) 方法把json数据转化为了 python数据
python_data json.loads(json_data)
print(type(python_data))
print(fjson数据转化为了python数据的结果{python_data})结果如下可见json和python里面对元素要求的格式也不一样一个双引号一个单引号 注 通过 json.dumps(data) 方法把python数据转化为了 json数据 data json.dumps(data) 如果有中文可以带上ensure_asciiFalse参数来确保中文正常转换 通过 json.loads(data) 方法把josn数据转化为了 python列表或字典 data json.loads(data) pyecharts模块介绍
如果想要做出数据可视化效果图, 可以借助pyecharts模块来完成
概况
Echarts 是个由百度开源的数据可视化凭借着良好的交互性精巧的图表设计得到了众多开发者的认可. 而 Python 是门富有表达力的语言很适合用于数据处理.
当数据分析遇上数据可视化时pyecharts 诞生了.
如何查看官方示例
打开官方画廊
https://gallery.pyecharts.org/#/README
使用在前面学过的pip命令即可快速安装PyEcharts模块
pip install pyechartspyecharts快速入门
基础折线图 示例代码
from pyecharts.charts import Line
line Line()
line.add_xaxis([炸鸡, 薯条, 汉堡])
line.add_yaxis(价格, [45, 33, 23])
line.render()生成图表 pyecharts有哪些配置选项
lpyecharts模块中有很多的配置选项, 常用到2个类别的选项:
全局配置选项系列配置选项
set_global_opts方法
这里全局配置选项可以通过set_global_opts方法来进行配置, 相应的选项和选项的功能如下: 全局配置项能做什么 配置图表的标题 配置图例 配置鼠标移动效果 配置工具栏 等整体配置项 系列配置项我们在后面构建案例时讲解
数据处理
原始数据格式: 导入模块: 再根据层级一步步地去获取 对数据进行整理, 让数据符合json格式:
import json
f_us open(F:/美国.txt, r, encodingUTF-8)//打开文件
us_data f_us.read()//全部读出来# 把不符合json数据格式的 jsonp_1629344292311_69436( 去掉 再赋值回us_data
us_data us_data.replace(jsonp_1629344292311_69436(, )# 把不符合json数据格式的 ); 去掉从后往前数去掉最后两个字节
us_data us_data[:-2]# 数据格式符合json格式后,对数据进行转化成字典
us_dict json.loads(us_data)# 获取美国的疫情数据
trend_data us_dict[data][0][trend]# x1_data存放2020年日期数据
x_data trend_data[updateDate][:314]# y1_data存放2020年人数数据
y_data trend_data[list][0][data][:314]print(x_data)
print(y_data)创建折线图
导入模块 折线图相关配置项 创建折线图 这里的Line()是构建类对象我们先不必理解是什么意思后续在Python高阶中进行详细讲解。目前我们简单的会用即可
添加数据 .add_yaxis相关配置选项 set_global_opts全局配置选项
.set_global_opts(# 设置图标题和位置 title_optsopts.TitleOpts(title2020年 印美日 累计确诊人数对比图,pos_leftcenter), # x轴配置项 xaxis_optsopts.AxisOpts(name“时间”), # 轴标题 # y轴配置项 yaxis_optsopts.AxisOpts(name“累计确诊人数”), # 轴标题 # 图例配置项 legend_optsopts.LegendOpts(pos_left‘70%‘), # 图例的位置
)示例代码
import json
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LabelOpts, LegendOpts, ToolboxOpts, AxisPointerOptsf_us open(F:/美国.txt, r, encodingUTF-8)
f_jp open(F:/日本.txt, r, encodingUTF-8)
f_in open(F:/印度.txt, r, encodingUTF-8)us_data f_us.read()
jp_data f_jp.read()
in_data f_in.read()us_data us_data.replace(jsonp_1629344292311_69436(, )
jp_data jp_data.replace(jsonp_1629350871167_29498(, )
in_data in_data.replace(jsonp_1629350745930_63180(, )us_data us_data[:-2]
jp_data jp_data[:-2]
in_data in_data[:-2]us_dict json.loads(us_data)
jp_dict json.loads(jp_data)
in_dict json.loads(in_data)trendus_data us_dict[data][0][trend]
trendjp_data jp_dict[data][0][trend]
trendin_data in_dict[data][0][trend]us_x_data trendus_data[updateDate][:314]
jp_x_data trendjp_data[updateDate][:314]
in_x_data trendin_data[updateDate][:314]us_y_data trendus_data[list][0][data][:314]
jp_y_data trendjp_data[list][0][data][:314]
in_y_data trendin_data[list][0][data][:314]epidemic_line Line() //构建折线图对象
epidemic_line.add_xaxis(us_x_data) //x轴上的数据是共用的所以使用一个国家的数据即可
epidemic_line.add_yaxis(美国确诊人数, us_y_data, label_optsLabelOpts(is_showFalse))
epidemic_line.add_yaxis(日本确诊人数, jp_y_data, label_optsLabelOpts(is_showFalse))
epidemic_line.add_yaxis(印度确诊人数, in_y_data, label_optsLabelOpts(is_showFalse))
//label_optsLabelOpts(is_showFalse) 是指不显示标签上的数字看起来就不会那么杂epidemic_line.set_global_opts(title_optsTitleOpts(title2020年美日印确诊人数对比折线图, pos_leftcenter, pos_bottom1%),legend_optsLegendOpts(is_showTrue),toolbox_optsToolboxOpts(is_showTrue),axispointer_optsAxisPointerOpts()
)#调用方法生成图表
epidemic_line.render()#关闭文件对象
f_us.close()
f_jp.close()
f_in.close()折现图以下