欢迎大家来到IT世界,在知识的湖畔探索吧!
欢迎大家来到IT世界,在知识的湖畔探索吧!
什么是PygWalker?
PyGWalker全称为:Python Binding of Graphic Walker。
PyGWalker 是一个 Python 库,可以将 Pandas 数据帧(以及 Polars 数据帧)转换为类似 Tableau 风格的用户界面,用于进行数据可视化的探索。
通过 PyGWalker,用户可以使用类似 Tableau 的图形用户界面(GUI)进行数据分析和可视化。用户可以直观地选择和配置各种可视化图表,如折线图、柱状图、散点图、热力图等,来展示数据中的模式和趋势。
PyGWalker 提供了丰富的交互性功能,用户可以通过简单的拖放和配置操作,对可视化图表进行定制化,如设置图表类型、调整图表样式、添加标签、设置过滤器等,从而深入探索数据,发现数据中的信息和洞察。
PyGWalker 的GitHub 项目地址:https://github.com/Kanaries/pygwalker
PyGWalker: Turn your pandas dataframe into a Tableau-style User Interface for visual analysis
PyGWalker: A Python Library for Exploratory Data Analysis with Visualization
支持的Notebook 环境
- Jupyter Notebook
- Google Colab
- Kaggle Code
- Jupyter Lab (WIP: There’re still some tiny CSS issues)
- Jupyter Lite
- Databricks Notebook (Since version 0.1.4a0)
- Jupyter Extension for Visual Studio Code (Since version 0.1.4a0)
- Hex Projects (Since version 0.1.4a0)
- Most web applications compatiable with IPython kernels. (Since version 0.1.4a0)
- Streamlit (Since version 0.1.4.9), enabled with pyg.walk(df, env=’Streamlit’)
- DataCamp Workspace (Since version 0.1.4a0)
- SmartNotebook
安装 pygwalker
使用 pip 或 conda 通过命令行安装包。
pip:
pip install pygwalker
欢迎大家来到IT世界,在知识的湖畔探索吧!
conda:
欢迎大家来到IT世界,在知识的湖畔探索吧!conda install -c conda-forge pygwalker
使用pygwlker
将 pygwalker 和 pandas 导入 Notebook 以开始使用
import pandas as pd import pygwalker as pyg
引入数据:接下来的示例都是以成绩数据为基础进行演示说明,为了方便成绩数据处理成两种格式的数据集,top_20 和top_20_melt
欢迎大家来到IT世界,在知识的湖畔探索吧!top_20_melt=pd.read_csv('/home/top_20_melt.csv',index_col =0) top_20=pd.read_csv('/home/top_20.csv',index_col =0) print(top_20_melt.dtypes) print('*'*25) print(top_20.dtypes)
格式说明如下:
user_id int64 school object course object score float64 dtype: object * user_id int64 phys int64 school object engl float64 math int64 chin float64 chem float64 total float64 dtype: object
1. 箱线图(Box-plot,又称盒须图):各学校的成绩分布
欢迎大家来到IT世界,在知识的湖畔探索吧!gwalker = pyg.walk(top_20,themeKey='vega')
操作步骤:
- 运行代码
- Mark Type(图标类型)选定Box(Box Plot)
- 将school 拖入 X-Axis
- 将total 拖入 Y-Axis
- 调整大小
2. Bar柱状图:分析各学校平均总分和总分标准差
gwalker = pyg.walk(top_20,themeKey='vega') 操作步骤:
- 运行代码
- Mark Type(图标类型)选定Bar将school 拖入 X-Axis
- 将total 拖入 Y-Axis ,选聚合函数 mean(均值)
- 将total 拖入 Y-Axis ,选聚合函数 Standard Deviation(均值)
- 调整大小
3.分箱操作(Bin):总分分箱,统计各学习分数段的人数,散点图展现,点的大小表示当前分数段人数。
关于分箱(Bin)参见:《一文带你了解数据分箱技术:让数据更有价值》https://mp.weixin..com/s/wV6kYbGuBJ9vKpO7wiUJwg
操作步骤:
- 对total 进行分箱(Bin) 转换为维度
- school 拖入到X-Axis
- 将 Bin(total) 拖入到Y-Axis
- 将user_id 拖入到size,聚合函数选为count 计数。注:目前有bug,在size 处不能选聚合函数,可以先在Y-Axis 配置好再拖入到size内。
4.Line /Bar图,过滤Filters 和stack
切换数据集:
欢迎大家来到IT世界,在知识的湖畔探索吧!gwalker = pyg.walk(top_20_melt,themeKey='vega')
操作步骤:
- school 拖入到X-Axis
- 将 score 拖入到Y-Axis,聚合函数选为mean(均值)
- 将course 拖入到 Color
- 将course 拖入到 Filters ,排查总分total。
- 选择 Line 或Bar 。
5.Scatter散点图,统计学科相关分析
应用数据集top_20
gwalker = pyg.walk(top_20,themeKey='vega')
操作步骤:
- school 拖入到Color
- 将school 拖入到 Filters ,选任意两学校进行分析。
- 将 math 拖入到X-Axis,
- 将 phys、chin 拖入到Y-Axis
- 关闭Aggregation选项
- 选择 Circle(Scatter)。
从图来看,math(数学) 与 phys(物理) 、chin(语文) 的相关性区别不明显。
6.导出图表
由于PygWalker 版本迭代较快,导出图表还在不断完善中,目前支持以下格式:
- PNG 格式
- SVG 格式
- Vega or Vega Lite互动报表格式(A Visualization Grammar):https://vega.github.io/vega/
注意需要打开debug 模式:
将导出Vega or Vega Lite 配置内容(spec)填充到报表模板文件中,生成报表,再嵌入dashboard 形成数据大屏或数据服务。
欢迎大家来到IT世界,在知识的湖畔探索吧!<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/vega@5.24.0"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-lite@5.6.1"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-embed@6.21.3"></script>
</head>
<body>
<div id="vis"/>
<script>
const spec = {
"data": {
"values": [
{
"gwc_3": "snfx",
"gwc_0": 0,
"gwc_1": 1140,
"gwc_2": 77,
"gwc_4": 129.5,
"gwc_5": 129,
"gwc_6": 136.5,
"gwc_7": 54,
"gwc_8": 526,
"gw_count_fid": 1
}
]
},
"params": [
{"name": "geom", "select": {"type": "point", "fields": ["gwc_8", "gwc_3"]}}
],
"autosize": "fit",
"width": 2500,
"height": 1250,
"mark": {"type": "boxplot", "opacity": 0.96, "tooltip": true},
"encoding": {
"x": {
"field": "gwc_3",
"title": "school",
"type": "nominal",
"aggregate": null,
"sort": {"encoding": "y", "order": "ascending"}
},
"y": {"field": "gwc_8", "title": "total", "type": "quantitative"}
}
};
vegaEmbed("#vis", spec, {mode: "vega-lite"}).then(console.log).catch(console.warn);
</script>
</body>
</html>
输出vega spec嵌入模板后生成图表:
总结
PyGWalker可以在你日常使用notebook环境进行数据分析时,帮你更快、以更加低代码的形式探索你的数据并制作可视化。
- 支持丰富图表类型,持久托拉拽低代码进行探索性数据分析,适合notebook 环境下进行探索式数据分析或BI报表开发。
- 支持数据聚合、分箱(Bin)、log等变换,方便定义维度和度量(指标)以进行数据分析。
- 支持导出及与vega 等集成,与数据大屏、数据报表门户集成。
PyGWalker 是基于notebook的 tableau 开源替代方案。
以上案例都是基于smartnotebook上PyGwalker 操作实例。
《新语数据故事汇,数说新语》 科普数据科学、讲述数据故事,深层次挖掘数据价值。欢迎各位朋友投稿!
《新语数据故事汇,数说新语》
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/108964.html