吊打Pyecharts,这个新Python绘图库竟然这么漂亮!
最近看了⼀篇⽂章《⼀个⽜逼的Python 可视化库:PyG2Plot》,可惜只是简单介绍,并且只有⼀个简陋的官⽅⽰例。
经过⼩五⼀番测试成功复现了其中⼀个⽰例图⽚,还很精致。今天正好把完整过程分享给⼤家,看看这个新库绘图也可以这么漂亮!
Python可视化新秀
这个Python可视化新秀,在GitHub上是这样介绍的:
PyG2Plot 是@AntV/G2Plot 在 Python3 上的封装。G2Plot 是⼀套简单、易⽤、并具备⼀定扩展能⼒和组合能⼒的统计图表库,基于图形语法理论搭建⽽成。
不过研究PyG2Plot还得先从G2开始讲,它是蚂蚁⾦服开源⼀个基于图形语法,⾯向数据分析的统计图表引擎。后来⼜在其基础上,封装出业务上常⽤的统计图表库——G2Plot。
js要掌握的知识点
不过现在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 图形的配置。
der(path, env, **kwargs): 渲染出⼀个 HTML ⽂件,同时可以传⼊⽂件的路径,以及 jinja2 env 和 kwargs 参
数。
der_notebook(env, **kwargs): 将图形渲染到 jupyter 的预览。
python请求并解析json数据
于是我们可以先导⼊Plot⽅法
from pyg2plot import Plot
我们要画散点图
scatter = Plot("Scatter")
scatter = Plot("Scatter")
下⼀步就是要获取数据和设置参数plot.set_options(),这⾥获取数据直接利⽤requset解析案例json,⽽参数让我在后⾯⼀⼀道来:
import requests
#请求地址
url = "gw.alipayobjects/os/bmw-prod/0b37279d-1674-42b4-b285-29683747ad9a.json"
#发送get请求
a = (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',vista
'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':{supernova
'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中预览的话,则执⾏下⽅语句
如果想渲染出完整的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 }]。
③ xField和yField这两个参数分别是横/纵向的坐标轴对应的字段。
参数解释⼆
'sizeField': 'pop', #④
'colorField': 'continent', #⑤
'color': ['#ffd500', '#82cab2', '#193442', '#d18768','#7e827a'], #⑥php cms网站管理系统
'size': [4, 30], #⑦
'shape': 'circle', #⑧
④指定散点⼤⼩对应的字段名,我们⽤的pop(⼈⼝)字段。
⑤指定散点颜⾊对应的字段名,我们⽤的continent(洲)字段。
⑥设置散点的颜⾊,指定了系列⾊值。
⑦设置散点的⼤⼩,可以指定⼤⼩数组 [minSize, maxSize]
sql中的order by
⑧设置点的形状,⽐如cicle、square
参数解释三
'pointStyle':{'fillOpacity': 0.8,'stroke': '#bbb'}, #⑨
'xAxis':{'line':{'style':{'stroke': '#aaa'}},}, #⑩
'yAxis':{'line':{'style':{'stroke': '#aaa'}},},
⑨ pointStyle是指折线样式,不过在散点图⾥,指的是散点的描边。另外fillOpacity是设置透明度,stroke是设置描边颜

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。