pyecharts
制图
一、柱状图
-
导入工具
# 导入柱状图的类 from pyecharts.charts import Bar # 导入图标配置类 from pyecharts import options
-
制图
# 创建图标对象 设置主题 bar = Bar( init_opts=options.InitOpts( # 设置整个图标的主题 theme=ThemeType.WESTEROS ) ) # 添加x轴数据和y轴数据 bar.add_xaxis(['Python', 'Java', 'H5', 'UI/UE', '物联网']) bar.add_yaxis('全年招生人数', [320, 875, 904, 203, 100]) bar.add_yaxis('平均薪资',[9200, 870, 8500, 7400, 8000]) bar.add_yaxis('学费', [18999, 21000, 22999, 19888, 18999], markpoint_opts=options.MarkPointOpts(data=[ options.MarkPointItem(name='最小值', type_='min'), options.MarkPointItem(name='最大值', type_='max') ]) ) # 渲染图表 bar.render('files/bar1.html')
二、折线图
-
导入工具
from pyecharts.charts import Line from pyecharts import options from pyecharts.globals import ThemeType
-
创建图标对象
line = Line( init_opts=options.InitOpts(theme=ThemeType.WESTEROS) )
-
添加数据
line.add_xaxis(['Python', 'Java', 'H5', 'UI/UE', '物联网']) line.add_yaxis('平均薪资', [9200, 8700, 8500, 7400, 8000], markline_opts=options.MarkLineOpts(data=[ options.MarkPointItem(name='平均值', type_='average') ])) line.add_yaxis('学费', [18999, 21000, 22999, 19888, 18999])
-
折线图特定配置
line.set_series_opts( # 添加标记线 markline_opts=options.MarkLineOpts(data=[ options.MarkPointItem(name='平均值', type_='average') ] ) )
-
渲染图表
line.render('files/line.html')
三、饼图
-
导入工具
from pyecharts.charts import Pie from pyecharts import options from pyecharts.globals import ThemeType
-
创建图标对象
pie = Pie()
-
添加数据
pie.add('销量', [('手机', 75890), ('耳机', 15362), ('手表', 9872), ('电脑', 78921)], # 圆环 radius=('30%', '70%'), # 根据数据的大小设置每一部分半径的大小 rosetype='radius' )
-
饼图的常见配置
pie.set_global_opts( # 隐藏图例 legend_opts=options.LegendOpts(is_show=False), # 设置标题 title_opts=options.TitleOpts(title='某商城电子产品销售情况', subtitle='销售额'), ) pie.set_series_opts( # 设置文字信息的显示格式: {b} - 名称; {d} - 百分比的比值 label_opts=options.LabelOpts(formatter='{b} : {d}%') # 格式随意设置 )
-
渲染图表
pie.render('files/pie.html')
四、地图
-
导入数据
from pyecharts.charts import Map from pyecharts import options
-
创建图标对象
map1 = Map() map2 = Map() map3 = Map() map4 = Map()
-
制图
# 2.添加数据 map1.add( '新增人数', [('四川', 173), ('河北', 309), ('吉林', 26),('新疆', 778),('福建', 56),('重庆', 435),('广东', 1829)], 'china', # 限制缩放次数 min_scale_limit=0.5, max_scale_limit=2 ) # 3.地图常用设置 map1.set_global_opts( # 隐藏图例 legend_opts=options.LegendOpts(is_show=False), visualmap_opts=options.VisualMapOpts(is_show=True, max_=2000, min_=0,is_piecewise=True) ) # 4.渲染图表 map1.render('files/中国地图.html') map2.add( '新增人数', [('西安市', 173), ('宝鸡市', 309), ('榆林市', 157),], '陕西', # 限制缩放次数 min_scale_limit=0.5, max_scale_limit=2 ) # 3.地图常用设置 map2.set_global_opts( # 隐藏图例 legend_opts=options.LegendOpts(is_show=False), visualmap_opts=options.VisualMapOpts(is_show=True, max_=2000, min_=0,is_piecewise=True) ) # 4.渲染图表 map2.render('files/陕西地图.html') map3.add( '新增人数', [('British Columbia', 173), ('Nunavut', 309), ('Ontario', 157),], '加拿大', # 限制缩放次数 min_scale_limit=0.5, max_scale_limit=2 ) # 3.地图常用设置 map3.set_global_opts( # 隐藏图例 legend_opts=options.LegendOpts(is_show=False), visualmap_opts=options.VisualMapOpts(is_show=True, max_=2000, min_=0,is_piecewise=True) ) # 4.渲染图表 map3.render('files/加拿大地图.html') map4.add( '新增人数', [('China', 173), ('Canada', 309), ('Brazil', 157),], 'world', # 限制缩放次数 min_scale_limit=0.5, max_scale_limit=2 ) # 3.地图常用设置 map4.set_global_opts( # 隐藏图例 legend_opts=options.LegendOpts(is_show=False), visualmap_opts=options.VisualMapOpts(is_show=True, max_=2000, min_=0,is_piecewise=False) ) # 4.渲染图表 map4.render('files/世界地图.html')
五、词云图
-
导入数据
from pyecharts.charts import WordCloud from pyecharts import options from pyecharts.globals import ThemeType
-
制作词云图
# 1. 创建图表 wc = WordCloud( init_opts=options.InitOpts(theme=ThemeType.WESTEROS) ) # 2. 添加数据 wc.add( '游戏人数', [('王者荣耀', 28384), ('CS Go', 6782), ('和平精英', 12930), ('英雄联盟', 30092), ('开心消消乐', 829), ('刀塔', 1023), ('CF', 567), ('红色警戒', 129), ('魔兽', 90), ('保卫萝卜', 50), ('羊了个羊', 6728), ('植物大战僵尸', 369), ('原神', 5093), ('阴阳师', 9), ('找你妹', 809), ('俄罗斯方块', 1092), ('狼人杀', 4092), ('你画我猜', 9), ('QQ飞车', 912), ('QQ炫舞', 120) ], shape='triangle', # 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon' word_size_range=(10,30) ) # 3. # 4.渲染图表 wc.render('files/词云图.html')
六、组合图表
-
导入数据
from pyecharts.charts import Bar, Line, Pie, Map, Grid from pyecharts.charts import WordCloud from pyecharts import options bar = Bar() bar.add_xaxis(['Python', 'Java', 'H5', 'UI/UE', '物联网']) bar.add_yaxis('全年招生人数', [320, 875, 804, 203, 100]) bar.add_yaxis('平均薪资', [9200, 8700, 8500, 7400, 8000]) bar.set_global_opts(legend_opts=options.LegendOpts(is_show=False)) line = Line() line.add_xaxis(['Python', 'Java', 'H5', 'UI/UE', '物联网']) line.add_yaxis('全年招生人数', [320, 875, 804, 203, 100]) line.add_yaxis('平均薪资', [9200, 8700, 8500, 7400, 8000]) line.set_global_opts(legend_opts=options.LegendOpts(is_show=False)) pie = Pie() pie.add( '销售额', [('手机', 57890), ('耳机', 15362), ('手表', 9872), ('电脑', 78921)], # 设置半径控制饼图大小 radius=('40','80'), rosetype='radius', # 控制圆心位置 center=(1000,300) ) pie.set_global_opts( legend_opts=options.LegendOpts(is_show=False) ) pie.set_series_opts( label_opts=options.LabelOpts(formatter='{b}({d}%)') ) wc = WordCloud() wc.add( '游戏人数', [('王者荣耀', 28384), ('CS Go', 6782), ('和平精英', 12930), ('英雄联盟', 30092), ('开心消消乐', 829), ('刀塔', 1023), ('CF', 567), ('红色警戒', 129), ('魔兽', 90), ('保卫萝卜', 50), ('羊了个羊', 6728), ('植物大战僵尸', 369), ('原神', 5093), ('阴阳师', 9), ('找你妹', 809), ('俄罗斯方块', 1092), ('狼人杀', 4092), ('你画我猜', 9), ('QQ飞车', 912), ('QQ炫舞', 120) ], shape='pentagon', # 'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon' word_size_range=(10,30), ) map1 = Map() map1.add( '新增人数', [('四川', 173), ('河北', 309), ('吉林', 26), ('新疆', 778), ('福建', 56), ('重庆', 435), ('广东', 1829)], 'china', # 比例缩放 min_scale_limit=0.1, max_scale_limit=0.4, # 控制地图位置(注意比例缩放问题) center=(180,35) ) map1.set_global_opts( legend_opts=options.LegendOpts(is_show=False), visualmap_opts=options.VisualMapOpts(is_show=False, max_=2000, min_=0, is_piecewise=True) )
-
组合图表
# 1.创建组合盒子 grid = Grid(init_opts=options.InitOpts( # 设置放组合图的盒子的宽度和高度 width='1500px', height='1000px' )) # 2.添加需要组合在一起的各个图标对象 grid.add(bar,grid_opts=options.GridOpts( pos_left=50, pos_top=50, width=300, height=150 )) grid.add(line,grid_opts=options.GridOpts( pos_left=450, pos_top=50, width=300, height=150 )) grid.add(pie,grid_opts=options.GridOpts()) grid.add(wc,grid_opts=options.GridOpts( pos_left=150, pos_top=350, width=300, height=150 )) grid.add(map1,grid_opts=options.GridOpts()) # 3.渲染组合图 grid.render('files/组合2.html')