制作各种图表

柱状图

基本柱状图

导入工具

from pyecharts.charts import Bar
from pyecharts import options

1.创建图表对象

bar = Bar()

2.添加x轴上和y轴上显示的数据

bar = Bar()
bar.add_xaxis(['AWP黑色魅影', 'M4A1夜无眠', 'AK墨岩', 'SSG 08抖枪', '锯齿爪刀外表生锈'])
bar.add_yaxis('价格', [230, 28, 30, 25, 1800])
bar.add_yaxis('货量', [160, 400, 567, 478, 99])

3.渲染图表,以及创建一个新文件夹来装生成的html文件

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

注意:柱状图的常用配置

导入工具

from pyecharts.charts import Bar
from pyecharts import options
from pyecharts.globals import ThemeType

创建对象

bar = Bar(
   init_opts=options.InitOpts(
       theme=ThemeType.WHITE
   )
)

添加数据

bar = Bar()
bar.add_xaxis(['AWP黑色魅影', 'M4A1夜无眠', 'AK墨岩', 'SSG 08抖枪', '锯齿爪刀外表生锈'])
bar.add_yaxis('价格', [230, 28, 30, 25, 1800])
bar.add_yaxis(
    '货量', 
    [160, 400, 567, 478, 99],
    markpoint_opts=options.MarkPointOpys(data=[
        options.MarkPointItem(name='最小值', type_='min')
    ])         
)

常见配置

(1)全局设置

bar.set_global_opts(
    # 配置标题
    title_opts=options.TitleOpts(title='主标题', subtitle='副标题', pos_left='30px'),
    # 配置图例
    legend_opts=options.LegendOpts(is_show=False),
    # 配置工具箱
    toolbox_opts=options.ToolboxOpts(is_show=False)
)

(2)系列配置

bar.set_series_opts(
    # 设置数值的显示
    # label_opts=options.LabelOpts(is_show=True, position='top', rotate=30, font_size=10, color='pink'),
    # 添加标记点
    markpoint_opts=options.MarkPointOpts(data=[
        options.MarkPointItem(name='最大值', type_='max')
    ])
)
# 最小值一样操作

渲染

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

折线图

和柱状图操作一样,先导入,创建,添加数据,配置,和渲染,然后将Bar换成Line

常见设置有所不同,比如系列配置,在添加数据后加相应代码标出某组数据平均值

line1 = Line()
line1.add_xaxis(['AWP黑色魅影', 'M4A1夜无眠', 'AK墨岩', 'SSG 08抖枪', '锯齿爪刀外表生锈'])
line1.add_yaxis('价格', [230, 28, 30, 25, 1800])
line1.add_yaxis(
    '货量', 
    [160, 400, 567, 478, 99],
	markline_opts=options.MarkLineOpts(data=[
        options.MarkLineItem(name='平均值', type_='average')
    ])
)

全局配置,就在所有数据后面加相应代码标出所有数据平均值

line.set_series_opts(
    # 添加标记线
    markline_opts=options.MarkLineOpts(data=[
        options.MarkLineItem(name='平均值', type_='average')
    ])
)

饼图

和柱状图操作一样,先导入,创建,添加数据,配置,和渲染,然后将Bar换成pie

添加数据时

pie.add(
    '库存',
    [('人物', 160), ('手枪', 50), ('狙击枪', 280), ('步枪', 80), ('刀', 1818)],
    # 设置空心
    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}%)')
)

地图

和柱状图操作一样,先导入,创建,添加数据,配置,和渲染,然后将Bar换成map

添加数据时

map.add(
    '玩CSGO人数',
    [('四川', 50000), ('重庆', 456), ('吉林', 4000), ('江苏', 3030), ('河南', 2087), ('西藏', 678)],
    'china',
    # 限制缩放倍数
    min_scale_limit=0.45,
    max_scale_limit=0.45,
)
map.set_global_opts(
    legend_opts=options.LegendOpts(is_show=False),
    visualmap_opts=options.VisualMapOpts(is_show=False, max_=2000, min_=0, is_piecewise=True)
)

常见配置

map.set_global_opts(
    # 隐藏图例
    legend_opts=options.LegendOpts(is_show=False),
    visualmap_opts=options.VisualMapOpts(is_show=False, max_=2000, min_=0, is_piecewise=True)
)
map.set_series_opts(
    label_opts=options.LabelOpts(is_show=False)
)

词云

和柱状图操作一样,先导入,创建,添加数据,和渲染,然后将Bar换成WordCloud

添加数据时

wc1.add(
    '游戏人数',
    [('王者荣耀', 28384), ('CSGO', 6782), ('和平精英', 12930), ('英雄联盟', 30092), ('开心消消乐', 829),
     ('刀塔', 1023), ('CF', 567), ('红色警戒', 129), ('魔兽', 90), ('保卫萝卜', 50), ('羊了个羊', 6728),
     ('植物大战僵尸', 369), ('原神', 5093), ('阴阳师', 9), ('找你妹', 809), ('俄罗斯方块', 1092),
     ('狼人杀', 4092), ('你画我猜', 9), ('QQ飞车', 912), ('QQ炫舞', 120), ('死神VS火影', 56789), ('生死狙击', 11122),
     ('坦克大战', 32312), ('魂斗罗', 32123), ('超级马里奥', 21321)
     ],
    shape='cardioid',
    pos_left=200,    # 设置图表位置
    pos_top=-60
)

组合图表

from pyecharts.charts import Bar, Line, Pie, Map, WordCloud, Grid
from pyecharts import options

bar1 = Bar()
bar1.add_xaxis(['AWP黑色魅影', 'M4A1夜无眠', 'AK墨岩', 'SSG 08抖枪', '锯齿爪刀外表生锈'])
bar1.add_yaxis('价格', [230, 28, 30, 25, 1800])
bar1.add_yaxis('货量', [160, 400, 567, 478, 99])
bar1.set_global_opts(legend_opts=options.LegendOpts(is_show=False))

line1 = Line()
line1.add_xaxis(['AWP黑色魅影', 'M4A1夜无眠', 'AK墨岩', 'SSG 08抖枪', '锯齿爪刀外表生锈'])
line1.add_yaxis('价格', [230, 28, 30, 25, 1800])
line1.add_yaxis('货量', [160, 400, 567, 478, 99])
line1.set_global_opts(legend_opts=options.LegendOpts(is_show=False))

pie1 = Pie()
pie1.add(
    '库存',
    [('人物', 160), ('手枪', 50), ('狙击枪', 280), ('步枪', 80), ('刀', 1818)],
    radius=(50, 130),
    rosetype='radius',  # 调整图表位置
    center=(1150, 180)
)
pie1.set_global_opts(
    legend_opts=options.LegendOpts(is_show=False)
)
pie1.set_series_opts(
    label_opts=options.LabelOpts(formatter='{b} ({d}%)')
)

map4 = Map()
map4.add(
    '玩CSGO人数',
    [('四川', 50000), ('重庆', 456), ('吉林', 4000), ('江苏', 3030), ('河南', 2087), ('西藏', 678)],
    'china',
    min_scale_limit=0.45,
    max_scale_limit=0.45,   # 调整图表比例和位置
    center=(50, 40)
)
map4.set_global_opts(
    legend_opts=options.LegendOpts(is_show=False),
    visualmap_opts=options.VisualMapOpts(is_show=False, max_=2000, min_=0, is_piecewise=True)
)

wc1 = WordCloud()
wc1.add(
    '游戏人数',
    [('王者荣耀', 28384), ('CSGO', 6782), ('和平精英', 12930), ('英雄联盟', 30092), ('开心消消乐', 829),
     ('刀塔', 1023), ('CF', 567), ('红色警戒', 129), ('魔兽', 90), ('保卫萝卜', 50), ('羊了个羊', 6728),
     ('植物大战僵尸', 369), ('原神', 5093), ('阴阳师', 9), ('找你妹', 809), ('俄罗斯方块', 1092),
     ('狼人杀', 4092), ('你画我猜', 9), ('QQ飞车', 912), ('QQ炫舞', 120), ('死神VS火影', 56789), ('生死狙击', 11122),
     ('坦克大战', 32312), ('魂斗罗', 32123), ('超级马里奥', 21321)
     ],
    shape='cardioid',
    pos_left=200,  # 调整图表位置
    pos_top=-60
)
# 1. 创建Grid对象
grid = Grid(init_opts=options.InitOpts(
    width='1500px',   # 设置放组合图的盒子的宽度和高度
    height='1000px'
))
# 2.添加需要组合在一起的各个图表对象
grid.add(bar1, grid_opts=options.GridOpts(
    pos_left=100,
    pos_top=20,
    width=400,
    height=250
))

grid.add(line1, grid_opts=options.GridOpts(
    pos_left=100,
    pos_top=400,
    width=400,
    height=250
))

grid.add(pie1, grid_opts=options.GridOpts())

grid.add(map4, grid_opts=options.GridOpts())

grid.add(wc1, grid_opts=options.GridOpts())

# 3.将图表制成图片
# from pyecharts.render import make_snapshot
# from snapshot_selenium import snapshot
# make_snapshot(snapshot, grid.render(), 'files/组合图.png')

# 渲染组合图
grid.render('files/组合图作业.html')
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值