day13-pyecharts的使用

一、柱形图

from pyecharts.charts import Bar 
from pyecharts import options  # 用于定义pyecharts的配置

1.创建图标对象

bar = Bar()

2.添加数据

1)添加x轴上的数据

bar.add_xaxis(['1季度','2季度','3季度','4季度'])

2)添加y轴上的数据

bar.add_yaxis('销售额', [890, 1023, 509, 1500],
              #设置销售额对应的柱子的颜色
              color='red',
              # is_show_background=True,设置柱子背景
              # bar_width=40
              #缩放时柱子宽度的范围
              bar_max_width=100,
              bar_min_width=40
              )
bar.add_yaxis('销量', [208, 300, 301, 440])

3.柱状图相关的配置

1)全局配置

bar.set_global_opts(
    #设置标题
    title_opts=options.TitleOpts(
        title='全年xxx的销售信息',
        title_link='http//:www.baidu.com',
        subtitle='销售额和销售子信息',
        pos_right=350,
        text_align='center'
    ),
    #设置图例
    legend_opts=options.LegendOpts(
        is_show=True,
        pos_right=90,
        item_width=20,
        item_height=10
    ),
    #设置工具箱
    toolbox_opts=options.ToolboxOpts(
        is_show=True
    ),
    #设置区域缩放
    datazoom_opts=options.DataZoomOpts(
        is_show=True
    ),
    #x轴和y轴的配置
    xaxis_opts=options.AxisOpts(
        name='时间'
    ),
    yaxis_opts=options.AxisOpts(
        name='销售额(百万)/销售量',
        name_rotate=0
    )
)

2.系列配置

bar.set_series_opts(
    # 设置标签
    label_opts=options.LabelOpts(
        is_show=True,
        position='left',   # 'top', 'left', 'right',
        rotate=90,
        color='#00fff00'       # rgb(255, 0, 0),,
    ),
    # 设置标记点
    markpoint_opts=options.MarkPointOpts(
        data=[options.MarkPointItem(name='最小值',type_='max')]
    )
)

3.数据配置

数据配置只能在添加数据的时候设置,如上面添加数据部分

4.渲染图表(制图)

bar.render('files/01柱状图.html')

二、折线图

from pyecharts.charts import Line      # 准备绘制折线图条件
from pyecharts import options

1.创建折线图对象

line = Line()

2.添加数据

#添加x轴数据
line.add_xaxis(['1季度', '2季度', '3季度', '4季度'])
#添加y轴数据
line.add_yaxis('服装', [189, 340, 299, 412], is_smooth=True)  # is_smooth=True 设置是否平滑
line.add_yaxis('电子产品', [89, 109, 77, 56])

3.图表设置

line.set_global_opts(
    title_opts=options.TitleOpts(
        title='xxx商品各大商品的销售情况',
        pos_left=350
    ),
    yaxis_opts=options.AxisOpts(
        name='销售额(万元)'
    ),
    xaxis_opts=options.AxisOpts(
        name='时间'
    )
)
line.set_series_opts(
    label_opts=options.LabelOpts(
        is_show=True
    ),
    markline_opts=options.MarkLineOpts(
        data=[options.MarkLineItem(type_='average', name='平均销售额')]
    )

4.渲染图表(制图)

line.render('files/02折线图.html')

三、饼图

from pyecharts.charts import Pie  # 准备绘制饼图坏境
from pyecharts import options

1.创建饼图对象

pie = Pie()

2.添加数据

pie.add(
    '手机销量',
    [('Apple', 890), ('华为', 1002), ('小米', 409), ('oppo', 123), ('魅族',98)],
    radius=(50, 100),    # 分别设置内圆半径和外圆半径
    rosetype='radius'    # 设置不规则大小,让外圆环不规则
)

3.图表的设置

pie.set_global_opts(
    legend_opts=options.LegendOpts(
        is_show=True
    ),
    title_opts=options.TitleOpts(
        title='xxx商城手机销售情况',
        pos_left='350'
    )
)
pie.set_series_opts(
    label_opts=options.LabelOpts(
        # {b} - 数据名称、{d} - 百分比比值
        formatter='{b}({d}%)'
    )
)

4.渲染图标

pie.render('files/03饼图.html')

四、地图

from pyecharts.charts import Map   # 准备绘制地图坏境
from pyecharts import options

1.中国地图

1)创建地图对象
map1 = Map()
2)添加数据
map1.add(
    '房价',
    [('四川省', 8000), ('重庆市', 7923), ('河南省', 5672), ('北京市', 53994),
     ('上海市', 46372), ('新疆维吾尔自治区', 3982), ('黑龙江省', 4632)],
    zoom=1.4,  # 放大地图1.4倍
    min_scale_limit=1,  #设置最大最小缩放比例
    max_scale_limit=3
)
3)添加配置
map1.set_global_opts(
    visualmap_opts=options.VisualMapOpts(
        is_show=True,
        min_=3000,
        max_=65000,
        # 让颜色分段
        is_piecewise=True,
        # 设置每一段的数值范围
        pieces=[
            {'min':3000, 'max':4999},
            {'min':5000, 'max':9999},
            {'min':10000, 'max':29999},
            {'min':30000, 'max':60000},
            {'min':60001, 'max':65000},
        ]
    ),
    legend_opts=options.LegendOpts(
        is_show=False   #图例不展示

    ),
    title_opts=options.TitleOpts(
        title='中国各省平均房价'
    )
)
4)渲染
map1.render('files/04中国地图.html')

2.四川地图

map2 = Map()

map2.add('房价', [('成都市', 12000), ('乐山市', 7000)], maptype='四川')

map2.render('files/05四川地图.html')

3.世界地图

map3 = Map()

map3.add('房价', [('China', 1002)], maptype='world')

map3.set_series_opts(
    label_opts=options.LabelOpts(
        is_show=False
    )
)

map3.render('files/06世界地图.html')

4.成都地图

map4 = Map()
map4.add('房价', [('武侯区', 300)], maptype='成都')

map4.render('files/07成都地图.html')

五、词云图

from pyecharts.charts import WordCloud    #准备绘制词云图坏境
from pyecharts import options

1.创建图表

wc = WordCloud()

2.添加数据

wc.add(
    '',
    [('王者荣耀', 82933), ('英雄联盟', 109283), ('阴阳师', 7282), ('原神', 1928), ('和平精英', 829),
     ('开心消消乐', 8192), ('羊了个羊', 909), ('飞机大战', 109), ('蛋仔派对', 679), ('猎梦者', 302),
     ('红色警戒', 19), ('魔兽', 68922), ('刀塔', 3192), ('QQ农场', 87), ('植物大战僵尸', 891), ('地平线', 1923),
     ('神庙逃亡', 10), ('节奏大师', 2033), ('找你妹', 9), ('大富翁', 340), ('保卫萝卜', 9012)],
    # cardioid(心脏线)、diamond(菱形 正方形)、triangle-forward 、 triangle(三角形)、pentagon(五边形)
     shape='cardioid',
    # word_size_range=(5, 200)   设置字体最小值和最大值
)

添加配置部分类似于其他图

3.渲染

wc.render('files/08词云.html')

六、作业

基于爬取的数据绘制合适的图

import openpyxl
from pyecharts.charts import WordCloud, chart
from pyecharts import options
# 读excel中的数据
wb = openpyxl.open('files/旅游数据.xlsx')
sheet = wb.active

m_r = sheet.max_row
dic = {}
for r in range(2, m_r+1):
    value = sheet.cell(r, 4).value
    if value not in dic:
        dic[value] = 1
    else:
        dic[value] += 1
list = []
for key in dic:
    list.append((key, dic[key]))
#创建图表
wc = WordCloud()
#添加图表数据
wc.add(
    '',
    list,
    shape='star'
)
# 添加标题
wc.set_global_opts(
    title_opts=options.TitleOpts(
        title='携程热门旅游景点成都各大供应商',
        text_align='left'
    )
)
wc.render('files/09旅游词云图.html')

结果图:

MPAndroidChart y轴数据怎样从大到小 pyecharts设置y轴范围_添加数据