首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
36 篇文章
1
数据分析大作战,SQL V.S. Python,来看看这些考题你都会吗 ⛵
2
数据科学手把手:碳中和下的二氧化碳排放分析 ⛵
3
面试现场!月薪3w+的这些数据挖掘SQL面试题你都掌握了吗? ⛵
4
员工离职困扰?来看AI如何解决,基于人力资源分析的 ML 模型构建全方案 ⛵
5
AI 音辨世界:艺术小白的我,靠这个AI模型,速识音乐流派选择音乐 ⛵
6
数据专家最常使用的 10 大类 Pandas 函数 ⛵
7
钻石价格预测的ML全流程!从模型构建调优道部署应用!⛵
8
掌握这9个单行代码技巧!你也能写出『高端』Python代码 ⛵
9
刘畊宏男孩女孩看过来!运动数据分析挖掘!⛵
10
二手车价格预测 | 构建AI模型并部署Web应用 ⛵
11
看看你离世界一流大厂有多远?3道Google最新SQL面试题 ⛵
12
客户流失?来看看大厂如何基于spark+机器学习构建千万数据规模上的用户留存模型 ⛵
13
再见 Excel,你好 Python Spreadsheets! ⛵
14
羡慕 Excel 的高级选择与文本框颜色呈现?Pandas 也可以拥有!! ⛵
15
2022了你还不会『低代码』?数据科学也能玩转Low-Code啦! ⛵
16
Pandas数据显示不全?快来了解这些设置技巧! ⛵
17
一键自动化数据分析!快来看看 2022 年最受欢迎的 Python 宝藏工具库! ⛵
18
羡慕实时数据看板?来看看Python的交互数据分析可视化工具!
19
自动化运维?看看Python怎样完成自动任务调度⛵
20
森林野火故事2.0:一眼看穿!使用 Panel 和 hvPlot 可视化 ⛵
21
异常值检测!最佳统计方法实践(代码实现)!⛵
22
大数据开发!Pandas转spark无痛指南!⛵
23
还在用饼状图?来瞧瞧这些炫酷的百分比可视化新图形(附代码实现)⛵
24
业务数据分析最佳案例!旅游业数据分析!⛵
25
Pandas中你一定要掌握的时间序列相关高级功能 ⛵
26
求职指南!给数据开发的SQL面试准备路径!⛵
27
Python中内置数据库!SQLite使用指南! ⛵
28
私藏!资深数据专家SQL效率优化技巧 ⛵
29
Pandas太慢?快使用Vaex DataFrame,每秒数亿数据算起来 ⛵
30
高手系列!数据科学家私藏pandas高阶用法大全 ⛵
31
『航班乘客满意度』场景数据分析建模与业务归因解释 ⛵
32
数据科学家赚多少?基于pandasql和plotly的薪资分析与可视化 ⛵
33
深度解析数据清理和特征工程!5本面向数据科学家的顶级书籍推荐 ⛵
34
就离谱!使用机器学习预测2022世界杯:小组赛挺准,但冠亚季军都错了 ⛵
35
百倍加速IO读写!快使用Parquet和Feather格式!⛵
36
交互式仪表板!Python轻松完成!⛵

交互式仪表板!Python轻松完成!⛵

本文使用 Kaggle 数据集创建了一个Demo,演示如何使用 Python 调用 ipywidget 模块,快速创建交互式仪表板。快用起来吧~

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

💡 引言

在本篇内容中,ShowMeAI将给大家讲解使用 📘ipywidget 模块创建交互式仪表板。

我们本次用到的数据集是 🏆Kaggle 的 CardioGoodFitness,大家可以通过 ShowMeAI 的百度网盘地址下载。

🏆 实战数据集下载(百度网盘):公众号『ShowMeAI研究中心』回复『实战』,或者点击 这获取本文 [41]ipywidgets:使用Python创建交互式仪表板 『CardioGoodFitness 数据集』

ShowMeAI官方GitHubhttps://github.com/ShowMeAI-Hub

首先,我们需要导入所需的模块。

代码语言:python
复制
import pandas as pd
import ipywidgets 
import seaborn as sns
import matplotlib.pyplot as plt

我们先看一下数据变量。数据中包含 2 个连续变量,收入 Income 和英里数 Miles。

💡 看板Demo实现:了解Miles的分布

💦 准备工作

📘ipywidget 模块包含了很多可用的小部件。在这个演示中,我们将使用下拉框选择类别数据,以便更好地了解里程分布。我们将选择箱线图来绘制每个类别的里程数据。

代码语言:python
复制
%matplotlib widget
# Drop down for boxplot variable to be select
drop_down_name = ipywidgets.Dropdown(options=list(df.drop(['Miles','Income'],axis=1).columns),
                                value=list(df.drop(['Miles','Income'],axis=1).columns)[0],
                                description='Columns:',
                                disabled=False)

接下来,我们可以创建一个函数,允许输入用于绘制英里箱线图的列名称。

代码语言:python
复制
#selected_vals = column used to plot
def boxplot(selected_vals):
    plt.close('all')
    fig = plt.figure(figsize=(9,5))
    plt.style.use('seaborn')
    sns.boxplot(df[selected_vals],df['Miles'])
    plt.title('Boxplot of miles for' + selected_vals)
    plt.show()

之后,我们需要创建一个 📘layout/布局,Jupyter 交互式小部件具有一个 layout 属性,包含了许多影响小部件布局的 CSS 属性。

最简单的自定义是 HBox,它是一个水平布局的选择器,而 VBox 代表一个垂直布局的选择器。下面是 HBox 或 VBox 布局的示例。

下面我们准备输入和输出布局的显示。

代码语言:python
复制
#layout for filtering 
ui2 = ipywidgets.HBox([drop_down_name])
# link your function to your input 
out2 = ipywidgets.interactive_output(boxplot,
                                     {'selected_vals' : drop_down_name})
# display your box plot
display(ui2,out2)

上面散点图的输入是 x、y 和色调。因为每个变量都是一个选择,我们使用了下拉框。

💦 输入设计、选项、值和要定义的描述

代码语言:python
复制
# dropbox select x axis
drop_down_x = ipywidgets.Dropdown(options=list(df.columns),
                                value=list(df.columns)[0],
                                description='X variable:',
                                disabled=False)
# dropbox select y axis
drop_down_y = ipywidgets.Dropdown(options=list(['Miles','Income']),
                                value=list(['Miles','Income'])[0],
                                description='Y variable:',
                                disabled=False)
# dropbox select category
drop_down_category= ipywidgets.Dropdown(options=list(df.drop(['Miles','Income'],axis=1).columns),
                                value=list(df.drop(['Miles','Income'],axis=1).columns)[0],
                                description='Category:',
                              disabled=False)

💦 散点图绘制

代码语言:python
复制
# scatter plot function
def scatter(x,y,category):
    plt.close('all')
    fig = plt.figure(figsize=(9,5))
    plt.style.use('seaborn')
    sns.scatterplot(data=df,x=x,y=y,hue=category)
    plt.title('Scatterplot of ' +x+' versus '+ y)
    #plt.xlabel('Date')
    plt.show()

💦 显示HBox或VBox的选择器布局

代码语言:python
复制
# display the layout of filtering
ui3 = ipywidgets.HBox([drop_down_x,drop_down_y,drop_down_category])

💦 将绘图与选择器相关联

代码语言:python
复制
# related the plot link to filtering 
out3 = ipywidgets.interactive_output(scatter,
                                     {'x' : drop_down_x,
                                     'y': drop_down_y,
                                     'category':drop_down_category})

💦 显示选择后的输入和输出

代码语言:python
复制
#display the input and output
display(ui3,out3)

参考资料

举报
领券