专栏首页用户6291251的专栏吊打Pyecharts,这个新Python绘图库竟然这么漂亮!

吊打Pyecharts,这个新Python绘图库竟然这么漂亮!

Python可视化新秀

这个Python可视化新秀,在GitHub上是这样介绍的:

? PyG2Plot 是@AntV/G2Plot 在 Python3 上的封装。G2Plot 是一套简单、易用、并具备一定扩展能力和组合能力的统计图表库,基于图形语法理论搭建而成。

不过研究PyG2Plot还得先从G2开始讲,它是蚂蚁金服开源一个基于图形语法,面向数据分析的统计图表引擎。后来又在其基础上,封装出业务上常用的统计图表库——G2Plot

不过现在Python这么热,几乎每一个nb的前端可视化库,最终都会被用python开发一套生成相应html的库!它也不例外,封装出了Python可视化库——PyG2Plot

在GitHub上,也提供了一张示例图,我对右下角的散点图比较感兴趣。

结果兴致勃勃地去看示例,这简直买家秀与卖家秀啊!

我不管,我就要右边那个?

自己动手,丰衣足食

看来还是需要自己动手,那就先安装PyG2Plot库吧

pip install pyg2plot

目前目前 pyg2plot 只提供简单的一个 API,只列出需要的参数

  • Plot
  1. Plot(plot_type: str): 获取 Plot 对应的类实例。
  2. plot.set_options(options: object): 给图表实例设置一个 G2Plot 图形的配置。
  3. plot.render(path, env, **kwargs): 渲染出一个 HTML 文件,同时可以传入文件的路径,以及 jinja2 env 和 kwargs 参数。
  4. plot.render_notebook(env, **kwargs): 将图形渲染到 jupyter 的预览。

于是我们可以先导入Plot方法

from pyg2plot import Plot

我们要画散点图

scatter = Plot("Scatter")

下一步就是要获取数据和设置参数plot.set_options(),这里获取数据直接利用requset解析案例json,而参数让我在后面一一道来:

import requests

#请求地址
url = "https://gw.alipayobjects.com/os/bmw-prod/0b37279d-1674-42b4-b285-29683747ad9a.json"

#发送get请求
a = requests.get(url)

#获取返回的json数据,并赋值给data
data = a.json()

成功获取解析好的对象集合数据。

下面是对着参数,一顿操作猛如虎:

scatter.set_options(
{
    'appendPadding': 30,
    'data': data,
    'xField': 'change in female rate',
    'yField': 'change in male rate',
    'sizeField': 'pop',
    'colorField': 'continent',
    'color': ['#ffd500', '#82cab2', '#193442', '#d18768','#7e827a'],
    'size': [4, 30],
    'shape': 'circle',
    'pointStyle':{'fillOpacity': 0.8,'stroke': '#bbb'},
    'xAxis':{'line':{'style':{'stroke': '#aaa'}},},
    'yAxis':{'line':{'style':{'stroke': '#aaa'}},},
    'quadrant':{
        'xBaseline': 0,
        'yBaseline': 0,
        'labels': [
        {'content': 'Male decrease,\nfemale increase'},
        {'content': 'Female decrease,\nmale increase'},
        {'content': 'Female & male decrease'},
        {'content': 'Female &\n male increase'}, ],},
})

如果在Jupyter notebook中预览的话,则执行下方语句

scatter.render_notebook()

如果想渲染出完整的html的话,则执行下方语句

scatter.render("散点图.html")

看一下成果吧

参数解析&完整代码

各位看官,这块可能比较无聊,可以直接划到文末或者点击收藏。

主要还是详解一下刚才scatter.set_options()里的参数,方便大家后续自己改造!

分成几个部分一点一点解释:

参数解释 一

'appendPadding': 30, #①
'data': data, #②
'xField': 'change in female rate', #③
'yField': 'change in male rate', 

① 图表在上右下左的间距,加不加这个参数具体看下图

② 设置图表数据源(其中data在前面已经赋值了),这里的数据源为对象集合,例如:[{ time: '1991',value: 20 }, { time: '1992',value: 20 }]。

xFieldyField这两个参数分别是横/纵向的坐标轴对应的字段。

参数解释 二

'sizeField': 'pop', #④
'colorField': 'continent', #⑤
'color': ['#ffd500', '#82cab2', '#193442', '#d18768','#7e827a'], #⑥
'size': [4, 30], #⑦
'shape': 'circle', #⑧

④ 指定散点大小对应的字段名,我们用的pop(人口)字段。

⑤ 指定散点颜色对应的字段名,我们用的continent(洲)字段。

⑥ 设置散点的颜色,指定了系列色值。

⑦ 设置散点的大小,可以指定大小数组 [minSize, maxSize]

⑧ 设置点的形状,比如ciclesquare

参数解释 三

'pointStyle':{'fillOpacity': 0.8,'stroke': '#bbb'}, #⑨
'xAxis':{'line':{'style':{'stroke': '#aaa'}},}, #⑩
'yAxis':{'line':{'style':{'stroke': '#aaa'}},},

pointStyle是指折线样式,不过在散点图里,指的是散点的描边。另外fillOpacity是设置透明度,stroke是设置描边颜色。

⑩ 这里只是设置了坐标轴线的颜色。

参数解释 四

'quadrant':{
    'xBaseline': 0,
    'yBaseline': 0,
    'labels': [
    {'content': 'Male decrease,\nfemale increase'},
    {'content': 'Female decrease,\nmale increase'},
    {'content': 'Female & male decrease'},
    {'content': 'Female &\n male increase'}, ],},

quadrant是四象限组件,具体细分配置如下:

细分配置

功能描述

xBaseline

x 方向上的象限分割基准线,默认为 0

yBaseline

y 方向上的象限分割基准线,默认为 0

labels

象限文本配置

PyG2Plot的介绍文档还不完善,上文中的很多参数是摸索的,大家作为参考就好。

PyG2Plot 原理其实非常简单,其中借鉴了 pyecharts 的实现,但是因为蚂蚁金服的 G2Plot 完全基于可视分析理论的配置式结构,所以封装上比 pyecharts 简洁非常非常多。

本文分享自微信公众号 - 法纳斯特(walker398)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 吊打Pyecharts,这个新Python绘图库竟然这么漂亮!

    最近看了一篇文章《一个牛逼的Python 可视化库:PyG2Plot》,可惜只是简单介绍,并且只有一个简陋的官方示例。

    Python数据科学
  • 历时 1 个月,做了 10 个 Python 可视化动图,用心且精美...

    最近1个月,我使用Python绘图库pyecharts,画了十类图,在这里总结一下。同时,我始终相信:

    double
  • pyecharts-1-入门

    前段时间写了很多关于plotly_express库的内容,从基本的一行代码出各种图,到每个类型图的绘制,再到图形的绘制技巧,内容还是非常的丰富,plotly_e...

    皮大大
  • 可视化工具不知道怎么选?深度评测5大Python数据可视化工具

    相信很多读者学习Python就是希望作出各种酷炫的可视化图表,当然你一定会听说过Matplotlib、Pyecharts、Seaborn、Plotly、Boke...

    刘早起
  • 好看的数据可视化图片都是用什么做的? | 数答

    由于经常有读者在文章留言中问到“这些好看的数据可视化图片都是用什么做的呀?”之类的问题,今天Alfred就来推荐一些实用的数据可视化工具给大家,这些工具包含:

    Alfred数据室
  • 怎样绘制漂亮的统计图表|柱状图的正确打开方式

    前天我们在公众号『早起python』与『可乐的数据分析之路』开启了『怎样绘制漂亮的统计图表』系列专题,在两天的时间内我们收到一些粉丝提供的可视化结果,虽然参与的...

    刘早起
  • 情人节脱单必备,程序员如何花式表白

    今天是七夕,一个对单身人士不怎么友好的一个节日,而对于已经有另外一半的情侣来说,今天应该是开心的一天,鲜花与巧克力也必然是在送去的路上。而对于众多程序员小哥哥们...

    用户6888863
  • python的pyecharts绘制南丁格尔玫瑰图

    from:偶然得知医护界有一位叫“”南丁格尔的“提灯女神”,而且这位女神还创造了一种图,即“玫瑰图”。

    数据森麟
  • Python分析101位《创造营2020》小姐姐,谁才是你心中的颜值担当?

    【导语】:今天我们来聊一聊《创造营2020》的101位选手小姐姐。Python技术部分请看第二部分。公众号后台,回复关键字“创造营”获取完整数据。

    CDA数据分析师

扫码关注云+社区

领取腾讯云代金券