pycharts 数据分析与数据可视化


Echarts 是一个由百度开源的数据可视化。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts 诞生了。

特性

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

pycharts库安装

v0.5.x 和 V1 间不兼容,V1 是一个全新的版本。

  • V0.5.x
    支持 Python2.7,3.4+。0.5.x 版本将不再进行维护。
  • V1
    仅支持 Python3.6+,新版本系列将从 v1.0.0 开始、。

pip 安装

# 安装 v1 以上版本
$ pip install pyecharts -U

# 如果需要安装 0.5.11 版本的开发者,可以使用
# pip install pyecharts==0.5.11

调用

pyecharts帮助文档

快速画图

  • render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件,也可以传入路径参数,如 bar.render(“mycharts.html”)
  • 官网图例代码中图例被封装成函数,函数可以直接调用render画图,func_.render()或者在jupyter中 func_render_notebook()直接展示
#生成 HTML
from pyecharts.charts import Bar
from pyecharts import options as opts

# V1 版本开始支持链式调用
bar = (
    Bar()
    .add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
    .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
    .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
)

#链式也写成
bar = (
    Bar().add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"]).add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])  .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])  .set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
#输出hyml文件
bar.render()

#在 Jupyter notebook中显示图片
bar.render_notebook()

# 不习惯链式调用的开发者依旧可以单独调用方法
bar = Bar()
bar.add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
bar.add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
bar.set_global_opts(title_opts=opts.TitleOpts(title="某商场销售情况"))
bar.render()

  • 渲染成图片文件( 使用 snapshot-selenium 渲染图片)
#生成图片
from snapshot_selenium import snapshot as driver

from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.render import make_snapshot


def bar_chart() -> Bar:
    c = (
        Bar()
        .add_xaxis(["衬衫", "毛衣", "领带", "裤子", "风衣", "高跟鞋", "袜子"])
        .add_yaxis("商家A", [114, 55, 27, 101, 125, 27, 105])
        .add_yaxis("商家B", [57, 134, 137, 129, 145, 60, 49])
        .reversal_axis()
        .set_series_opts(label_opts=opts.LabelOpts(position="right"))
        .set_global_opts(title_opts=opts.TitleOpts(title="Bar-测试渲染图片"))
    )
    return c

# 需要安装 snapshot-selenium 或者 snapshot-phantomjs
make_snapshot(driver, bar_chart().render(), "bar.png")
  • 使用主题
    pyecharts 提供了 10+ 种内置主题,开发者也可以定制自己喜欢的主题
from pyecharts.charts import Bar
from pyecharts import options as opts
# 内置主题类型可查看 pyecharts.globals.ThemeType
from pyecharts.globals import ThemeType

bar = (
    Bar(init_opts=opts.InitOpts(theme=ThemeType.LIGHT))
    .add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
    .add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
    .add_yaxis("商家B", [15, 6, 45, 20, 35, 66])
    .set_global_opts(title_opts=opts.TitleOpts(title="主标题", subtitle="副标题"))
)

pyecharts图形修饰逻辑

  • 选择数据
  • 选择图的类型
  • 加修饰
全局配置项:
  • 全局配置项可通过 set_global_options 方法设置
  • 如果要修改标题,需要找到标题的子类TitleOpts
    在这里插入图片描述
  • 引用标题子类TitleOpts,前面的系统将子类的名称小写,并用下划线分开,配置的书写都是基于下面的类进行命名的,调用举例:
    bar.set_global_opts(title_opts = opts.TitleOpts(title=‘title_name’))
    title_opts 书写规则:将子类的名称小写,并用下划线分开
    TitleOpts 类名
class TitleOpts(
    # 主标题文本,支持使用 \n 换行。
    title: Optional[str] = None,
    #Optional表示可有可无,

    # 主标题跳转 URL 链接
    title_link: Optional[str] = None,

)
  • 引用继承关系的写法,在配置类里面引用另一个配置类的参数,在括号里面继续调用该配置类,命名规则和调用规则相同,嵌套调用。
    bar.set_global_opts(xaxis_opts=opts.AxisOpts(max_=6,axisline_opts=opts.AxisLine_Opts(is_abow=False)))
  • 类的关系:
    set_global_opts ——> xaxis_opts ——> axisline_opts
  • 所有的配置项最好写在一个set_global_opts中,不同的set_global_opts可能发生冲突
系统配置项

set_series_opts

  • 标记点的标定:涉及到两个类,一个是MarkPointOpts标记点配置项(定义有没有标记),还有一个MarkPointItem记点数据项(定义标记的描述)。

  • set_series_opts(markpoint_Item(markpoint_opts))

  • 有一些配置项可以不放在 set_series_opts和set_global_opts ,放在bar.add_yaxis()中,比如颜色,主题等。

  • 有些配置项InitOpts 初始化配置项需要在图形函数中配置,比如说主题的设定

  • bar(init_opts = opts.InitOpts(theme=ThemeType.LIGHT))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值