网站开发指南网上举报平台
网站开发指南,网上举报平台,百事可乐运用了哪种网络营销方式,广州专业的免费建站一、数据可视化 - 折线图可视化 1.1、json数据格式
演示JSON数据和Python字典的相互转换import json
# 准备列表#xff0c;列表内每一个元素都是字典#xff0c;将其转换为JSON
data [{name: 张大山,
演示JSON数据和Python字典的相互转换import json
# 准备列表列表内每一个元素都是字典将其转换为JSON
data [{name: 张大山, age: 11}, {name: 王大锤, age: 13}, {name: 赵小虎, age: 16}]
json_str json.dumps(data, ensure_asciiFalse)
print(type(json_str))
print(json_str)
# 准备字典将字典转换为JSON
d {name:周杰轮, addr:台北}
json_str json.dumps(d, ensure_asciiFalse)
print(type(json_str))
print(json_str)
# 将JSON字符串转换为Python数据类型[{k: v, k: v}, {k: v, k: v}]
s [{name: 张大山, age: 11}, {name: 王大锤, age: 13}, {name: 赵小虎, age: 16}]
l json.loads(s)
print(type(l))
print(l)
# 将JSON字符串转换为Python数据类型{k: v, k: v}
s {name: 周杰轮, addr: 台北}
d json.loads(s)
print(type(d))
print(d) 1.2、pyecharts模块介绍 1.3、pyecharts快速入门 演示pyecharts的基础入门# 导包
from pyecharts.charts import Line
from pyecharts.options import TitleOpts, LegendOpts, ToolboxOpts, VisualMapOpts# 创建一个折线图对象
line Line()
# 给折线图对象添加x轴的数据
line.add_xaxis([中国, 美国, 英国])
# 给折线图对象添加y轴的数据
line.add_yaxis(GDP, [30, 20, 10])# 设置全局配置项set_global_opts来设置,
line.set_global_opts(title_optsTitleOpts(titleGDP展示, pos_leftcenter, pos_bottom1%),legend_optsLegendOpts(is_showTrue),toolbox_optsToolboxOpts(is_showTrue),visualmap_optsVisualMapOpts(is_showTrue),
)# 通过render方法将代码生成为图像
line.render() 1.4、数据处理 1.5、创建折线图 运行效果图
二、数据可视化 - 地图可视化
2.1 基础地图使用 演示河南省疫情地图开发import json
from pyecharts.charts import Map
from pyecharts.options import *# 读取文件
f open(C:/疫情.txt, r, encodingUTF-8)
data f.read()
# 关闭文件
f.close()# 获取河南省数据
# json数据转换为python字典
data_dict json.loads(data)
# 取到河南省数据
cities_data data_dict[areaTree][0][children][3][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))# 手动添加济源市的数据
data_list.append((济源市, 5))# 构建地图
map Map()
map.add(河南省疫情分布, data_list, 河南)
# 设置全局选项
map.set_global_opts(title_optsTitleOpts(title河南省疫情地图),visualmap_optsVisualMapOpts(is_showTrue, # 是否显示is_piecewiseTrue, # 是否分段pieces[{min: 1, max: 99, lable: 1~99人, color: #CCFFFF},{min: 100, max: 999, lable: 100~9999人, color: #FFFF99},{min: 1000, max: 4999, lable: 1000~4999人, color: #FF9966},{min: 5000, max: 9999, lable: 5000~99999人, color: #FF6666},{min: 10000, max: 99999, lable: 10000~99999人, color: #CC3333},{min: 100000, lable: 100000, color: #990033},])
)# 绘图
map.render(河南省疫情地图.html) 2.2 疫情地图-国内疫情地图 演示全国疫情可视化地图开发import json
from pyecharts.charts import Map
from pyecharts.options import *# 读取数据文件
f open(C:/地图数据疫情.txt, r, encodingUTF-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_optsTitleOpts(title全国疫情地图),visualmap_optsVisualMapOpts(is_showTrue, # 是否显示is_piecewiseTrue, # 是否分段pieces[{min: 1, max: 99, lable: 1~99人, color: #CCFFFF},{min: 100, max: 999, lable: 100~9999人, color: #FFFF99},{min: 1000, max: 4999, lable: 1000~4999人, color: #FF9966},{min: 5000, max: 9999, lable: 5000~99999人, color: #FF6666},{min: 10000, max: 99999, lable: 10000~99999人, color: #CC3333},{min: 100000, lable: 100000, color: #990033},])
)# 绘图
map.render(全国疫情地图.html) 2.3 疫情地图-省级疫情地图 演示河南省疫情地图开发import json
from pyecharts.charts import Map
from pyecharts.options import *# 读取文件
f open(C:/疫情.txt, r, encodingUTF-8)
data f.read()
# 关闭文件
f.close()# 获取河南省数据
# json数据转换为python字典
data_dict json.loads(data)
# 取到河南省数据
cities_data data_dict[areaTree][0][children][3][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))# 手动添加济源市的数据
data_list.append((济源市, 5))# 构建地图
map Map()
map.add(河南省疫情分布, data_list, 河南)
# 设置全局选项
map.set_global_opts(title_optsTitleOpts(title河南省疫情地图),visualmap_optsVisualMapOpts(is_showTrue, # 是否显示is_piecewiseTrue, # 是否分段pieces[{min: 1, max: 99, lable: 1~99人, color: #CCFFFF},{min: 100, max: 999, lable: 100~9999人, color: #FFFF99},{min: 1000, max: 4999, lable: 1000~4999人, color: #FF9966},{min: 5000, max: 9999, lable: 5000~99999人, color: #FF6666},{min: 10000, max: 99999, lable: 10000~99999人, color: #CC3333},{min: 100000, lable: 100000, color: #990033},])
)# 绘图
map.render(河南省疫情地图.html) 三、数据可视化 - 动态柱状图
案例效果
3.1 基础柱状图 演示基础柱状图的开发from pyecharts.charts import Bar
from pyecharts.options import LabelOpts# 使用Bar构建基础柱状图
bar Bar()
# 添加x轴的数据
bar.add_xaxis([中国, 美国, 英国])
# 添加y轴数据
bar.add_yaxis(GDP, [30, 20, 10], label_optsLabelOpts(positionright)) # 设置数值标签在右侧
# 反转x和y轴
bar.reversal_axis()
# 绘图
bar.render(基础柱状图.html) 3.2 基础时间线柱状图 演示带有时间线的柱状图开发from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOpts
from pyecharts.globals import ThemeTypebar1 Bar()
bar1.add_xaxis([中国, 美国, 英国])
bar1.add_yaxis(GDP, [30, 30, 20], label_optsLabelOpts(positionright))
bar1.reversal_axis()bar2 Bar()
bar2.add_xaxis([中国, 美国, 英国])
bar2.add_yaxis(GDP, [50, 50, 50], label_optsLabelOpts(positionright))
bar2.reversal_axis()bar3 Bar()
bar3.add_xaxis([中国, 美国, 英国])
bar3.add_yaxis(GDP, [70, 60, 60], label_optsLabelOpts(positionright))
bar3.reversal_axis()# 构建时间线对象
timeline Timeline({theme: ThemeType.LIGHT})
# 在时间线内添加柱状图对象
timeline.add(bar1, 点1)
timeline.add(bar2, 点2)
timeline.add(bar3, 点3)# 自动播放设置
timeline.add_schema(play_interval1000,is_timeline_showTrue,is_auto_playTrue,is_loop_playTrue
)# 绘图是用时间线对象绘图而不是bar对象了
timeline.render(基础时间线柱状图.html) 3.3 GDP动态柱状图绘制 演示第三个图表GDP动态柱状图开发from pyecharts.charts import Bar, Timeline
from pyecharts.options import *
from pyecharts.globals import ThemeType# 读取数据
f open(C:/1960-2019全球GDP数据.csv, r, encodingGB2312)
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]) # gdp数据# 如何判断字典里面有没有指定的key呢try: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(keylambda element: element[1], reverseTrue)# 取出本年份前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_optsLabelOpts(positionright))# 反转x轴和y轴bar.reversal_axis()# 设置每一年的图表的标题bar.set_global_opts(title_optsTitleOpts(titlef{year}年全球前8GDP数据))timeline.add(bar, str(year))# for循环每一年的数据基于每一年的数据创建每一年的bar对象# 在for中将每一年的bar对象添加到时间线中# 设置时间线自动播放
timeline.add_schema(play_interval1000,is_timeline_showTrue,is_auto_playTrue,is_loop_playFalse
)# 绘图
timeline.render(1960-2019全球GDP前8国家.html)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88517.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!