羡慕实时数据看板?来看看Python的交互数据分析可视化工具!

简介: Altair是Python统计可视化库,提供了强大而简洁的可视化语法,可以产出漂亮的数据分析可视化结果,并支持交互式操作和勾选局部数据深入分析。本文以实例讲解Altair的数据分析过程,以及交互文档报告的生成。

💡 作者:韩信子@ShowMeAI
📘 数据分析实战系列https://www.showmeai.tech/tutorials/40
📘 本文地址https://www.showmeai.tech/article-detail/320
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏ShowMeAI查看更多精彩内容

大家都看过非常酷的实时数据看板,能用最直观的方式给到我们业务数据的信息,如下图所示。

而在 Python 中,我们也有非常易用的工具,可以产出漂亮的数据分析可视化结果,并支持交互式操作和勾选局部数据深入分析,ShowMeAI在本篇内容中,将给大家讲解到 📘Altair 这样一个功能强大的 Python 交互式数据分析工具,它能产出如下图所示的交互分析结果:

💡 数据分析实现模板

为了让大家在自己的数据上体验 Altair 的分析结果,我们下面编写的一个函数模板,用于为数据集中的所有特征生成交互式图表。

具体一点说,我们希望它为数值型字段(特征)返回『直方图+散点图』,为类别型特征返回『柱状图+箱线图』,Altair 返回的这些图表结果都是可以交互式操作的。

# 导入工具库
import altair as alt
import pandas as pd

# 忽律数据规模限制
alt.data_transformers.enable('default', max_rows=None)


# 构建chart函数,它读取数据和字段名称,返回一个交互式图表结果
def chart(dataset, column_name, target_var):
    w = 500
    single = alt.selection_single()

    # 灰度图与柱状图

    # 如果是类别型字段,我们不用分桶
    if (column_name in dataset.select_dtypes(include='object').columns.to_list()):
        a = alt.Chart(dataset).mark_bar().encode(
        alt.X(column_name + ':N', bin=False),
        alt.Y('count()'),
        color = alt.condition(single, alt.value('#4c78a8'), alt.value('lightgray')),
        tooltip=['count()', alt.Tooltip(column_name, bin=False)]
        ).add_selection(single).properties(width=w)

    # 如果是数值型字段,我们先分桶
    else:
        a = alt.Chart(dataset).mark_bar().encode(
        alt.X(column_name + ':Q', bin=True),
        alt.Y('count()'),
        color = alt.condition(single, alt.value('#4c78a8'), alt.value('lightgray')),
        tooltip=['count()', alt.Tooltip(column_name, bin=True)]
        ).add_selection(single).properties(width=w)

    # 对于类别型字段,我们构建它和目标字段的一个箱线图表;对于数值型字段,我们构建它们和目标字段的散点分布图
    try:        
        if (column_name in dataset.select_dtypes(include='object').columns.to_list()):
            b = alt.Chart(dataset).mark_boxplot().encode( #, title="Boxplot of " + column_name
            alt.X(column_name + ':N'),
            alt.Y(target_var),
            color = alt.condition(single, alt.value('#4c78a8'), alt.value('lightgray')),
            tooltip=[target_var]
            ).add_selection(single).properties(width=w)
        else:
            b = alt.Chart(dataset).mark_point().encode(
            alt.X(column_name + ':Q'),
            alt.Y(target_var),
            color = alt.condition(single, alt.value('#4c78a8'), alt.value('lightgray')),
            tooltip=[target_var]
            ).add_selection(single).properties(width=w)
    except:
        pass

    return(a | b)

大家可以把它应用在自己的数据上,得到的结果图如下所示(而且它们是可以用鼠标交互操作的)。在下面的内容里,我们会告诉大家如何把结果存储为 html 报告,大家每次打开 html 结果文件,即可进行交互式操作,而无需每次都重新分析。

💡 数据分析&交互文档报告

下面的代码可以将所有可视化结果编译到一个 html 文档中,打开这个 html 文件,大家就可以得到一个可交互的可视化数据分析平台。

# 把所有的altair图表添加到一个列表里
myl = []
for col in dataset.columns:
    try:
        myl.append(chart(dataset, col, target_var))
    except:
        pass
    else:
        pass

# 编译所有的图表到1个html文件中
a = myl[0]
for i in range(1,len(myl)):
    a = a & myl[i]
a.properties(
    title = 'Feature Histograms & Boxplots'
).configure_axis(labelFontSize=15, titleFontSize=25)
a.save('figures/Feature_Visuals.html')

# 检查是否所有的字段都可以被可视化
print('Features accounted for:', len(myl), 'out of', len(dataset.T))

参考资料

目录
相关文章
|
7月前
|
数据采集 Web App开发 数据可视化
Python零基础爬取东方财富网股票行情数据指南
东方财富网数据稳定、反爬宽松,适合爬虫入门。本文详解使用Python抓取股票行情数据,涵盖请求发送、HTML解析、动态加载处理、代理IP切换及数据可视化,助你快速掌握金融数据爬取技能。
4711 1
|
8月前
|
数据采集 数据可视化 数据挖掘
Python数据分析实战:Pandas处理结构化数据的核心技巧
在数据驱动时代,结构化数据是分析决策的基础。Python的Pandas库凭借其高效的数据结构和丰富的功能,成为处理结构化数据的利器。本文通过真实场景和代码示例,讲解Pandas的核心操作,包括数据加载、清洗、转换、分析与性能优化,帮助你从数据中提取有价值的洞察,提升数据处理效率。
400 3
|
7月前
|
Java 数据挖掘 数据处理
(Pandas)Python做数据处理必选框架之一!(一):介绍Pandas中的两个数据结构;刨析Series:如何访问数据;数据去重、取众数、总和、标准差、方差、平均值等;判断缺失值、获取索引...
Pandas 是一个开源的数据分析和数据处理库,它是基于 Python 编程语言的。 Pandas 提供了易于使用的数据结构和数据分析工具,特别适用于处理结构化数据,如表格型数据(类似于Excel表格)。 Pandas 是数据科学和分析领域中常用的工具之一,它使得用户能够轻松地从各种数据源中导入数据,并对数据进行高效的操作和分析。 Pandas 主要引入了两种新的数据结构:Series 和 DataFrame。
684 0
|
7月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
9月前
|
机器学习/深度学习 新能源 调度
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
电力系统短期负荷预测(Python代码+数据+详细文章讲解)
735 1
|
9月前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
7月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
8月前
|
存储 监控 API
Python实战:跨平台电商数据聚合系统的技术实现
本文介绍如何通过标准化API调用协议,实现淘宝、京东、拼多多等电商平台的商品数据自动化采集、清洗与存储。内容涵盖技术架构设计、Python代码示例及高阶应用(如价格监控系统),提供可直接落地的技术方案,帮助开发者解决多平台数据同步难题。
|
8月前
|
存储 JSON 算法
Python集合:高效处理无序唯一数据的利器
Python集合是一种高效的数据结构,具备自动去重、快速成员检测和无序性等特点,适用于数据去重、集合运算和性能优化等场景。本文通过实例详解其用法与技巧。
236 0
|
8月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具

推荐镜像

更多