目录
环境设置:下载包
1.开发可视化图表使用的技术栈:Echarts的python版本:pyecharts包
2.查看官方示例:http://gallery.pyecharts.org/#/README
一、创建基础地图
1、通过pyrcharts导入Map包
2、创建地图对象
3、使用列表创建数据
4、添加地图数据、设置全局属性
5、调用该方法
练习代码:
# 演示地图可视化的基本使用
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
# 准备地图对象
map = Map()
# 使用列表准备数据
data = [
("北京市",99),
("上海市",199),
("广东省",299),
("湖南省",399),
("台湾省",499),
]
# 添加数据
map.add("测试地图",data,"china")
# 设置全局
map.set_global_opts(
visualmap_opts=VisualMapOpts(
is_show=True,
is_piecewise=True,
pieces=[
{"min":1,"max":9,"label":"1-9人","color":"#CCFFF"},
{"min": 10, "max": 99, "label": "10-99人", "color": "#FFFF99"},
{"min": 100, "max": 499, "label": "99-499人", "color": "#FF9966"},
{"min": 500, "max": 999, "label": "499-999人", "color": "#FF6666"},
{"min": 1000, "max": 9999, "label": "1000-9999人", "color": "#CC3333"},
{"min": 10000, "label": "10000以上", "color": "#990033"},
]
)
)
# 调用
map.render("基础地图.html")
二、创建柱状图
1.通过Bar()构建一个柱状图对象
2.和折线图一样,通过add xaxis()和add yaxis()添加x和y轴数据
3.通过柱状图对象的:reversal axis(),反转x和y轴
4.通过label opts=LabelOpts(position="right")设置数值标签在右侧显示
练习代码:
# 导入bar包
from pyecharts.charts import Bar
from pyecharts.options import LabelOpts
# 构建柱状图对象
bar = Bar()
# 添加x、y轴数据 #后面的label是让数值标签跑到右边去
bar.add_xaxis(["中国","美国","英国"])
bar.add_yaxis("GDP",[30,20,10],label_opts=LabelOpts(position="right"))
# 反转y轴
bar.reversal_axis()
# 绘图
bar.render("基础柱状图.html")
Timeline()——时间线
柱状图描述的是分类数据,回答的是每一个分类中有多少? 这个问题,这是柱状图的主要特点,同时柱状图很难动态的描述一个趋势性的数据。这里pyecharts为我们提供了一种解决方案-时间线
1、导包
# 导入bar包
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import LabelOpts
2、构建时间线对象、添加元素
# 构建时间线对象
timeline = Timeline(
{"theme":ThemeType.DARK}
)
# 在时间线内添加柱状图对象
timeline.add(bar1,"点1")
timeline.add(bar2,"点2")
timeline.add(bar3,"点3")
3、设置自动播放,并赋予其状态
# 设置自动播放
timeline.add_schema(
play_interval=1000, # 自动播放时间间隔,单位毫秒
is_timeline_show=True, # 是否在自动播放是显示时间线
is_auto_play=True, # 是否自动播放
is_loop_play=True # 是否循环自动播放
4、最终再调用时间线方法来绘图
# 用时间线绘图
timeline.render("时间线柱状图.html")
总实现代码:
# 导入bar包
from pyecharts.charts import Bar, Timeline
from pyecharts.globals import ThemeType
from pyecharts.options import LabelOpts
# 构建柱状图对象
bar1 = Bar()
bar2 = Bar()
bar3 = Bar()
# 柱状图1
# 添加x、y轴数据 #后面的label是让数值标签跑到右边去
bar1.add_xaxis(["中国","美国","英国"])
bar1.add_yaxis("GDP",[30,20,10],label_opts=LabelOpts(position="right"))
bar1.reversal_axis() # 反转y轴
# 柱状图2
bar2.add_xaxis(["中国","美国","英国"])
bar2.add_yaxis("GDP",[50,30,15],label_opts=LabelOpts(position="right"))
bar2.reversal_axis() # 反转y轴
# 柱状图3
bar3.add_xaxis(["中国","美国","英国"])
bar3.add_yaxis("GDP",[70,40,30],label_opts=LabelOpts(position="right"))
bar3.reversal_axis() # 反转y轴
# 构建时间线对象
timeline = Timeline(
{"theme":ThemeType.DARK}
)
# 在时间线内添加柱状图对象
timeline.add(bar1,"点1")
timeline.add(bar2,"点2")
timeline.add(bar3,"点3")
# 设置自动播放
timeline.add_schema(
play_interval=1000, # 自动播放时间间隔,单位毫秒
is_timeline_show=True, # 是否在自动播放是显示时间线
is_auto_play=True, # 是否自动播放
is_loop_play=True # 是否循环自动播放
)
# 用时间线绘图
timeline.render("时间线柱状图.html")
print('绘制完成!')
三、补充列表 sort方法
sort 方法作用:对列表进行排序,并指定排序规则
使用方式:
列表.sort(key=选择排序依据的函数,reverse=True|False)
参数key,是要求传入一个函数,表示将列表的每一个元素都传入函数中,返回排序的依据参数reverse,是否反转排序结果,True表示降序,False美示升序
基于带名函数排序:
my_list1 = [["a",33],["b",55],["c",11]]
# 基于带名函数排序
def paixun(element):
return element[1]
# 升序
my_list1.sort(key=lambda element: element[1],reverse=False)
print(f"基于带名函数排序:{my_list1}")
基于lambda匿名函数排序:
my_list2 = [["A",33],["B",55],["C",11]]
# 基于lambda匿名函数排序
# 降序
my_list2.sort(key=lambda element: element[1],reverse=True)
print(f"基于lambda匿名函数排序:{my_list2}")