当前位置:   article > 正文

python使用pyecharts构建柱状图_python柱状图自定义y轴

python柱状图自定义y轴

构建基础柱状图

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

在这里插入图片描述

使用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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述
可以改变柱状图的颜色。

bar.add_yaxis("GDP",[30,20,10],color="red")
  • 1

改变数字显示的位置

from pyecharts.options import *
bar.add_yaxis("GDP",[30,20,10],color="red",label_opts=LabelOpts(position="right"))
  • 1
  • 2

在这里插入图片描述

基础时间线柱状图的绘制

创建时间线

在这里插入图片描述

#导入模块
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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

在这里插入图片描述

自动播放时间线

timeline.add_schema(
    play_interval=1000,#单位是ms
    is_auto_play=True,#自动播放
    is_loop_play=True,#循环播放
)
  • 1
  • 2
  • 3
  • 4
  • 5

设置主题

在这里插入图片描述

timeline=Timeline(
    {"theme":ThemeType.LIGHT}
)
  • 1
  • 2
  • 3

在这里插入图片描述

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
匿名函数形式:

#要对嵌套的列表进行排序,普通的sorted就无法实现要使用sort方法
my_list=[["a",100],["b",103],["c",50]]
my_list.sort(key=lambda element:element[1],reverse=True)#将元素传入匿名函数中,通过返回值确定按照谁来排序。匿名函数自带返回值
print(my_list)
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

需求分析

在这里插入图片描述

处理数据

在这里插入图片描述

总的代码

#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")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/513324
推荐阅读
相关标签
  

闽ICP备14008679号