pyecharts生成各种图表

pyecharts生成各种图表

一、柱状图

from pyecharts.charts import Bar
from pyecharts import options

# 准备数据
province = ['湖北', '北京', '新疆', '山东', '安徽', '云南', '上海']
data = [100000, 50000, 55000, 51000, 60000, 43210, 50334]
data2 = [12000, 5000, 3000, 5400, 2000, 3000, 10000]

# 创建图表对象
bar = Bar()

# 将数据渲染到表格上
bar.add_xaxis(province)
bar.add_yaxis('确诊人数', data)
bar.add_yaxis('死亡人数', data2)

# 设置图表
bar.set_global_opts(
    # 标题和副标题
    title_opts=options.TitleOpts(title='全国重点城市疫情统计', subtitle='确诊人数和死亡人数')
    , toolbox_opts=options.ToolboxOpts()  # 显示工具栏
)

# 系列设置
bar.set_series_opts(
    # 是否显示数值
    label_opts=options.LabelOpts(is_show=False),
    # 添加标记点
    markpoint_opts=options.MarkPointOpts(
        data=[
            options.MarkPointItem(type_='min', name='最小值'),
            options.MarkPointItem(type_='max', name='最大值')
        ]
    )
)

# 生成图表
bar.render('templates/柱状图.html')


二、饼状图

from pyecharts.charts import Pie
from pyecharts import options

data = [('小米', 200), ('华为', 300), ('oppo', 250), ('vivo', 400), ('1+', 100)]

# 创建图表对象
pie = Pie()

# 将数据渲染到图表上
pie.add(
    # 数据显示
    data_pair=data,
    # 名称显示
    series_name='国产手机销量',
    # 空心部分和数据显示部分的比例
    radius=[30,200],
    rosetype='radius',
    center=[300,300]

)

# 全局设置设置
pie.set_global_opts(
    title_opts=options.TitleOpts(title='国产手机销量')
)

pie.set_series_opts(
    label_opts=options.LabelOpts(formatter='{b}:{d}%')
)

# 显示图表

pie.render('templates/饼图.html')

饼状图简化版

from pyecharts.charts import Pie
from pyecharts import options

pie=(
    Pie()
    .add(
        series_name='国产手机',
        data_pair=[('小米', 200), ('华为', 300), ('oppo', 250), ('vivo', 400), ('1+', 100)],
        rosetype='radius',
        radius=['1%','90%']
    )
    .set_global_opts(title_opts=options.TitleOpts('国产手机销量'))
    .set_series_opts(
        label_opts=options.LabelOpts(formatter='{b}:{d}%')
    )
)

pie.render('templates/饼图2.html')

三、折线图

from pyecharts.charts import Line
from pyecharts import options

# 准备数据
cuntry = ['美国', '巴西', '印度', '俄罗斯']
data1 = [10000000, 600000, 5000000, 300000]

# 实例化图表对象

line = Line()

# 关联数据
line.add_xaxis(cuntry)
line.add_yaxis(series_name='感染人数', y_axis=data1, is_smooth=True)
# is_smooth=True曲线
# 配置
# 全局设置
line.set_global_opts(
    title_opts=options.TitleOpts(title='世界严重感染国家'),
    toolbox_opts=options.ToolboxOpts()
)
# 系列设置
line.set_series_opts(
    markline_opts=options.MarkLineOpts(
        data=[
            options.MarkLineItem(name='平均值', type_='average'),
        ]
    )
)

line.render('templates/折线图.html')

四、组合图

from pyecharts.charts import Line, Bar, Grid
from pyecharts import options

# 创建需要组合在一起的单独的图表
cate = ['重庆', '黑龙江', '香港', '台湾', '上海']
data = [579, 925, 1035, 427, 640]
data2 = [470, 487, 699, 253, 533]

# 创建对象
bar = Bar()  # 实例化柱状图对象
line = Line()  # 实例化折线图对象

# 画柱状图
bar.add_xaxis(cate)
bar.add_yaxis('确诊人数', data)
bar.add_yaxis('治愈人数', data2)

bar.set_global_opts(
    title_opts=options.TitleOpts(title='疫情信息')
)
# 画折线图
line.add_xaxis(cate)
line.add_yaxis('确诊人数', data)
line.add_yaxis('治愈人数', data2)

# 创建组合对象

grid = Grid(init_opts=options.InitOpts(width='1200px', height='800px'))

# 将柱状图和折线图嵌入

grid.add(bar, grid_opts=options.GridOpts(
    pos_top='50',
    pos_left='60',
    width='550',
    height='300'
))

grid.add(line, grid_opts=options.GridOpts(
    pos_top='50',
    pos_right='0',
    width='550',
    height='300'
))

# 渲染到页面
grid.render('templates/组合.html')

五、地图

from pyecharts import options
from pyecharts.charts import Map

# 数据准备
data = [('湖北', 68149), ('内蒙古', 333), ('四川', 808), ('上海', 1350), ('陕西', 501),('台湾',12000)]

# 生成图表
map = Map()

# 渲染数据

map.add(series_name='国内主要城市感染人数', data_pair=data)  # maptype='world'修改显示国家

map.set_global_opts(
    title_opts=options.TitleOpts(title='感染人数')  # 右下角标题
    , legend_opts=options.LegendOpts(is_show=True)  # 顶部导航series_name=
    , visualmap_opts=options.VisualMapOpts(
        max_=70000,
        min_=0,
        is_piecewise=True,  # 是否按照自己规定的区间显示
        pieces=[
            {'min': 0, 'max': 100, 'label': '0-100', 'color': 'pink'},
            {'min': 100, 'max': 200, 'label': '100-200', 'color': 'yellow'},
            {'min': 200, 'max': 1000, 'label': '200-1000', 'color': 'blue'},
            {'min': 1000, 'max': 2000, 'label': '1000-2000', 'color': 'orange'},
            {'min': 1000, 'label': '>=2000', 'color': 'red'}
        ]
    )
)

# 生成地图
map.render('templates/地图.html')

你可能感兴趣的:(python)