#导入模块
from pyecharts.charts import Bar
#创建柱状图对象
bar=Bar()
#添加X和Y轴数据
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10])
#生成柱状图
bar.render("中美英GDP.html")
#导入模块
from pyecharts.charts import Bar
#创建柱状图对象
bar=Bar()
#添加X和Y轴数据
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10])
#反转x和y轴
bar.reversal_axis()
#生成柱状图
bar.render("中美英GDP.html")
bar.add_yaxis("GDP",[30,20,10],color="red")
改变数字显示的位置
from pyecharts.options import *
bar.add_yaxis("GDP",[30,20,10],color="red",label_opts=LabelOpts(position="right"))
#导入模块
from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
#创建柱状图对象
bar=Bar()
bar1=Bar()
bar2=Bar()
#添加X和Y轴数据
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10],color="red",label_opts=LabelOpts(position="right"))
bar.reversal_axis()
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis("GDP",[50,100,30],color="red",label_opts=LabelOpts(position="right"))
bar1.reversal_axis()
bar2.add_xaxis(["中国","美国","英国"])
bar2.add_yaxis("GDP",[60,20,50],color="red",label_opts=LabelOpts(position="right"))
bar2.reversal_axis()
#创建时间线对象
timeline=Timeline()
#向时间线对象中添加数据
timeline.add(bar,"2022")
timeline.add(bar1,"2023")
timeline.add(bar2,"2024")
#生成时间线柱状图
timeline.render("中美英GDP.html")
timeline.add_schema(
play_interval=1000,#单位是ms
is_auto_play=True,#自动播放
is_loop_play=True,#循环播放
)
timeline=Timeline(
{"theme":ThemeType.LIGHT}
)
前面学习过的sorted函数可以对数据容器进行排序,但是不能指定排序规则,在后面的数据处理中,我们需要对容器进行排序而且还需要指定排序规则sorted函数就无法实现,我们需要使用sort函数。
sort函数使用方式:列表.sort(key=选择排序依据的函数,reversion=True|False)
参数key:要求传入一个函数,将元素中的每一个元素都传入函数中,返回排序的依据。
参数reversion:是否反转排序的结果。True表示降序,False表示升序。
带名函数形式
#要对嵌套的列表进行排序,普通的sorted就无法实现要使用sort方法
my_list=[["a",100],["b",103],["c",50]]
def choose_sort_key(element):
return element[1]
my_list.sort(key=choose_sort_key,reverse=True)#将元素传入choose_sort_key函数中,通过返回值确定按照谁来排序。
print(my_list)
#要对嵌套的列表进行排序,普通的sorted就无法实现要使用sort方法
my_list=[["a",100],["b",103],["c",50]]
my_list.sort(key=lambda element:element[1],reverse=True)#将元素传入匿名函数中,通过返回值确定按照谁来排序。匿名函数自带返回值
print(my_list)
#GDP柱状图开发
#导入模块
from pyecharts.charts import Bar,Timeline
from pyecharts.options import *
from pyecharts.globals import *
#读取数据
f=open(r"C:\cwy\slsd\毕设\python学习\资料\第1-12章资料\资料\可视化案例数据\动态柱状图数据\1960-2019全球GDP数据.csv","r",encoding="GB2312")
data_lines=f.readlines();
#关闭文件
f.close()
#删除第一条数据
data_lines=data_lines[1:]
#print(data_lines)
#将数据转换为字典格式存储,格式:{年份,[[国家,GDP],[国家,GDP]......],年份,[[国家,GDP],[国家,GDP]......],......}
data_dict={}
for line in data_lines:
year_data=int(line.split(",")[0])
country=line.split(",")[1]
gdp=float(line.split(",")[2])
try:
data_dict[year_data].append([country,gdp])
except KeyError:
data_dict[year_data]=[]
data_dict[year_data].append([country, gdp])
#print(data_dict)
#排序年份
sorted_year_list=sorted(data_dict)
#创建时间线对象,更改主题
timeline=Timeline({"theme" :ThemeType.LIGHT})
#for循环每一年的数据,基于每一年的数据创建每一年的bar对象
#在for循环中将每一年的bar对象添加到时间线中
for year in sorted_year_list:
bar=Bar()
data_list=data_dict[year]
data_list.sort(key=lambda element:element[1],reverse=True)
data_list=data_list[:8]
data_list.reverse()
city_list=[]
gdp_list=[]
for sort_data_list in data_list:
city_list.append(sort_data_list[0])
gdp_list.append(sort_data_list[1]/100000000)
bar.add_xaxis(city_list)
bar.add_yaxis("gdp(亿)",gdp_list,label_opts=LabelOpts(position="right"))
bar.reversal_axis()
#设置每一年图表的标题
bar.set_global_opts(
title_opts=TitleOpts(title=f"{year}年全球前八GDP数据")
)
timeline.add(bar,year)
#设置时间线自动播放
timeline.add_schema(
play_interval=1000,
is_auto_play=True,
is_loop_play=False
)
#绘图
timeline.render("1960-2019全球GDP前八.html")