一、基础柱状图
# 基础柱状图
# 导包
from pyecharts.charts import Bar
from pyecharts.options import *# 构建柱状图
bar = Bar()
# 添加数据(列表)
x_list = ["张三", "李四", "王五", "赵六"]
y_list = [50, 40, 60, 64]
bar.add_xaxis(x_list)
bar.add_yaxis("年龄", y_list)
# 设置全局配置# 绘图
bar.render()
# 导包
from pyecharts.charts import Bar
from pyecharts.options import *# 构建柱状图
bar = Bar()
# 添加数据(列表)
x_list = ["张三", "李四", "王五", "赵六"]
y_list = [50, 40, 60, 64]
bar.add_xaxis(x_list)
bar.add_yaxis("年龄", y_list, label_opts=LabelOpts(position="right")) # 数值标签在右侧
# 反转xy轴
bar.reversal_axis()
# 绘图
bar.render()
二、动态柱状图 (以gdp变化为例)
1、数据排序
#数据准备
my_list=[["a",33],["b",22],["c",11]]
#一、定义函数使用
def choose_sort_key(element):return element[1]
my_list.sort(key=choose_sort_key,reverse=True)#true降序
print(my_list)
#二、匿名函数
my_list.sort(key=lambda element:element[1],reverse=True)
print(my_list)
2、绘图
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import LabelOpts, TitleOpts# 读取文件
f = open("C:\Users\33376\Desktop\1960-2019全球GDP数据.csv", "r",encoding="GB2312")
data_lines = f.readlines()
# 关闭文件
f.close()
# 删除第一条数据
data_lines.pop(0)
# 将数据转换为字典
data_dict = {}
for line in data_dict:year = int(line.split(",")[0]) # 年份country = line.split(",")[1] # 国家gdp = float(line.split(",")[2]) # gdp有科学计数法用float转换try:data_dict[year].append([country, gdp]) # 将年份的国家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(key=lambda element: element[1], reverse=True) # 以gdp排序# 取出每年前八国家year_data = data_dict[year][0 - 8] # 通过年份取得国家极其gdpx_data = []y_data = []for country_gdp in year_data:x_data.append(country_gdp[0]) # 取出国家y_data.append(country_gdp[1] / 100000000) # 取出gdp# 构建柱状图bar = Bar()x_data.reverse()y_data.reverse()bar.add_xaxis(x_data)bar.add_yaxis("GDP(亿)", year_data, label_opts=LabelOpts(position="right"))# 反转x轴y轴bar.reversal_axis()#设置每一年标题bar.set_global_opts(title_opts=TitleOpts(title=f"{year}年全球gdp前8数据"))timeline.add(bar, str(year))
# 设置自动播放
timeline.add_schema(play_interval=1000,is_timeline_show=True,is_auto_play=True,is_loop_play=False
) # 一秒播放一次,显示,自动播放,不循环播放
# 绘图
timeline.render("1960-2019全球GDP前8国家.html")