关于前端:交互式仪表板Python轻松完成

47次阅读

共计 2468 个字符,预计需要花费 7 分钟才能阅读完成。

💡 引言
在本篇内容中,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)
复制代码

正文完
 0