python使用pyecharts构建柱状图

构建基础柱状图

#导入模块
from pyecharts.charts import Bar
#创建柱状图对象
bar=Bar()
#添加X和Y轴数据
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10])
#生成柱状图
bar.render("中美英GDP.html")

python使用pyecharts构建柱状图_第1张图片

使用reversal_axis()反转x和y轴

#导入模块
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")

python使用pyecharts构建柱状图_第2张图片
可以改变柱状图的颜色。

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"))

python使用pyecharts构建柱状图_第3张图片

基础时间线柱状图的绘制

创建时间线

python使用pyecharts构建柱状图_第4张图片

#导入模块
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")

python使用pyecharts构建柱状图_第5张图片

自动播放时间线

timeline.add_schema(
    play_interval=1000,#单位是ms
    is_auto_play=True,#自动播放
    is_loop_play=True,#循环播放
)

设置主题

python使用pyecharts构建柱状图_第6张图片

timeline=Timeline(
    {"theme":ThemeType.LIGHT}
)

python使用pyecharts构建柱状图_第7张图片

GDP动态柱状图的绘制

列表的排序方法sort

前面学习过的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)

在这里插入图片描述

需求分析

python使用pyecharts构建柱状图_第8张图片

处理数据

python使用pyecharts构建柱状图_第9张图片

总的代码

#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")

python使用pyecharts构建柱状图_第10张图片

你可能感兴趣的:(python基础,python,信息可视化,开发语言)