51.pyecharts绘制基本图标

1.PyEcharts简介

1.1 概述

Echarts 是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。
Echarts官网网址:网址

1.2 PyEcharts特点

  • 简洁的 API 设计,使用如丝滑般流畅,支持链式调用
  • 囊括了 30+ 种常见图表,应有尽有
  • 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab
  • 可轻松集成至 Flask,Django 等主流 Web 框架
  • 高度灵活的配置项,可轻松搭配出精美的图表
  • 详细的文档和示例,帮助开发者更快的上手项目
  • 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持

1.3 安装

pip install pyecharts==1.9.1

查看pyecharts版本

import pyecharts
print(pyecharts.__version__)

2.快速体验PyEcharts

# 绘制柱状图
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(['A','B','C','D'])
bar.add_yaxis('',[1000,200,1400,2000])
bar.render()

# 支持链式调用
bar = (
    Bar()
    .add_xaxis(['A','B','C','D'])
    .add_yaxis('',[1000,300,1400,2000])
)
bar.render()

使用render返回时,会生成一个html文件,打开文件即可
在这里插入图片描述

3.全局配置项

from pyecharts.charts import Bar  # 绘制柱状图
from pyecharts.faker import Faker # 导入内置数据
from pyecharts import options as opts
bar = Bar()
bar.add_xaxis(Faker.choose())
bar.add_yaxis("商家 A", Faker.values())
bar.add_yaxis('商家 B', Faker.values())
#  设置全局配置调用方法set_global_opts
bar.set_global_opts(
    # 标题设置:title主标题  subtitle副标题  pos_left相对左边的标题位置
    title_opts=opts.TitleOpts(title='主标题', subtitle='副标题', pos_left="left"),
    # 设置图例:默认时True
    legend_opts=opts.LegendOpts(is_show=True),
    # 设置工具箱
    toolbox_opts = opts.ToolboxOpts(),
    # 视觉映射配置项
    visualmap_opts=opts.VisualMapOpts(),
    # 设置坐标轴: is_show是否显示坐标轴  is_inverse反向显示 _min _max是切片横坐标轴
    xaxis_opts=opts.AxisOpts(is_show=True, is_inverse=False, min_=2, max_=4),
    yaxis_opts=opts.AxisOpts(is_show=False)
    )
bar.render_notebook()
# bar.render()

在这里插入图片描述

4.系列配置项

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
# 设置主题
from pyecharts.globals import ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
bar.add_xaxis(Faker.choose())
bar.add_yaxis("", Faker.values())
# 系列配置项:点
bar.set_series_opts(
    label_opts=opts.LabelOpts(is_show=False),
    markpoint_opts=opts.MarkPointOpts(data=[
        opts.MarkPointItem(type_='max',name='最大值'),
        opts.MarkPointItem(type_='min',name='最小值'),
        opts.MarkPointItem(type_='average',name='平均值')
    ])
)
bar.render_notebook()

在这里插入图片描述

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
# 设置主题
from pyecharts.globals import ThemeType
bar = Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
bar.add_xaxis(Faker.choose())
bar.add_yaxis("", Faker.values())
# 系列配置项:线
bar.set_series_opts(
    label_opts=opts.LabelOpts(is_show=False),
    markline_opts=opts.MarkPointOpts(data=[
        opts.MarkLineItem(type_='max',name='最大值'),
        opts.MarkLineItem(type_='min',name='最小值'),
        opts.MarkLineItem(type_='average',name='平均值')
    ]),
#     设置颜色,可以去百度搜索RGB颜色表
    itemstyle_opts=opts.ItemStyleOpts(color='#C1FFC1')
)
bar.render_notebook()

在这里插入图片描述

5.绘制条形图

5.1 绘制柱状图

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.faker import Faker
# 绘制柱状图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(Faker.choose())
    .add_yaxis("A",Faker.values())
    .add_yaxis("B",Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title='柱状图示例'))
    .set_series_opts(
        label_opts=opts.LabelOpts(is_show=False),
        markpoint_opts=opts.MarkPointOpts(
            data=[opts.MarkPointItem(type_='max',name='最大值')]
        )
    )
)
bar.render_notebook()

在这里插入图片描述

5.2 绘制条形图

# 绘制条形图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(Faker.choose())
    .add_yaxis("A",Faker.values())
    .add_yaxis("B",Faker.values())
    .set_global_opts(title_opts=opts.TitleOpts(title='条形图示例'))
    .set_series_opts(
        markline_opts=opts.MarkLineOpts(
        data=[
            opts.MarkLineItem(type_='合格指标',y=50),
            opts.MarkLineItem(name='平均值',type_="average")
        ]),
        label_opts=opts.LabelOpts(is_show=True, position='right')
    )
)
bar.reversal_axis()
bar.render_notebook()

在这里插入图片描述

5.3 绘制堆叠图

# 绘制堆叠图
bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.DARK))
    .add_xaxis(Faker.choose())
    .add_yaxis("A",Faker.values(),stack='stack')
    .add_yaxis("B",Faker.values(),stack='stack')
)
bar.set_global_opts(title_opts=opts.TitleOpts(title='堆叠图'))
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
bar.render_notebook()

在这里插入图片描述

6.绘制直方图

直方图表示被存储到范围中的变量的值的频率以及分布情况。
在视觉上,直方图与柱状图很类似,但是直方图的柱间距为0。

from pyecharts.charts import Bar
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制直方图
bar = Bar()
bar.add_xaxis(Faker.choose())
# 随机颜色的添加,更改柱之间的空隙
bar.add_yaxis("",Faker.values(),category_gap=0, color=Faker.rand_color())
# 添加标题
bar.set_global_opts(title_opts=opts.TitleOpts(title="直方图"))
bar.render_notebook()

在这里插入图片描述

7.绘制折线图

折线图官网

from pyecharts.charts import Line
from pyecharts import options as opts
from pyecharts.globals import ThemeType
from pyecharts.faker import Faker

# 绘制折线图
line = Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))
x_value = Faker.choose()
y_value = Faker.values()
line.add_xaxis(x_value)
# 让曲线变得圆滑:is_smooth True
# 设置标记点:MarkPointItem value:标记哪个点,coord:标记点的位置
line.add_yaxis("商家 A", y_value,is_smooth=True,
               markpoint_opts=opts.MarkPointOpts(
               data=[opts.MarkPointItem(name="自定义标记点",value=y_value[0], coord=[x_value[2],y_value[2]])]
               )     
              )
# 利用全局配置项,设置分隔线splitline_opts
line.set_global_opts(yaxis_opts=opts.AxisOpts(splitline_opts=opts.SplitLineOpts(is_show=True)))
line.render_notebook()

在这里插入图片描述

8.堆叠折线图和面积图

from pyecharts.charts import Line
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from pyecharts import options as opts
# 绘制简单折线图——>绘制多条折线图(多添加几次add_yaxis)——>绘制堆叠图(stack)——>绘制面积图
line = Line(init_opts=opts.InitOpts(theme=ThemeType.DARK))
x_data = Faker.week
types = Faker.choose()
line.add_xaxis(x_data)
line.add_yaxis(types[0],Faker.values(),stack='总量')
line.add_yaxis(types[1],Faker.values(),stack='总量')
line.add_yaxis(types[2],Faker.values(),stack='总量')
line.add_yaxis(types[3],Faker.values(),stack='总量')
line.add_yaxis(types[4],Faker.values(),stack='总量')
line.add_yaxis(types[5],Faker.values(),stack='总量')
line.add_yaxis(types[6],Faker.values(),stack='总量')
# 去掉数量标记
line.set_series_opts(label_opts=opts.LabelOpts(is_show=False),
                    # 设置面积图填充颜色
                     areastyle_opts=opts.AreaStyleOpts(opacity=0.6)
                    )
# 利用全局配置项添加标题
line.set_global_opts(title_opts=opts.TitleOpts(title="面积图"),
                     # 当鼠标放在一个点时,同坐标数值都会进行显示
                     tooltip_opts=opts.TooltipOpts(trigger='axis'),
                     # 设置x坐标从头开始, 坐标轴两边留白解决 boundary_gap=False
                     xaxis_opts=opts.AxisOpts(boundary_gap=False)
                     
                    )
line.render_notebook()

在这里插入图片描述

9.绘制饼图

饼图官网网址

9.1 常规饼图

from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制饼图
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK))
# 饼图存放数据的格式:整体数据是列表,每一个数据点也是以列表形式: [[],[],[],[]]
# 显示每一项的值:{a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie.add("", 
        data_pair=[list(z) for z in zip(Faker.choose(), Faker.values())], 
        label_opts=opts.LabelOpts(formatter="{b}:{d}"),
       )
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))
pie.render_notebook()

在这里插入图片描述

9.2空心饼图

from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制饼图
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK))
# 饼图存放数据的格式:整体数据是列表,每一个数据点也是以列表形式: [[],[],[],[]]
# 显示每一项的值:{a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie.add("", 
        data_pair=[list(z) for z in zip(Faker.choose(), Faker.values())], 
        label_opts=opts.LabelOpts(formatter="{b}:{d}"),
        # 绘制空心饼图:['圆心的半径','外层的半径']
        radius=['50%','70%']
       )
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))
pie.render_notebook()

在这里插入图片描述

9.3 玫瑰形饼图

from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
# 绘制饼图
pie = Pie(init_opts=opts.InitOpts(theme=ThemeType.DARK))
# 饼图存放数据的格式:整体数据是列表,每一个数据点也是以列表形式: [[],[],[],[]]
# 显示每一项的值:{a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
pie.add("", 
        data_pair=[list(z) for z in zip(Faker.choose(), Faker.values())], 
        label_opts=opts.LabelOpts(formatter="{b}:{d}"),
        # 玫瑰形饼图
        rosetype='radius'
       )
pie.set_global_opts(title_opts=opts.TitleOpts(title="饼图"))
pie.render_notebook()

在这里插入图片描述

10.绘制散点图

from pyecharts.charts import Scatter
from pyecharts import options as opts
from pyecharts.faker import Faker
from pyecharts.globals import ThemeType
from random import randint
# 绘制散点图
scatter = Scatter(init_opts=opts.InitOpts(theme=ThemeType.DARK))
x_value = [randint(0,100) for i in range(100)]
y_value = [randint(0,100) for i in range(100)]
scatter.add_xaxis(xaxis_data=x_value)
# 设置点的大小symbol_size 默认是10
# 设置点的形状symbol 默认是圆
scatter.add_yaxis("",y_axis=y_value, symbol_size=20)
# 散点图查看相关性,不需要显示点的值
scatter.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
# 此时的x值都是按照x_value的顺序来的,不是从小到大。修改x轴坐标
scatter.set_global_opts(
    xaxis_opts=opts.AxisOpts(type_="value"),
    # 添加视觉配置项
    visualmap_opts=opts.VisualMapOpts()
                       )
scatter.render_notebook()

在这里插入图片描述

11.绘制箱图

from pyecharts.charts import Boxplot
from pyecharts.globals import ThemeType
from pyecharts import options as opts
from random import randint
# 绘制散点图
box = Boxplot(init_opts=opts.InitOpts(theme=ThemeType.DARK))
box.add_xaxis([f'exp{i}' for i in range(1,5)])
# 利用prepare_data处理列表数据后,才能绘制出标准的盒须图, A不做处理,B处理
box.add_yaxis('A',
                   [[randint(30,100) for i in range(50)],
                   [randint(40,100) for i in range(50)],
                   [randint(50,100) for i in range(50)],
                   [randint(60,100) for i in range(50)]],
             )
box.add_yaxis('B', box.prepare_data(
                   [[randint(90,100) for i in range(50)],
                   [randint(80,100) for i in range(50)],
                   [randint(70,100) for i in range(50)],
                   [randint(60,100) for i in range(50)]]),
             )
box.set_global_opts(title_opts=opts.TitleOpts(title='盒须图'))
box.render_notebook()

在这里插入图片描述

12.绘制热力图

from pyecharts.charts import HeatMap
from pyecharts.faker import Faker
from pyecharts import options as opts
from pyecharts.globals import ThemeType
import random
# 绘制热力图
hm = HeatMap(init_opts=(opts.InitOpts(theme=ThemeType.DARK)))
hm.add_xaxis(Faker.clock)
data = [[i,j,random.randint(-20,40)] for i in range(24) for j in range(7)]
hm.add_yaxis('',Faker.week,data)
hm.set_global_opts(visualmap_opts=opts.VisualMapOpts(min_=-20,max_=50),
                   title_opts=opts.TitleOpts(title='绘制热力图')
                  )
# 显示数据到方格中,本身就有显示,需要修改位置
hm.set_series_opts(label_opts=opts.LabelOpts(is_show=True, position='inside'))
hm.render_notebook()

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想成为数据分析师的开发工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值