交互式仪表板!Python轻松完成
2023-02-19 12:17:47 时间
? 引言
在本篇内容中,ShowMeAI将给大家讲解使用 ?ipywidget 模块创建交互式仪表板。
我们本次用到的数据集是 ?Kaggle 的 CardioGoodFitness,大家可以通过 ShowMeAI 的百度网盘地址下载。
? 实战数据集下载(百度网盘):公众号『ShowMeAI研究中心』回复『实战』,或者点击 这里 获取本文 [41]ipywidgets:使用Python创建交互式仪表板 『CardioGoodFitness 数据集』
⭐ ShowMeAI官方GitHub:github.com/ShowMeAI-Hu…
首先,我们需要导入所需的模块。
import pandas as pd
import ipywidgets
import seaborn as sns
import matplotlib.pyplot as plt
复制代码
我们先看一下数据变量。数据中包含 2 个连续变量,收入 Income 和英里数 Miles。
? 看板Demo实现:了解Miles的分布
? 准备工作
?ipywidget 模块包含了很多可用的小部件。在这个演示中,我们将使用下拉框选择类别数据,以便更好地了解里程分布。我们将选择箱线图来绘制每个类别的里程数据。
%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)
复制代码
接下来,我们可以创建一个函数,允许输入用于绘制英里箱线图的列名称。
#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 布局的示例。
下面我们准备输入和输出布局的显示。
#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 和色调。因为每个变量都是一个选择,我们使用了下拉框。
? 输入设计、选项、值和要定义的描述
# 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)
复制代码
? 散点图绘制
# 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的选择器布局
# display the layout of filtering
ui3 = ipywidgets.HBox([drop_down_x,drop_down_y,drop_down_category])
复制代码
? 将绘图与选择器相关联
# related the plot link to filtering
out3 = ipywidgets.interactive_output(scatter,
{'x' : drop_down_x,
'y': drop_down_y,
'category':drop_down_category})
复制代码
? 显示选择后的输入和输出
#display the input and output
display(ui3,out3)
复制代码
相关文章
- python随机种子seed的作用(强化学习常用到)
- Python中局部放大图案例
- python编程中,各种随机种子seed设置总结
- python处理Excel实现自动化办公教学(含实战)【一】
- python处理Excel实现自动化办公教学(含实战)【二】
- python处理Excel实现自动化办公教学(数据筛选、公式操作、单元格拆分合并、冻结窗口、图表绘制等)【三】
- python实现GUI自动化(控制鼠标)|屏幕快照&图像识别基础
- python入门之后须掌握的知识点(模块化编程、时间模块)【一】
- python入门之后须掌握的知识点(excel文件处理+邮件发送+实战:批量化发工资条)【二】
- web自动化测试入门篇04——selenium+python基础方法封装
- Python自动化办公--Pandas玩转Excel【一】
- Python自动化办公--Pandas玩转Excel数据分析【二】
- Python自动化办公--Pandas玩转Excel数据分析【三】
- python:spacy、gensim库的安装遇到问题及bug处理
- 用python进行精细中文分句(基于正则表达式),HarvestText:文本挖掘和预处理工具
- python实现zip分卷压缩与解压
- python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题|附代码数据
- R语言和Python用泊松过程扩展:霍克斯过程Hawkes Processes分析比特币交易数据订单到达自激过程时间序列|附代码数据
- python中--try except 异常捕获以及正则化、替换异常值
- python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}