赞
踩
sorted 是内置函数,可以对任何可迭代的对象进行排序,并返回一个排序后的列表。它不会修改原对象,而是返回一个新的列表。
sort 是列表对象的方法,仅能对列表对象进行排序,并修改原对象,没有返回值。
列表的sort方法
列表.sort(key = 选择排序依据的函数, reverse = True|False)
# 准备列表
my_list = [["a", 33], ["b", 55], ["c", 11]]
# # 排序,基于带名函数
# def choose_sort_key(element):
# return element[1]
#
#
# my_list.sort(key=choose_sort_key, reverse=True)
# 排序,基于lambda匿名函数
my_list.sort(key=lambda element: element[1], reverse=True)
print(my_list)
动态柱状图示例:
from pyecharts.charts import Bar, Timeline from pyecharts.options import * from pyecharts.globals import ThemeType # 读取数据 f = open("D:/桌面/python/资料/可视化案例数据/动态柱状图数据/1960-2019全球GDP数据.csv", "r", encoding="GB2312") # .readlines() 打开是一个列表 data_lines = f.readlines() # 关闭文件 f.close() # 删除第一条数据 data_lines.pop(0) # 将数据转化为字典存储 # 定义一个字典对象 # 格式为:{1960: [[美国, 123], [中国, 321]....], 1961:[[美国, 123], [中国, 321]....]......} data_dict = {} for line in data_lines: year = int(line.split(",")[0]) # 年份 country = line.split(",")[1] # 国家 gdp = float(line.split(",")[2]) # gdp数据 # 数据格式化 try: data_dict[year].append([country, gdp]) # 如果没有key, 就捕获异常,新建一个列表 except KeyError: data_dict[year] = [] data_dict[year].append([country, gdp]) # print(data_dict) # 创建时间线对象 # 设置颜色格式 timeline = Timeline({"theme": ThemeType.LIGHT}) # 排序年份 sorted_year_list = sorted(data_dict.keys()) for year in sorted_year_list: # 通过gdp进行排序 data_dict[year].sort(key=lambda element: element[1], reverse=True) # 取出本年份前8名的国家 year_data = data_dict[year][0:8] x_data = [] y_data = [] # for循环每一年的数据,基于每一年的数据,创建每一年的bar对象 for country_gdp in year_data: x_data.append(country_gdp[0]) # x轴添加国家 y_data.append(country_gdp[1] / 100000000) # y轴添加gdp # 构建柱状图 bar = Bar() # 调转x和y轴数据完成从大到小 x_data.reverse() y_data.reverse() bar.add_xaxis(x_data) # 设置数值标签在右侧 label_opts=LabelOpts(position="right") 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}年全球前八GDP数据") ) # 在for中,将每一年的bar对象添加到时间线中 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前八国家.html")
运行结果示例:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。