黑马程序员python教程,8天python从入门到精通,学python看这套就

第105节,你们的地图也是这样子的吗?
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
# 数据对象创建
map = Map()
# 数据准备
data =[
("北京市",99),
("上海市",199),
("广动省",399),
("江苏省",699),
("山东省",999)
]
# 数据添加
map.add("地图",data,"china",)
# 设置全局的数据
map.set_global_opts(
visualmap_opts=VisualMapOpts(
is_show=True,
is_piecewise=True,
# 数据范围校准
pieces=[
{"min":1 ,"max": 9,"label":"1-9人", "color":"#CCFFFF"},
{"min":10 ,"max": 99,"label":"10-99人", "color":"#FFFF99"},
{"min":100 ,"max":499 ,"label":"100-499人", "color":"#FF9966"},
{"min":500 ,"max": 999,"label":"500-999人", "color":"#FF6666"},
{"min":1000 ,"max": 9999,"label":"1000-9999人", "color":"#CC3333"},
{"min":10000,"label":"10000以上", "color":"#990033"}
])
)
# 数据生成
map.render()
#
P106 数据补充,最笨的方法
import json
from pyecharts.charts import Map
from pyecharts.options import LabelOpts
from pyecharts.options import *
from pyecharts import options as opts
fc = open("D:/疫情.txt",'r',encoding='UTF-8')
fc_data = fc.read()
fc_json = json.loads(fc_data)
fc_province_list = fc_json["areaTree"][0]["children"]
# 接收需要的数据
data_list = []
# 循环获取需要的数据
for province_list in fc_province_list :
province_name = province_list["name"]
if province_name == "新疆":
province_name = province_name+"维吾尔自治区"
elif province_name == "西藏":
province_name = province_name + "自治区"
elif province_name == "广西":
province_name = province_name + "壮族自治区"
elif province_name == "重庆" or province_name == "北京" or province_name == "天津":
province_name = province_name + "市"
elif province_name == "内蒙古" :
province_name = province_name + "自治区"
elif province_name == "宁夏":
province_name = province_name + "回族自治区"
elif province_name == "香港" or province_name == "澳门":
province_name = province_name + "特别行政区"
else:
province_name = province_name + "省"
province_confirm = province_list["total"]["confirm"]
data_list.append((province_name,province_confirm))
map = Map()
map.add("个省份确诊人数",data_list,"china")
#全局选项
map.set_global_opts(
title_opts=TitleOpts("全国疫情地图"),
visualmap_opts=VisualMapOpts(
is_show=True,
is_piecewise=True,
pieces=[
{"min": 1, "max": 9, "label": "1-9人", "color": "#CCFFFF"},
{"min": 10, "max": 99, "label": "10-99人", "color": "#FFFF99"},
{"min": 100, "max": 499, "label": "100-499人", "color": "#FF9966"},
{"min": 500, "max": 999, "label": "500-999人", "color": "#FF6666"},
{"min": 1000, "max": 9999, "label": "1000-9999人", "color": "#CC3333"},
{"min": 10000, "label": "10000以上", "color": "#990033"}
]
)
)
map.render()
fc.close()
from pyecharts.charts import Bar
from pyecharts.options import *
from pyecharts.charts import Timeline
from pyecharts.globals import ThemeType
# 文件读取
f = open("D:/1960-2019全球GDP数据.csv",'r',encoding="GB2312")
# 读取所有行,并接收
data_lines = f.readlines()
# 关闭文件
f.close()
# 删除第一条数据
data_lines.pop(0)
# 数据获取
data_dict = {}
# 获取每行的数据
for lines in data_lines:
year = int(lines.split(",")[0])
country = lines.split(",")[1]
gdp = float(lines.split(",")[2])
try:
data_dict[year].append([country,gdp])
except KeyError:
data_dict[year] = []
data_dict[year].append([country,gdp])
# print(data_dict)
# 排序年份
sort_list_year = sorted(data_dict.keys())
# 创建时间线对象
timeLine = Timeline({"theme":ThemeType.LIGHT})
# 循环获取国家数据
for year in sort_list_year:
# 取出前8的国家
data_dict[year].sort(key=lambda element:element[1],reverse=True)
year_date = data_dict[year][0:8]
# 构建柱状图
x_data =[]
y_data =[]
for country_gdp in year_date:
x_data.append(country_gdp[0])
y_data.append(country_gdp[1]/100000000)
# 构建柱状图
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}年全球前8GDP数据")
)
timeLine.add(bar,str(year))
timeLine.add_schema(
play_interval=500,
is_timeline_show=True,
is_auto_play=True,
is_loop_play=False
)
timeLine.render("1960-2014年全球GDP数据.html")

