使用pyecharts制图

pyecharts制图

一、柱状图

  1. 导入工具

    # 导入柱状图的类
    from pyecharts.charts import Bar
    # 导入图标配置类
    from pyecharts import options
    
  2. 制图

    # 创建图标对象  设置主题
    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')
    

二、折线图

  1. 导入工具

    from pyecharts.charts import Line
    from pyecharts import options
    from pyecharts.globals import ThemeType
    
  2. 创建图标对象

    line = Line(
        init_opts=options.InitOpts(theme=ThemeType.WESTEROS)
    )
    
  3. 添加数据

    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])
    
  4. 折线图特定配置

    line.set_series_opts(
        # 添加标记线
        markline_opts=options.MarkLineOpts(data=[
            options.MarkPointItem(name='平均值', type_='average')
        ]
        )
    )
    
  5. 渲染图表

    line.render('files/line.html')
    

三、饼图

  1. 导入工具

    from pyecharts.charts import Pie
    from pyecharts import options
    from pyecharts.globals import ThemeType
    
  2. 创建图标对象

    pie = Pie()
    
  3. 添加数据

    pie.add('销量',
            [('手机', 75890), ('耳机', 15362), ('手表', 9872), ('电脑', 78921)],
            # 圆环
            radius=('30%', '70%'),
            # 根据数据的大小设置每一部分半径的大小
            rosetype='radius'
            )
    
  4. 饼图的常见配置

    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}%')    # 格式随意设置
    )
    
  5. 渲染图表

    pie.render('files/pie.html')
    

四、地图

  1. 导入数据

    from pyecharts.charts import  Map
    from pyecharts import options
    
  2. 创建图标对象

    map1 = Map()
    map2 = Map()
    map3 = Map()
    map4 = Map()
    
  3. 制图

    # 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')
    

五、词云图

  1. 导入数据

    from pyecharts.charts import WordCloud
    from pyecharts import options
    from pyecharts.globals import ThemeType
    
  2. 制作词云图

    # 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')
    

六、组合图表

  1. 导入数据

    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)
    )
    
  2. 组合图表

    # 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')
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值